Elastic JavaDoc - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Elastic JavaDoc

Description:

... translated to HTML links using javascript (to enable one link to affect several frames) ... By using javascript, a link can affect more frames ... – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 16
Provided by: LK6
Category:

less

Transcript and Presenter's Notes

Title: Elastic JavaDoc


1
Elastic JavaDoc
by
Kasper B. Graversen
Supervisor Kasper Østerbye
2
Introduction Y
  • JavaDoc is a tool shipped with the Java Language
    which extracts comments from sourcecode and
    generates a static HTML presentation. Semantics
    in the comments are specified with a handful of
    different _at_tag tags.
  • Elastic JavaDoc (EJD) is our system based on
    JavaDoc. EJD, however, enables dynamic
    presentations and sets forth a language for users
    to create their own presentations.

3
Motivation d
  • Make the documentation tailored to the users
    frequently changing needs - both by ordering
    schemes and reducing information to the
    essentials
  • Make the Doc. useable for more roles in the
    development process (ie. project managers)
  • Handle bookkeeping documentation ie. change
    request, bugs, todos
  • Customize design and layout by using colors and
    to some extend replacing text with pictures (ie.
    a bomb instead of the title bug)

4
Architecture v
  • Traditional hypertext model data, links
    presentation separated, and applied with
    user-preferences.

Output on screen
Presentation layer
Links
User preferences
Raw data in database tables
5
The presentation 1 G
  • Presentations are done with EJD custom tags for
    information production and HTML tags for
    formatting the presentation.
  • The linking is specified using EJD custom tags
    which are translated to HTML links using
    javascript (to enable one link to affect several
    frames).

6
The presentation 2 G
  • Almost non-programming environment
  • Associations rather than pointers
  • No variables, pointers, methods or logic
    operations
  • The EJD tags are grouped in four types of tags
  • iterators of structures in the Java language
  • ifs for branching
  • linktags for internal and external links
  • information tags which print information (method
    name, method return type, )

7
The presentation 2a G
  • Information tags are used directly within its
    iterator, rather than using explicit pointers
  • ltmethoditeratorgt
  • ltmethodreturnType/gt ltmethodnamegt
  • lt/methoditeratorgt
  • rather than
  • ltmethoditerator namefoogt
  • ltmethodreturnType reffoo/gt ltmethodname
    reffoogt
  • lt/methoditeratorgt

8
The presentation 3 G
  • Printing a list of methods in a class where the
    color
  • of the method name determine its access modifier
  • ltclassiteratorgt
  • All methods in class ltclassname/gt ltbrgt
  • ltmethoditeratorgt
  • ltmethodif-publicgtltfont colorgreengtlt/methodi
    f-publicgt
  • ltmethodif-privategtltfont colorredgtlt/methodif
    -privategt
  • ltmethodname/gt
  • lt/fontgt
  • ltbrgt
  • lt/methoditeratorgt
  • lt/classiteratorgt

9
The presentation 4 G
  • An incomplete list of EJD custom tags
  • ltclaceiteratorgt (clace class and interface)
  • ltclassifgt ltinterfaceifgt ltimplementsinterfaceite
    ratorgt ltmethoditeratorgt ltfielditeratorgt
    ltclacedoc-iteratorgt
  • ltclaceinPackage/gt ltclaceif-isStaticgt
    ltclaceif-isFinalgt ltclacefinal/gt
    ltclaceaccessModifier/gt ltclaceif-privategt
  • ltclaceif-protectedgt ltclaceif-packagegt
    ltclaceif-publicgt ltclacename/gt
    ltclacedisplayName/gt ltclacesourcecode/gt
  • ltclassifgt
  • ltconstructoriteratorgt ltclasssuperclass/gt
    ltclassif-isAbstractgt ltclassabstract/gt
  • ltinterfaceifgt (empty)
  • ltconstructoriteratorgt
  • ltthrowsiteratorgt ltparameteriteratorgt
    ltconstructordoc-iteratorgt ltconstructoraccessModi
    fier/gt
  • ltconstructorif-privategt ltconstructorif-protected
    gt ltconstructorif-packagegt ltconstructorif-publicgt
  • ltconstructorname/gt ltconstructordisplayName/gt
    ltconstructorinClass/gt ltconstructorsourcecode/gt
  • ltmethoditeratorgt
  • ltthrowsiteratorgt ltmethoddoc-iteratorgt
    ltmethodif-isSynchronizedgt ltmethodsynchronized/gt
  • ltmethodif-isAbstractgt ltmethodabstract/gt
    ltmethodif-isStaticgt ltmethodstatic/gt
    ltmethodif-isFinalgt

