") && 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);
- else if(opt.postfixPackage && idx > 0 && idx < (qualifiedName.length() - 1)) {
+ 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("| " //
- + fontWrap(" " + text + " ", opt, font) //
+ + text // MAY contain markup!
+ " |
" + 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 "" + text + "";
- else if(fontSize <= 0)
- return "" + text + "";
- else
- return "" + text + "";
- }
-
private static class FieldRelationInfo {
ClassDoc cd;
boolean multiple;
diff --git a/src/main/java/org/umlgraph/doclet/Font.java b/src/main/java/org/umlgraph/doclet/Font.java
new file mode 100644
index 0000000..09355ea
--- /dev/null
+++ b/src/main/java/org/umlgraph/doclet/Font.java
@@ -0,0 +1,101 @@
+package org.umlgraph.doclet;
+
+/**
+ * Class to represent a font for graphviz.
+ *
+ * This is a fairly complicated model, because it is rather an API into graphviz
+ * formatting strings rather than a standalone thing.
} 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(" 0)
+ buf.append(" point-size=\"").append(size).append('"');
+ buf.append('>');
+ }
+ if (italic)
+ buf.append("");
+ buf.append(text);
+ if (italic)
+ buf.append("");
+ if (face != null || size > 0)
+ buf.append("");
+ return buf.toString();
+ }
+}
diff --git a/src/main/java/org/umlgraph/doclet/Options.java b/src/main/java/org/umlgraph/doclet/Options.java
index 2aa0f4b..1747197 100644
--- a/src/main/java/org/umlgraph/doclet/Options.java
+++ b/src/main/java/org/umlgraph/doclet/Options.java
@@ -48,25 +48,10 @@ import com.sun.javadoc.Tag;
* @author Diomidis Spinellis
*/
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 hidePatterns = new ArrayList();
List includePatterns = new ArrayList();
@@ -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")) {
diff --git a/testdata/dot-ref/Abstr.dot b/testdata/dot-ref/Abstr.dot
index 708dba4..d2df0bf 100644
--- a/testdata/dot-ref/Abstr.dot
+++ b/testdata/dot-ref/Abstr.dot
@@ -10,7 +10,7 @@ digraph G {
nodesep=0.25;
ranksep=0.5;
// test.AbstractNode
- c1 [label=< |
|
| abstractMethod() | | concreteMethod() |
|
>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c1 [label=< |
|
| abstractMethod() | | concreteMethod() |
|
>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// test.InnerNode
c2 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// test.Leaf
diff --git a/testdata/dot-ref/Inference.dot b/testdata/dot-ref/Inference.dot
index 4158b30..708e239 100644
--- a/testdata/dot-ref/Inference.dot
+++ b/testdata/dot-ref/Inference.dot
@@ -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
- c73 [label=< |
|
| size() : int | | isEmpty() : boolean | | contains(arg0 : Object) : boolean | | iterator() : Iterator<E> | | toArray() : Object[] | | toArray(arg0 : T[]) : T[] | | add(arg0 : E) : boolean | | remove(arg0 : Object) : boolean | | containsAll(arg0 : Collection<?>) : boolean | | addAll(arg0 : Collection<?>) : boolean | | addAll(arg0 : int, arg1 : Collection<?>) : boolean | | removeAll(arg0 : Collection<?>) : boolean | | retainAll(arg0 : Collection<?>) : boolean | | replaceAll(arg0 : UnaryOperator<E>) | | sort(arg0 : Comparator<?>) | | clear() | | equals(arg0 : Object) : boolean | | hashCode() : int | | get(arg0 : int) : E | | set(arg0 : int, arg1 : E) : E | | add(arg0 : int, arg1 : E) | | remove(arg0 : int) : E | | indexOf(arg0 : Object) : int | | lastIndexOf(arg0 : Object) : int | | listIterator() : ListIterator<E> | | listIterator(arg0 : int) : ListIterator<E> | | subList(arg0 : int, arg1 : int) : List<E> | | spliterator() : Spliterator<E> |
|
>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c73 [label=< |
|
| size() : int | | isEmpty() : boolean | | contains(arg0 : Object) : boolean | | iterator() : Iterator<E> | | toArray() : Object[] | | toArray(arg0 : T[]) : T[] | | add(arg0 : E) : boolean | | remove(arg0 : Object) : boolean | | containsAll(arg0 : Collection<?>) : boolean | | addAll(arg0 : Collection<?>) : boolean | | addAll(arg0 : int, arg1 : Collection<?>) : boolean | | removeAll(arg0 : Collection<?>) : boolean | | retainAll(arg0 : Collection<?>) : boolean | | replaceAll(arg0 : UnaryOperator<E>) | | sort(arg0 : Comparator<?>) | | clear() | | equals(arg0 : Object) : boolean | | hashCode() : int | | get(arg0 : int) : E | | set(arg0 : int, arg1 : E) : E | | add(arg0 : int, arg1 : E) | | remove(arg0 : int) : E | | indexOf(arg0 : Object) : int | | lastIndexOf(arg0 : Object) : int | | listIterator() : ListIterator<E> | | listIterator(arg0 : int) : ListIterator<E> | | subList(arg0 : int, arg1 : int) : List<E> | | spliterator() : Spliterator<E> |
|
>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.util.ArrayList
c72 [label=< |
| serialVersionUID : long | | DEFAULT_CAPACITY : int | | EMPTY_ELEMENTDATA : Object[] | | DEFAULTCAPACITY_EMPTY_ELEMENTDATA : Object[] | | elementData : Object[] | | size : int | | MAX_ARRAY_SIZE : int |
|
| trimToSize() | | ensureCapacity(arg0 : int) | | ensureCapacityInternal(arg0 : int) | | ensureExplicitCapacity(arg0 : int) | | grow(arg0 : int) | | hugeCapacity(arg0 : int) : int | | size() : int | | isEmpty() : boolean | | contains(arg0 : Object) : boolean | | indexOf(arg0 : Object) : int | | lastIndexOf(arg0 : Object) : int | | clone() : Object | | toArray() : Object[] | | toArray(arg0 : T[]) : T[] | | elementData(arg0 : int) : E | | get(arg0 : int) : E | | set(arg0 : int, arg1 : E) : E | | add(arg0 : E) : boolean | | add(arg0 : int, arg1 : E) | | remove(arg0 : int) : E | | remove(arg0 : Object) : boolean | | fastRemove(arg0 : int) | | clear() | | addAll(arg0 : Collection<?>) : boolean | | addAll(arg0 : int, arg1 : Collection<?>) : boolean | | removeRange(arg0 : int, arg1 : int) | | rangeCheck(arg0 : int) | | rangeCheckForAdd(arg0 : int) | | outOfBoundsMsg(arg0 : int) : String | | removeAll(arg0 : Collection<?>) : boolean | | retainAll(arg0 : Collection<?>) : boolean | | batchRemove(arg0 : Collection<?>, arg1 : boolean) : boolean | | writeObject(arg0 : ObjectOutputStream) | | readObject(arg0 : ObjectInputStream) | | listIterator(arg0 : int) : ListIterator<E> | | listIterator() : ListIterator<E> | | iterator() : Iterator<E> | | subList(arg0 : int, arg1 : int) : List<E> | | subListRangeCheck(arg0 : int, arg1 : int, arg2 : int) | | forEach(arg0 : Consumer<?>) | | spliterator() : Spliterator<E> | | removeIf(arg0 : Predicate<?>) : boolean | | replaceAll(arg0 : UnaryOperator<E>) | | sort(arg0 : Comparator<?>) |
|
>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
}
diff --git a/testdata/dot-ref/MyVector.dot b/testdata/dot-ref/MyVector.dot
index ce2b411..734024d 100644
--- a/testdata/dot-ref/MyVector.dot
+++ b/testdata/dot-ref/MyVector.dot
@@ -22,7 +22,7 @@ digraph G {
// java.util.RandomAccess
c88 [label=<>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/RandomAccess.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.util.List
- c87 [label=< |
|
| + size() : int | | + isEmpty() : boolean | | + contains(arg0 : Object) : boolean | | + iterator() : Iterator<E> | | + toArray() : Object[] | | + toArray(arg0 : T[]) : T[] | | + add(arg0 : E) : boolean | | + remove(arg0 : Object) : boolean | | + containsAll(arg0 : Collection<?>) : boolean | | + addAll(arg0 : Collection<?>) : boolean | | + addAll(arg0 : int, arg1 : Collection<?>) : boolean | | + removeAll(arg0 : Collection<?>) : boolean | | + retainAll(arg0 : Collection<?>) : boolean | | + replaceAll(arg0 : UnaryOperator<E>) | | + sort(arg0 : Comparator<?>) | | + clear() | | + equals(arg0 : Object) : boolean | | + hashCode() : int | | + get(arg0 : int) : E | | + set(arg0 : int, arg1 : E) : E | | + add(arg0 : int, arg1 : E) | | + remove(arg0 : int) : E | | + indexOf(arg0 : Object) : int | | + lastIndexOf(arg0 : Object) : int | | + listIterator() : ListIterator<E> | | + listIterator(arg0 : int) : ListIterator<E> | | + subList(arg0 : int, arg1 : int) : List<E> | | + spliterator() : Spliterator<E> |
|
>, URL="http://docs.oracle.com/javase/7/docs/api/java/util/List.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c87 [label=< |
|
| + size() : int | | + isEmpty() : boolean | | + contains(arg0 : Object) : boolean | | + iterator() : Iterator<E> | | + toArray() : Object[] | | + toArray(arg0 : T[]) : T[] | | + add(arg0 : E) : boolean | | + remove(arg0 : Object) : boolean | | + containsAll(arg0 : Collection<?>) : boolean | | + addAll(arg0 : Collection<?>) : boolean | | + addAll(arg0 : int, arg1 : Collection<?>) : boolean | | + removeAll(arg0 : Collection<?>) : boolean | | + retainAll(arg0 : Collection<?>) : boolean | | + replaceAll(arg0 : UnaryOperator<E>) | | + sort(arg0 : Comparator<?>) | | + clear() | | + equals(arg0 : Object) : boolean | | + hashCode() : int | | + get(arg0 : int) : E | | + set(arg0 : int, arg1 : E) : E | | + add(arg0 : int, arg1 : E) | | + remove(arg0 : int) : E | | + indexOf(arg0 : Object) : int | | + lastIndexOf(arg0 : Object) : int | | + listIterator() : ListIterator<E> | | + listIterator(arg0 : int) : ListIterator<E> | | + subList(arg0 : int, arg1 : int) : List<E> | | + spliterator() : Spliterator<E> |
|
>, 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=<>, URL="http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// java.util.Vector
diff --git a/testdata/dot-ref/Root.dot b/testdata/dot-ref/Root.dot
index 4f92d1c..f912672 100644
--- a/testdata/dot-ref/Root.dot
+++ b/testdata/dot-ref/Root.dot
@@ -14,7 +14,7 @@ digraph G {
// Adapter
c91 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// Element
- c92 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c92 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ObjectType
c93 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ObjectMap
diff --git a/testdata/dot-ref/Style.dot b/testdata/dot-ref/Style.dot
index 320d5cc..6d2a255 100644
--- a/testdata/dot-ref/Style.dot
+++ b/testdata/dot-ref/Style.dot
@@ -10,7 +10,7 @@ digraph G {
nodesep=0.25;
ranksep=0.5;
// net.sf.whatever.test.AbstractBase
- c112 [label=<| «base» | | AbstractBase | | net.sf.whatever.test | | {since = 1.0} |
|
| field : int | | {since = 1.5} |
|
| abstractMethod() | | concreteMethod() : int |
|
>, URL="null", fontname="arial", fontcolor="black", fontsize=9.0];
+ c112 [label=<| «base» | | AbstractBase | | net.sf.whatever.test | | {since = 1.0} |
|
| field : int | | {since = 1.5} |
|
| abstractMethod() | | concreteMethod() : int |
|
>, URL="null", fontname="arial", fontcolor="black", fontsize=9.0];
// net.sf.whatever.test.Composite
c113 [label=<| Composite | | net.sf.whatever.test |
|
>, URL="null", fontname="arial", fontcolor="black", fontsize=9.0];
// net.sf.whatever.test.Style
diff --git a/testdata/dot-ref/ViewContext.dot b/testdata/dot-ref/ViewContext.dot
index 45ee6f6..b5bab9b 100644
--- a/testdata/dot-ref/ViewContext.dot
+++ b/testdata/dot-ref/ViewContext.dot
@@ -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=<>, URL="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c509 [label=<>, URL="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html", fontname="Helvetica", fontcolor="black", fontsize=10.0];
}
diff --git a/testdata/dot-ref/advrel.dot b/testdata/dot-ref/advrel.dot
index 92e9a8e..8c94435 100644
--- a/testdata/dot-ref/advrel.dot
+++ b/testdata/dot-ref/advrel.dot
@@ -20,7 +20,7 @@ digraph G {
// ChannelIterator
c9 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// URLStreamHandler
- c10 [label=<| «interface» | | URLStreamHandler |
|
|
| OpenConnection() | | parseURL() | | setURL() | | toExternalForm() |
|
>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c10 [label=<| «interface» | | URLStreamHandler |
|
|
| OpenConnection() | | parseURL() | | setURL() | | toExternalForm() |
|
>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
//SetTopController extends Controller
c5:p -> c8:p [dir=back,arrowtail=empty];
//SetTopController extends EmbeddedAgent
diff --git a/testdata/dot-ref/catalina.dot b/testdata/dot-ref/catalina.dot
index 8fea9a5..fe45d2d 100644
--- a/testdata/dot-ref/catalina.dot
+++ b/testdata/dot-ref/catalina.dot
@@ -12,15 +12,15 @@ digraph G {
// HttpResponseBase
c19 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpResponseWrapper
- c20 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c20 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpResponseFacade
c21 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ResponseWrapper
- c22 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c22 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpResponse
c23 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ResponseBase
- c24 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
+ c24 [label=<>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// HttpServletResponse
c25 [label=<| «interface» | | HttpServletResponse |
|
>, URL="null", fontname="Helvetica", fontcolor="black", fontsize=10.0];
// ResponseFacade