Refactor font handling.

This commit is contained in:
Erich Schubert 2018-10-21 16:46:41 +02:00
parent 7d9f665d07
commit 2f27948475
13 changed files with 150 additions and 126 deletions

2
TODO
View File

@ -1,5 +1,3 @@
When UMLGraph 2.29 comes out use <i></i> for italic fonts?
http://stackoverflow.com/questions/8609546/umlgraph-not-automatic-integrated-in-javadoc
Support for all UML diagrams: state, use-case, etc.

View File

@ -13,6 +13,9 @@ this works well with <code>-qualify -postfixpackage</code> (and <code>-!qualifyG
To get the old <code>-qualify</code> behavior, you need to add <code>-qualifyGenerics</code>,
the default is off, and it will not inherit from <code>-qualify</code>.</li>
<li>Better handling of complex names with generics and inner classes such as <code>pkg.Outer&lt;T&gt;.Inner</code>.</li>
<li>Use &lt;i&gt; tags for italic, because the old font naming approach does not work with SVG anymore.
Replace <code>-nodefontabstractname</code> and <code>-nodefontclassabstractname</code>
with a simple flag <code>-nodefontabstractitalic</code> instead.</li>
</ul>
</dd>

View File

@ -68,9 +68,7 @@ import com.sun.javadoc.WildcardType;
*/
class ClassGraph {
protected static final char FILE_SEPARATOR = '/';
enum Font {
NORMAL, ABSTRACT, CLASS, CLASS_ABSTRACT, TAG, PACKAGE
}
enum Align {
LEFT, CENTER, RIGHT;
@ -236,15 +234,11 @@ class ClassGraph {
if (hidden(cd))
continue;
stereotype(opt, cd, Align.LEFT);
String cs = visibility(opt, cd) + cd.name();
if (opt.showType) {
cs += "(" + parameter(opt, cd.parameters()) + ")";
} else {
cs += "()";
}
String cs = visibility(opt, cd) + cd.name() //
+ (opt.showType ? "(" + parameter(opt, cd.parameters()) + ")" : "()");
tableLine(Align.LEFT, cs);
printed = true;
tagvalue(opt, cd);
printed = true;
}
return printed;
}
@ -259,14 +253,10 @@ class ClassGraph {
if (md.name().equals("<clinit>") && md.isStatic() && md.isPackagePrivate())
continue;
stereotype(opt, md, Align.LEFT);
String op = visibility(opt, md) + md.name();
if (opt.showType) {
op += "(" + parameter(opt, md.parameters()) + ")"
+ typeAnnotation(opt, md.returnType());
} else {
op += "()";
}
tableLine(Align.LEFT, op, opt, md.isAbstract() ? Font.ABSTRACT : Font.NORMAL);
String op = visibility(opt, md) + md.name() + //
(opt.showType ? "(" + parameter(opt, md.parameters()) + ")" + typeAnnotation(opt, md.returnType())
: "()");
tableLine(Align.LEFT, (md.isAbstract() ? Font.ABSTRACT : Font.NORMAL).wrap(opt, op));
printed = true;
tagvalue(opt, md);
@ -279,7 +269,7 @@ class ClassGraph {
w.print(", fontname=\"" + opt.nodeFontName + "\"");
w.print(", fontcolor=\"" + opt.nodeFontColor + "\"");
w.print(", fontsize=" + opt.nodeFontSize);
w.print(opt.shape.graphvizAttribute());
w.print(opt.shape.style);
w.println("];");
}
@ -301,7 +291,7 @@ class ClassGraph {
System.err.println("@tagvalue expects two fields: " + tag.text());
continue;
}
tableLine(Align.RIGHT, "{" + t[0] + " = " + t[1] + "}", opt, Font.TAG);
tableLine(Align.RIGHT, Font.TAG.wrap(opt, "{" + t[0] + " = " + t[1] + "}"));
}
}
@ -399,14 +389,14 @@ class ClassGraph {
int startTemplate = qualifiedName.indexOf('<');
int idx = qualifiedName.lastIndexOf('.', startTemplate < 0 ? qualifiedName.length() - 1 : startTemplate);
if (opt.showComment)
tableLine(Align.LEFT, htmlNewline(escape(c.commentText())), opt, Font.CLASS);
tableLine(Align.LEFT, Font.CLASS.wrap(opt, htmlNewline(escape(c.commentText()))));
else if (opt.postfixPackage && idx > 0 && idx < (qualifiedName.length() - 1)) {
String packageName = qualifiedName.substring(0, idx);
String cn = qualifiedName.substring(idx + 1);
tableLine(Align.CENTER, escape(cn), opt, font);
tableLine(Align.CENTER, packageName, opt, Font.PACKAGE);
tableLine(Align.CENTER, font.wrap(opt, escape(cn)));
tableLine(Align.CENTER, Font.PACKAGE.wrap(opt, packageName));
} else {
tableLine(Align.CENTER, escape(qualifiedName), opt, font);
tableLine(Align.CENTER, font.wrap(opt, escape(qualifiedName)));
}
tagvalue(opt, c);
firstInnerTableEnd(opt);
@ -469,7 +459,7 @@ class ClassGraph {
w.print("\t" + noteName + " [label=");
externalTableStart(UmlGraph.getCommentOptions(), c.qualifiedName(), classToUrl(c, rootClass));
innerTableStart();
tableLine(Align.LEFT, htmlNewline(escape(t.text())), UmlGraph.getCommentOptions(), Font.CLASS);
tableLine(Align.LEFT, Font.CLASS.wrap(UmlGraph.getCommentOptions(), htmlNewline(escape(t.text()))));
innerTableEnd();
externalTableEnd();
nodeProperties(UmlGraph.getCommentOptions());
@ -661,10 +651,10 @@ class ClassGraph {
if(opt.postfixPackage && idx > 0 && idx < (qualifiedName.length() - 1)) {
String packageName = qualifiedName.substring(0, idx);
String cn = qualifiedName.substring(idx + 1);
tableLine(Align.CENTER, escape(cn), opt, Font.CLASS);
tableLine(Align.CENTER, packageName, opt, Font.PACKAGE);
tableLine(Align.CENTER, Font.CLASS.wrap(opt, escape(cn)));
tableLine(Align.CENTER, Font.PACKAGE.wrap(opt, packageName));
} else {
tableLine(Align.CENTER, escape(qualifiedName), opt, Font.CLASS);
tableLine(Align.CENTER, Font.CLASS.wrap(opt, escape(qualifiedName)));
}
innerTableEnd();
externalTableEnd();
@ -1041,58 +1031,11 @@ class ClassGraph {
}
private void tableLine(Align align, String text) {
tableLine(align, text, null, Font.NORMAL);
}
private void tableLine(Align align, String text, Options opt, Font font) {
w.print("<tr><td align=\"" + align.lower + "\" balign=\"" + align.lower + "\">" //
+ fontWrap(" " + text + " ", opt, font) //
+ text // MAY contain markup!
+ "</td></tr>" + linePostfix);
}
/**
* Wraps the text with the appropriate font according to the specified font type
* @param opt
* @param text
* @param font
* @return
*/
private String fontWrap(String text, Options opt, Font font) {
if(font == Font.ABSTRACT) {
return fontWrap(text, opt.nodeFontAbstractName, opt.nodeFontSize);
} else if(font == Font.CLASS) {
return fontWrap(text, opt.nodeFontClassName, opt.nodeFontClassSize);
} else if(font == Font.CLASS_ABSTRACT) {
return fontWrap(text,
opt.nodeFontClassAbstractName == null ? opt.nodeFontAbstractName : opt.nodeFontClassAbstractName,
opt.nodeFontClassSize);
} else if(font == Font.PACKAGE) {
return fontWrap(text, opt.nodeFontPackageName, opt.nodeFontPackageSize);
} else if(font == Font.TAG) {
return fontWrap(text, opt.nodeFontTagName, opt.nodeFontTagSize);
} else {
return text;
}
}
/**
* Wraps the text with the appropriate font tags when the font name
* and size are not void
* @param text the text to be wrapped
* @param fontName considered void when it's null
* @param fontSize considered void when it's <= 0
*/
private String fontWrap(String text, String fontName, double fontSize) {
if(fontName == null && fontSize == -1)
return text;
else if(fontName == null)
return "<font point-size=\"" + fontSize + "\">" + text + "</font>";
else if(fontSize <= 0)
return "<font face=\"" + fontName + "\">" + text + "</font>";
else
return "<font face=\"" + fontName + "\" point-size=\"" + fontSize + "\">" + text + "</font>";
}
private static class FieldRelationInfo {
ClassDoc cd;
boolean multiple;

View File

@ -0,0 +1,101 @@
package org.umlgraph.doclet;
/**
* Class to represent a font for graphviz.
* <p>
* This is a fairly complicated model, because it is rather an API into graphviz
* formatting strings rather than a standalone thing. <p Some fonts (edge, node,
* abstract) are set on the top level elements, whereas others (class name, tag,
* package) are inserted as {@code <font>} tags, and these can be omitted if not
* set. Inheritance of properties then happens in graphviz.
*
* @author Erich Schubert
*/
public enum Font {
/** Edge label font */
EDGE, //
/** Node basic */
NODE, //
/** Normal operation font */
NORMAL, //
/** Abstract operation font */
ABSTRACT, //
/** Class name. Inherits from null. */
CLASS, //
/** Class name of abstract classes (usually italic) */
CLASS_ABSTRACT, //
/** Package names Inherits from null. */
PACKAGE, //
/** Tags Inherits from null. */
TAG;
public static final String DEFAULT_FONT;
// Static initialization of further values.
static {
// use an appropriate font depending on the current operating system
if (System.getProperty("os.name").toLowerCase().contains("windows")) {
DEFAULT_FONT = "Arial";
} else {
DEFAULT_FONT = "Helvetica"; // TODO: can we use just "sans"?
}
}
/**
* Wraps the text with the appropriate font according to the specified font type
*
* @param opt Options
* @param text Text to wrap
* @return Wrapped text
*/
public String wrap(Options opt, String text) {
if (text.isEmpty() || this == NORMAL)
return text;
String face = null;
double size = -1;
boolean italic = false;
switch (this) {
case EDGE:
case NODE:
// Not used with the wrap function.
throw new UnsupportedOperationException();
case ABSTRACT:
italic = opt.nodeFontAbstractItalic;
case NORMAL:
break;
case CLASS_ABSTRACT:
italic = opt.nodeFontAbstractItalic;
case CLASS:
face = opt.nodeFontClassName;
size = opt.nodeFontClassSize;
break;
case PACKAGE:
face = opt.nodeFontPackageName;
size = opt.nodeFontPackageSize;
break;
case TAG:
face = opt.nodeFontTagName;
size = opt.nodeFontTagSize;
break;
}
if (face == null && size < 0 && !italic)
return text;
StringBuilder buf = new StringBuilder(text.length() + 100);
if (face != null || size > 0) {
buf.append("<font");
if (face != null)
buf.append(" face=\"").append(face).append('"');
if (size > 0)
buf.append(" point-size=\"").append(size).append('"');
buf.append('>');
}
if (italic)
buf.append("<i>");
buf.append(text);
if (italic)
buf.append("</i>");
if (face != null || size > 0)
buf.append("</font>");
return buf.toString();
}
}

View File

@ -48,25 +48,10 @@ import com.sun.javadoc.Tag;
* @author <a href="http://www.spinellis.gr">Diomidis Spinellis</a>
*/
public class Options implements Cloneable, OptionProvider {
// dot's font platform dependence workaround
private static String defaultFont;
private static String defaultItalicFont;
// reused often, especially in UmlGraphDoc, worth creating just once and reusing
private static final Pattern allPattern = Pattern.compile(".*");
protected static final String DEFAULT_EXTERNAL_APIDOC = "http://docs.oracle.com/javase/7/docs/api/";
static {
// use an appropriate font depending on the current operating system
// (on windows graphviz is unable to locate "Helvetica-Oblique"
if(System.getProperty("os.name").toLowerCase().contains("windows")) {
defaultFont = "arial";
defaultItalicFont = "arial italic";
} else {
defaultFont = "Helvetica";
defaultItalicFont = "Helvetica-Oblique";
}
}
// instance fields
List<Pattern> hidePatterns = new ArrayList<Pattern>();
List<Pattern> includePatterns = new ArrayList<Pattern>();
@ -82,18 +67,17 @@ public class Options implements Cloneable, OptionProvider {
boolean showType = false;
boolean showComment = false;
boolean autoSize = true;
String edgeFontName = defaultFont;
String edgeFontName = Font.DEFAULT_FONT;
String edgeFontColor = "black";
String edgeColor = "black";
double edgeFontSize = 10;
String nodeFontName = defaultFont;
String nodeFontAbstractName = defaultItalicFont;
String nodeFontName = Font.DEFAULT_FONT;
boolean nodeFontAbstractItalic = true;
String nodeFontColor = "black";
double nodeFontSize = 10;
String nodeFillColor = null;
double nodeFontClassSize = -1;
String nodeFontClassName = null;
String nodeFontClassAbstractName = null;
double nodeFontTagSize = -1;
String nodeFontTagName = null;
double nodeFontPackageSize = -1;
@ -188,6 +172,7 @@ public class Options implements Cloneable, OptionProvider {
option.equals("-types") || option.equals("-!types") ||
option.equals("-autosize") || option.equals("-!autosize") ||
option.equals("-commentname") || option.equals("-!commentname") ||
option.equals("-nodefontabstractitalic") || option.equals("-!nodefontabstractitalic") ||
option.equals("-all") ||
option.equals("-postfixpackage") ||
option.equals("-noguillemot") ||
@ -204,10 +189,8 @@ public class Options implements Cloneable, OptionProvider {
option.equals("-nodefontcolor") ||
option.equals("-nodefontsize") ||
option.equals("-nodefontname") ||
option.equals("-nodefontabstractname") ||
option.equals("-nodefontclasssize") ||
option.equals("-nodefontclassname") ||
option.equals("-nodefontclassabstractname") ||
option.equals("-nodefonttagsize") ||
option.equals("-nodefonttagname") ||
option.equals("-nodefontpackagesize") ||
@ -313,9 +296,9 @@ public class Options implements Cloneable, OptionProvider {
} else if(opt[0].equals("-edgefontname")) {
edgeFontName = opt[1];
} else if (opt[0].equals("-!edgefontname")) {
edgeFontName = defaultFont;
edgeFontName = Font.DEFAULT_FONT;
} else if(opt[0].equals("-edgefontsize")) {
edgeFontSize = Integer.parseInt(opt[1]);
edgeFontSize = Double.parseDouble(opt[1]);
} else if (opt[0].equals("-!edgefontsize")) {
edgeFontSize = 10;
} else if(opt[0].equals("-nodefontcolor")) {
@ -325,25 +308,21 @@ public class Options implements Cloneable, OptionProvider {
} else if(opt[0].equals("-nodefontname")) {
nodeFontName = opt[1];
} else if (opt[0].equals("-!nodefontname")) {
nodeFontName = defaultFont;
} else if(opt[0].equals("-nodefontabstractname")) {
nodeFontAbstractName = opt[1];
} else if (opt[0].equals("-!nodefontabstractname")) {
nodeFontAbstractName = defaultItalicFont;
nodeFontName = Font.DEFAULT_FONT;
} else if(opt[0].equals("-nodefontabstractitalic")) {
nodeFontAbstractItalic = true;
} else if (opt[0].equals("-!nodefontabstractitalic")) {
nodeFontAbstractItalic = false;
} else if(opt[0].equals("-nodefontsize")) {
nodeFontSize = Integer.parseInt(opt[1]);
nodeFontSize = Double.parseDouble(opt[1]);
} else if (opt[0].equals("-!nodefontsize")) {
nodeFontSize = 10;
} else if(opt[0].equals("-nodefontclassname")) {
nodeFontClassName = opt[1];
} else if (opt[0].equals("-!nodefontclassname")) {
nodeFontClassName = null;
} else if(opt[0].equals("-nodefontclassabstractname")) {
nodeFontClassAbstractName = opt[1];
} else if (opt[0].equals("-!nodefontclassabstractname")) {
nodeFontClassAbstractName = null;
} else if(opt[0].equals("-nodefontclasssize")) {
nodeFontClassSize = Integer.parseInt(opt[1]);
nodeFontClassSize = Double.parseDouble(opt[1]);
} else if (opt[0].equals("-!nodefontclasssize")) {
nodeFontClassSize = -1;
} else if(opt[0].equals("-nodefonttagname")) {
@ -351,7 +330,7 @@ public class Options implements Cloneable, OptionProvider {
} else if (opt[0].equals("-!nodefonttagname")) {
nodeFontTagName = null;
} else if(opt[0].equals("-nodefonttagsize")) {
nodeFontTagSize = Integer.parseInt(opt[1]);
nodeFontTagSize = Double.parseDouble(opt[1]);
} else if (opt[0].equals("-!nodefonttagsize")) {
nodeFontTagSize = -1;
} else if(opt[0].equals("-nodefontpackagename")) {
@ -359,7 +338,7 @@ public class Options implements Cloneable, OptionProvider {
} else if (opt[0].equals("-!nodefontpackagename")) {
nodeFontPackageName = null;
} else if(opt[0].equals("-nodefontpackagesize")) {
nodeFontPackageSize = Integer.parseInt(opt[1]);
nodeFontPackageSize = Double.parseDouble(opt[1]);
} else if (opt[0].equals("-!nodefontpackagesize")) {
nodeFontPackageSize = -1;
} else if(opt[0].equals("-nodefillcolor")) {

View File

@ -10,7 +10,7 @@ digraph G {
nodesep=0.25;
ranksep=0.5;
// test.AbstractNode
c1 [label=<<table title="test.AbstractNode" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="Helvetica-Oblique"> AbstractNode </font></td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> abstractMethod() </font></td></tr><tr><td align="left" balign="left"> concreteMethod() </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c1 [label=<<table title="test.AbstractNode" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><i> AbstractNode </i></td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> abstractMethod() </i></font></td></tr><tr><td align="left" balign="left"> concreteMethod() </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// test.InnerNode
c2 [label=<<table title="test.InnerNode" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> InnerNode </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// test.Leaf

View File

@ -42,7 +42,7 @@ digraph G {
// B DEPEND A
c67:p -> c66:p [taillabel="", label="", headlabel="", fontname="Helvetica", fontcolor="black", fontsize=10.0, color="black", arrowhead=open, style=dashed];
// java.util.List<E>
c73 [label=<<table title="java.util.List" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> List&lt;E&gt; </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> size() : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> isEmpty() : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> contains(arg0 : Object) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> iterator() : Iterator&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> toArray() : Object[] </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> toArray(arg0 : T[]) : T[] </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> add(arg0 : E) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> remove(arg0 : Object) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> containsAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> addAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> addAll(arg0 : int, arg1 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> removeAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> retainAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"> replaceAll(arg0 : UnaryOperator&lt;E&gt;) </td></tr><tr><td align="left" balign="left"> sort(arg0 : Comparator&lt;?&gt;) </td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> clear() </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> equals(arg0 : Object) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> hashCode() : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> get(arg0 : int) : E </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> set(arg0 : int, arg1 : E) : E </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> add(arg0 : int, arg1 : E) </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> remove(arg0 : int) : E </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> indexOf(arg0 : Object) : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> lastIndexOf(arg0 : Object) : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> listIterator() : ListIterator&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> listIterator(arg0 : int) : ListIterator&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> subList(arg0 : int, arg1 : int) : List&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"> spliterator() : Spliterator&lt;E&gt; </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c73 [label=<<table title="java.util.List" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> List&lt;E&gt; </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> size() : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> isEmpty() : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> contains(arg0 : Object) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> iterator() : Iterator&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> toArray() : Object[] </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> toArray(arg0 : T[]) : T[] </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> add(arg0 : E) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> remove(arg0 : Object) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> containsAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> addAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> addAll(arg0 : int, arg1 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> removeAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> retainAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"> replaceAll(arg0 : UnaryOperator&lt;E&gt;) </td></tr><tr><td align="left" balign="left"> sort(arg0 : Comparator&lt;?&gt;) </td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> clear() </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> equals(arg0 : Object) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> hashCode() : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> get(arg0 : int) : E </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> set(arg0 : int, arg1 : E) : E </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> add(arg0 : int, arg1 : E) </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> remove(arg0 : int) : E </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> indexOf(arg0 : Object) : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> lastIndexOf(arg0 : Object) : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> listIterator() : ListIterator&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> listIterator(arg0 : int) : ListIterator&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> subList(arg0 : int, arg1 : int) : List&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"> spliterator() : Spliterator&lt;E&gt; </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.util.ArrayList<E>
c72 [label=<<table title="java.util.ArrayList" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> ArrayList&lt;E&gt; </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> serialVersionUID : long </td></tr><tr><td align="left" balign="left"> DEFAULT_CAPACITY : int </td></tr><tr><td align="left" balign="left"> EMPTY_ELEMENTDATA : Object[] </td></tr><tr><td align="left" balign="left"> DEFAULTCAPACITY_EMPTY_ELEMENTDATA : Object[] </td></tr><tr><td align="left" balign="left"> elementData : Object[] </td></tr><tr><td align="left" balign="left"> size : int </td></tr><tr><td align="left" balign="left"> MAX_ARRAY_SIZE : int </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> trimToSize() </td></tr><tr><td align="left" balign="left"> ensureCapacity(arg0 : int) </td></tr><tr><td align="left" balign="left"> ensureCapacityInternal(arg0 : int) </td></tr><tr><td align="left" balign="left"> ensureExplicitCapacity(arg0 : int) </td></tr><tr><td align="left" balign="left"> grow(arg0 : int) </td></tr><tr><td align="left" balign="left"> hugeCapacity(arg0 : int) : int </td></tr><tr><td align="left" balign="left"> size() : int </td></tr><tr><td align="left" balign="left"> isEmpty() : boolean </td></tr><tr><td align="left" balign="left"> contains(arg0 : Object) : boolean </td></tr><tr><td align="left" balign="left"> indexOf(arg0 : Object) : int </td></tr><tr><td align="left" balign="left"> lastIndexOf(arg0 : Object) : int </td></tr><tr><td align="left" balign="left"> clone() : Object </td></tr><tr><td align="left" balign="left"> toArray() : Object[] </td></tr><tr><td align="left" balign="left"> toArray(arg0 : T[]) : T[] </td></tr><tr><td align="left" balign="left"> elementData(arg0 : int) : E </td></tr><tr><td align="left" balign="left"> get(arg0 : int) : E </td></tr><tr><td align="left" balign="left"> set(arg0 : int, arg1 : E) : E </td></tr><tr><td align="left" balign="left"> add(arg0 : E) : boolean </td></tr><tr><td align="left" balign="left"> add(arg0 : int, arg1 : E) </td></tr><tr><td align="left" balign="left"> remove(arg0 : int) : E </td></tr><tr><td align="left" balign="left"> remove(arg0 : Object) : boolean </td></tr><tr><td align="left" balign="left"> fastRemove(arg0 : int) </td></tr><tr><td align="left" balign="left"> clear() </td></tr><tr><td align="left" balign="left"> addAll(arg0 : Collection&lt;?&gt;) : boolean </td></tr><tr><td align="left" balign="left"> addAll(arg0 : int, arg1 : Collection&lt;?&gt;) : boolean </td></tr><tr><td align="left" balign="left"> removeRange(arg0 : int, arg1 : int) </td></tr><tr><td align="left" balign="left"> rangeCheck(arg0 : int) </td></tr><tr><td align="left" balign="left"> rangeCheckForAdd(arg0 : int) </td></tr><tr><td align="left" balign="left"> outOfBoundsMsg(arg0 : int) : String </td></tr><tr><td align="left" balign="left"> removeAll(arg0 : Collection&lt;?&gt;) : boolean </td></tr><tr><td align="left" balign="left"> retainAll(arg0 : Collection&lt;?&gt;) : boolean </td></tr><tr><td align="left" balign="left"> batchRemove(arg0 : Collection&lt;?&gt;, arg1 : boolean) : boolean </td></tr><tr><td align="left" balign="left"> writeObject(arg0 : ObjectOutputStream) </td></tr><tr><td align="left" balign="left"> readObject(arg0 : ObjectInputStream) </td></tr><tr><td align="left" balign="left"> listIterator(arg0 : int) : ListIterator&lt;E&gt; </td></tr><tr><td align="left" balign="left"> listIterator() : ListIterator&lt;E&gt; </td></tr><tr><td align="left" balign="left"> iterator() : Iterator&lt;E&gt; </td></tr><tr><td align="left" balign="left"> subList(arg0 : int, arg1 : int) : List&lt;E&gt; </td></tr><tr><td align="left" balign="left"> subListRangeCheck(arg0 : int, arg1 : int, arg2 : int) </td></tr><tr><td align="left" balign="left"> forEach(arg0 : Consumer&lt;?&gt;) </td></tr><tr><td align="left" balign="left"> spliterator() : Spliterator&lt;E&gt; </td></tr><tr><td align="left" balign="left"> removeIf(arg0 : Predicate&lt;?&gt;) : boolean </td></tr><tr><td align="left" balign="left"> replaceAll(arg0 : UnaryOperator&lt;E&gt;) </td></tr><tr><td align="left" balign="left"> sort(arg0 : Comparator&lt;?&gt;) </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
}

View File

@ -22,7 +22,7 @@ digraph G {
// java.util.RandomAccess
c88 [label=<<table title="java.util.RandomAccess" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/util/RandomAccess.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> RandomAccess </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/RandomAccess.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.util.List<E>
c87 [label=<<table title="java.util.List" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> List&lt;E&gt; </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + size() : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + isEmpty() : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + contains(arg0 : Object) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + iterator() : Iterator&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + toArray() : Object[] </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + toArray(arg0 : T[]) : T[] </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + add(arg0 : E) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + remove(arg0 : Object) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + containsAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + addAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + addAll(arg0 : int, arg1 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + removeAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + retainAll(arg0 : Collection&lt;?&gt;) : boolean </font></td></tr><tr><td align="left" balign="left"> + replaceAll(arg0 : UnaryOperator&lt;E&gt;) </td></tr><tr><td align="left" balign="left"> + sort(arg0 : Comparator&lt;?&gt;) </td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + clear() </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + equals(arg0 : Object) : boolean </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + hashCode() : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + get(arg0 : int) : E </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + set(arg0 : int, arg1 : E) : E </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + add(arg0 : int, arg1 : E) </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + remove(arg0 : int) : E </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + indexOf(arg0 : Object) : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + lastIndexOf(arg0 : Object) : int </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + listIterator() : ListIterator&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + listIterator(arg0 : int) : ListIterator&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> + subList(arg0 : int, arg1 : int) : List&lt;E&gt; </font></td></tr><tr><td align="left" balign="left"> + spliterator() : Spliterator&lt;E&gt; </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c87 [label=<<table title="java.util.List" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> List&lt;E&gt; </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + size() : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + isEmpty() : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + contains(arg0 : Object) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + iterator() : Iterator&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + toArray() : Object[] </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + toArray(arg0 : T[]) : T[] </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + add(arg0 : E) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + remove(arg0 : Object) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + containsAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + addAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + addAll(arg0 : int, arg1 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + removeAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + retainAll(arg0 : Collection&lt;?&gt;) : boolean </i></font></td></tr><tr><td align="left" balign="left"> + replaceAll(arg0 : UnaryOperator&lt;E&gt;) </td></tr><tr><td align="left" balign="left"> + sort(arg0 : Comparator&lt;?&gt;) </td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + clear() </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + equals(arg0 : Object) : boolean </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + hashCode() : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + get(arg0 : int) : E </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + set(arg0 : int, arg1 : E) : E </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + add(arg0 : int, arg1 : E) </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + remove(arg0 : int) : E </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + indexOf(arg0 : Object) : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + lastIndexOf(arg0 : Object) : int </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + listIterator() : ListIterator&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + listIterator(arg0 : int) : ListIterator&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> + subList(arg0 : int, arg1 : int) : List&lt;E&gt; </i></font></td></tr><tr><td align="left" balign="left"> + spliterator() : Spliterator&lt;E&gt; </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.lang.Cloneable
c89 [label=<<table title="java.lang.Cloneable" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> Cloneable </td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.util.Vector<E>

View File

@ -14,7 +14,7 @@ digraph G {
// Adapter
c91 [label=<<table title="Adapter" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Adapter </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// Element
c92 [label=<<table title="Element" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="Helvetica-Oblique"> Element </font></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c92 [label=<<table title="Element" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><i> Element </i></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ObjectType
c93 [label=<<table title="ObjectType" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> ObjectType </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ObjectMap

View File

@ -10,7 +10,7 @@ digraph G {
nodesep=0.25;
ranksep=0.5;
// net.sf.whatever.test.AbstractBase
c112 [label=<<table title="net.sf.whatever.test.AbstractBase" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;base&#187; </td></tr><tr><td align="center" balign="center"><font face="arial"> AbstractBase </font></td></tr><tr><td align="center" balign="center"><font point-size="8.0"> net.sf.whatever.test </font></td></tr><tr><td align="right" balign="right"><font face="arial" point-size="6.0"> {since = 1.0} </font></td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> field : int </td></tr><tr><td align="right" balign="right"><font face="arial" point-size="6.0"> {since = 1.5} </font></td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="9.0"> abstractMethod() </font></td></tr><tr><td align="left" balign="left"> concreteMethod() : int </td></tr></table></td></tr></table>>, URL="null", fontname="arial", fontcolor="black", fontsize=9.0];
c112 [label=<<table title="net.sf.whatever.test.AbstractBase" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;base&#187; </td></tr><tr><td align="center" balign="center"><font face="arial"> AbstractBase </font></td></tr><tr><td align="center" balign="center"><font point-size="8.0"> net.sf.whatever.test </font></td></tr><tr><td align="right" balign="right"><font face="arial" point-size="6.0"> {since = 1.0} </font></td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> field : int </td></tr><tr><td align="right" balign="right"><font face="arial" point-size="6.0"> {since = 1.5} </font></td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica" point-size="9.0"><i> abstractMethod() </i></font></td></tr><tr><td align="left" balign="left"> concreteMethod() : int </td></tr></table></td></tr></table>>, URL="null", fontname="arial", fontcolor="black", fontsize=9.0];
// net.sf.whatever.test.Composite
c113 [label=<<table title="net.sf.whatever.test.Composite" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="arial"> Composite </font></td></tr><tr><td align="center" balign="center"><font point-size="8.0"> net.sf.whatever.test </font></td></tr></table></td></tr></table>>, URL="null", fontname="arial", fontcolor="black", fontsize=9.0];
// net.sf.whatever.test.Style

View File

@ -38,6 +38,6 @@ digraph G {
// gr.spinellis.context.classes.A DEPEND gr.spinellis.context.classes.E
c434:p -> c427:p [taillabel="", label="", headlabel="", fontname="Helvetica", fontcolor="black", fontsize=10.0, color="black", arrowhead=open, style=dashed];
// javax.swing.JComponent
c509 [label=<<table title="javax.swing.JComponent" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="Helvetica-Oblique"> JComponent </font></td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c509 [label=<<table title="javax.swing.JComponent" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><i> JComponent </i></td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
}

View File

@ -20,7 +20,7 @@ digraph G {
// ChannelIterator
c9 [label=<<table title="ChannelIterator" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> ChannelIterator </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// URLStreamHandler
c10 [label=<<table title="URLStreamHandler" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> URLStreamHandler </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> OpenConnection() </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> parseURL() </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> setURL() </font></td></tr><tr><td align="left" balign="left"><font face="Helvetica-Oblique" point-size="10.0"> toExternalForm() </font></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c10 [label=<<table title="URLStreamHandler" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> URLStreamHandler </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> OpenConnection() </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> parseURL() </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> setURL() </i></font></td></tr><tr><td align="left" balign="left"><font face="Helvetica" point-size="10.0"><i> toExternalForm() </i></font></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
//SetTopController extends Controller
c5:p -> c8:p [dir=back,arrowtail=empty];
//SetTopController extends EmbeddedAgent

View File

@ -12,15 +12,15 @@ digraph G {
// HttpResponseBase
c19 [label=<<table title="HttpResponseBase" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> HttpResponseBase </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpResponseWrapper
c20 [label=<<table title="HttpResponseWrapper" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="Helvetica-Oblique"> HttpResponseWrapper </font></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c20 [label=<<table title="HttpResponseWrapper" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><i> HttpResponseWrapper </i></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpResponseFacade
c21 [label=<<table title="HttpResponseFacade" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> HttpResponseFacade </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ResponseWrapper
c22 [label=<<table title="ResponseWrapper" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="Helvetica-Oblique"> ResponseWrapper </font></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c22 [label=<<table title="ResponseWrapper" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><i> ResponseWrapper </i></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpResponse
c23 [label=<<table title="HttpResponse" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> HttpResponse </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ResponseBase
c24 [label=<<table title="ResponseBase" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="Helvetica-Oblique"> ResponseBase </font></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
c24 [label=<<table title="ResponseBase" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><i> ResponseBase </i></td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpServletResponse
c25 [label=<<table title="HttpServletResponse" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> &#171;interface&#187; </td></tr><tr><td align="center" balign="center"> HttpServletResponse </td></tr></table></td></tr></table>>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ResponseFacade