10
The Database E
TABLE Class id inPackage superclass
isAbstract isStatic
isFinal accessModifier name -----
------------ -------------
----------- -------- --------
------------------- ------- 1
java.util java.lang.Object
1 0 0
public AbstractCollection
18 java.util
java.util.AbstractCollection 1 0
0 public
AbstractList 38 java.util
java.lang.Object 0
0 0 private
AbstractList.Itr 48 java.util
java.util.AbstractList.Itr 0
0 0 private
AbstractList.ListItr
TABLE Method id Synthetic Synchronized
Abstract Static isFinal
accessModifier returnType name
inClace -- ----------- ----------------
---------- -------- ---------
------------------ ------------ ------
--------- 3 0 0
1 0 0
public Iterator
iterator java.util.AbstractCollection 4
0 0 1
0 0 public
int size
java.util.AbstractCollection 5 0
0 0 0
0 public
boolean isEmpty java.util.AbstractColl
ection 6 0 0
0 0 0
public boolean contains
java.util.AbstractCollection 7 0
0 0
0 0 public
Object toArray java.util.AbstractCo
llection 8 0 0
0 0 0
public Object
toArray java.util.AbstractCollection 9 0
0 0
0 0 public
boolean add
java.util.AbstractCollection
TABLE Field id isSynthetic isTransient
isVolatile isStatic isFinal
accessModifier type name
inClace -- -------------
------------- ------------ ---------
-------- ------------------ ------
------ ---------
36 1 1
0 0 0
protected int
modCount java.util.AbstractList 44
0 0 0
0 0 package
int cursor
java.util.AbstractList.Itr 45 0
0 0
0 0 package
int lastRet
java.util.AbstractList.Itr 73 0
0 0 0
0 private
int offset
java.util.SubList 74 0 0
0 0
0 private int
size
java.util.SubList 94 1
1 0 0
0 private
Set keySet
java.util.AbstractMap 95 1 1
0 0
0 private
Collection values
java.util.AbstractMap 139 1 1
0 0
0 private Object
elementData java.util.ArrayList
11
Screen grabs E
Her vises et screengrab af systemet set I en
browser
12
Technologies usedQ
  • Database
  • Servlets and JSP (Java for web)
  • A plugin for the JavaDoc tool (made in Java)

13
Linking 1 p-.,
  • By using javascript, a link can affect more
    frames
  • The link tag is the biggest EJD tags, but the
    specifications are necessary

ltclaceiteratorgt ltnavlinkgt
ltnavpart source"/methodConst-list.jsp"
target"mclist"gt ltnavparam
entity"clacename"gtltclacename/gtlt/navparamgt
lt/navpartgt ltnavpart
source"/info.jsp" target"info"gt
ltnavparam entity"clacename"gtltclacename/gtlt/navp
aramgt lt/navpartgt ltclacedisplayName/gt
lt/navlinkgt ltbrgt lt/claceiteratorgt
The target JSP page
The frame to change
A link to a frame
The link text
14
Linking 1 p-.,
  • By using javascript, a link can affect more
    frames
  • The link tag is the biggest EJD tags, but the
    specifications are necessary

ltclaceiteratorgt ltnavlinkgt
ltnavpart source"/methodConst-list.jsp"
target"mclist"gt ltnavparam
entity"clacename"gtltclacename/gtlt/navparamgt
lt/navpartgt ltnavpart
source"/info.jsp" target"info"gt
ltnavparam entity"clacename"gtltclacename/gtlt/navp
aramgt lt/navpartgt ltclacedisplayName/gt
lt/navlinkgt ltbrgt lt/claceiteratorgt
The target JSP page
The frame to change
A link to a frame
The link text
15
Internals of EJD T-.,
  • By using javascript, a link can affect more
    frames
  • The link tag is the biggest EJD tags, but the
    specifications are necessary
Write a Comment
User Comments (0)
About PowerShow.com