fixup dot formatting

This commit is contained in:
Erich Schubert 2018-10-27 22:57:37 +02:00
parent 1d03695f8e
commit 867dec5d9c
14 changed files with 114 additions and 113 deletions

View File

@ -173,9 +173,8 @@ public class DotDiff {
} else { // that's a node
String attributes = line.substring(openBrackedIdx + 1, closedBracketIdx);
Map<String, String> attMap = parseAttributes(attributes);
String name = line.substring(0, openBrackedIdx - 1).trim();
String label = attMap.get("label");
DotNode node = new DotNode(name, label, attMap, line);
String name = trim(line.substring(0, openBrackedIdx - 1));
DotNode node = new DotNode(name, attMap.get("label"), attMap, line);
nodes.put(name, node);
nodeList.add(node);
}
@ -185,19 +184,21 @@ public class DotDiff {
int closedBracketIdx = line.lastIndexOf(']');
String attributes = line.substring(openBrackedIdx + 1, closedBracketIdx);
String[] names = line.substring(0, openBrackedIdx).split("->");
DotNode from = nodes.get(names[0].trim());
DotNode to = nodes.get(names[1].trim());
if (from == null) {
from = new DotNode(names[0], "", new HashMap<String, String>(), "");
}
if (to == null) {
to = new DotNode(names[1], "", new HashMap<String, String>(), "");
}
DotNode from = nodes.get(names[0] = trim(names[0]));
DotNode to = nodes.get(names[1] = trim(names[1]));
from = from != null ? from : new DotNode(names[0], "", new HashMap<String, String>(), "");
to = to != null? to : new DotNode(names[1], "", new HashMap<String, String>(), "");
arcs.add(new DotArc(from, to, parseAttributes(attributes), line));
}
return extraLines;
}
// Trim space AND port.
private String trim(String name) {
name = name.trim();
return name.endsWith(":p") ? name.substring(0, name.length() - 2) : name;
}
private Map<String, String> parseAttributes(String attributes) throws IOException {
Map<String, String> map = new HashMap<String, String>();

View File

@ -16,11 +16,11 @@ c1 [label=<<table title="test.AbstractNode" border="0" cellborder="1" cellspacin
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>>];
// test.Leaf
c3 [label=<<table title="test.Leaf" 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"> Leaf </td></tr></table></td></tr></table>>];
//test.InnerNode extends test.AbstractNode
// test.InnerNode extends test.AbstractNode
c1:p -> c2:p [arrowtail=empty,dir=back,weight=10];
// test.InnerNode composed test.AbstractNode
c2:p -> c1:p [arrowhead=none,arrowtail=diamond,dir=back,weight=6,taillabel="1", label="has", headlabel="*"];
//test.Leaf extends test.AbstractNode
// test.Leaf extends test.AbstractNode
c1:p -> c3:p [arrowtail=empty,dir=back,weight=10];
}

View File

@ -22,9 +22,9 @@ c69 [label=<<table title="MyFunnyList" border="0" cellborder="1" cellspacing="0"
c70 [label=<<table title="MyList" 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"> MyList </td></tr></table></td></tr></table>>];
// D
c71 [label=<<table title="D" 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"> D </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left"> anotherListOfA : MyList </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></table>>];
//MyFunnyList<T, V> extends java.util.ArrayList<T>
// MyFunnyList<T, V> extends java.util.ArrayList<T>
c72:p -> c69:p [arrowtail=empty,dir=back,weight=10];
//MyList extends MyFunnyList<A, B>
// MyList extends MyFunnyList<A, B>
c69:p -> c70:p [arrowtail=empty,dir=back,weight=10];
// A has B
c66:p -> c67:p [arrowhead=none,arrowtail=ediamond,dir=back,weight=4];

View File

@ -16,7 +16,7 @@ c74 [label=<<table title="Application" border="0" cellborder="1" cellspacing="0"
c75 [label=<<table title="IrpApplication" 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"> IrpApplication </td></tr></table></td></tr></table>>];
// Main
c76 [label=<<table title="Main" 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"> Main </td></tr></table></td></tr></table>>];
//IrpApplication extends Application
// IrpApplication extends Application
c74:p -> c75:p [arrowtail=empty,dir=back,weight=10];
// Main depend IrpApplication
c76:p -> c75:p [arrowhead=open,style=dashed,weight=0,label="&#171;friend&#187;"];

View File

@ -12,13 +12,13 @@ nodesep=0.25;
ranksep=0.5;
// MyVector<E, P>
c85 [label=<<table title="MyVector" 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"> MyVector&lt;E, P&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"> ~ addAll(index : int, c : Collection&lt;E&gt;) : boolean </td></tr><tr><td align="left" balign="left"> ~ foo(x : MyVector&lt;P, MyVector&lt;E, E&gt;&gt;) : MyVector&lt;E, P&gt; </td></tr><tr><td align="left" balign="left"> ~ removeAll(c : Collection&lt;?&gt;) : boolean </td></tr><tr><td align="left" balign="left"> ~ set(index : int, element : E) : E </td></tr></table></td></tr></table>>];
//MyVector<E, P> extends java.util.Vector<E>
// MyVector<E, P> extends java.util.Vector<E>
c86:p -> c85:p [arrowtail=empty,dir=back,weight=10];
//MyVector<E, P> implements java.util.List<E>
// MyVector<E, P> implements java.util.List<E>
c87:p -> c85:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//MyVector<E, P> implements java.util.RandomAccess
// MyVector<E, P> implements java.util.RandomAccess
c88:p -> c85:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//MyVector<E, P> implements java.lang.Cloneable
// MyVector<E, P> implements java.lang.Cloneable
c89:p -> c85:p [arrowtail=empty,style=dashed,dir=back,weight=9];
// 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"];

View File

@ -34,15 +34,15 @@ c90:p -> c94:p [arrowhead=none,weight=2,headlabel="0..n"];
c90:p -> c95:p [arrowhead=none,weight=2,headlabel="0..n"];
// Root assoc DataOperation
c90:p -> c96:p [arrowhead=none,weight=2,headlabel="0..n"];
//ObjectType extends Element
// ObjectType extends Element
c92:p -> c93:p [arrowtail=empty,dir=back,weight=10];
//ObjectMap extends Element
// ObjectMap extends Element
c92:p -> c94:p [arrowtail=empty,dir=back,weight=10];
// ObjectMap has ObjectType
c94:p -> c93:p [arrowhead=none,arrowtail=ediamond,dir=back,weight=4,taillabel="1..1", headlabel="1..1"];
//Table extends Element
// Table extends Element
c92:p -> c95:p [arrowtail=empty,dir=back,weight=10];
//DataOperation extends Element
// DataOperation extends Element
c92:p -> c96:p [arrowtail=empty,dir=back,weight=10];
}

View File

@ -16,11 +16,11 @@ c112 [label=<<table title="net.sf.whatever.test.AbstractBase" border="0" cellbor
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>>];
// net.sf.whatever.test.Style
c114 [label=<<table title="net.sf.whatever.test.Style" 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"> Style </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>>];
//net.sf.whatever.test.Composite extends net.sf.whatever.test.AbstractBase
// net.sf.whatever.test.Composite extends net.sf.whatever.test.AbstractBase
c112:p -> c113:p [arrowtail=empty,dir=back,weight=10];
// net.sf.whatever.test.Composite composed from.Outer.Space.AlienClass
c113:p -> c115:p [arrowhead=none,arrowtail=diamond,dir=back,weight=6,taillabel="1",label="has",headlabel="*"];
//net.sf.whatever.test.Style extends net.sf.whatever.test.AbstractBase
// net.sf.whatever.test.Style extends net.sf.whatever.test.AbstractBase
c112:p -> c114:p [arrowtail=empty,dir=back,weight=10];
// from.Outer.Space.AlienClass
c115[label=<<table title="from.Outer.Space.AlienClass" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" href="http://docs.oracle.com/javase/7/docs/api/from/Outer/Space/AlienClass.html" target="_parent"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"><font face="arial"> AlienClass </font></td></tr><tr><td align="center" balign="center"><font point-size="8.0"> from.Outer.Space </font></td></tr></table></td></tr></table>>];

View File

@ -7,38 +7,38 @@
digraph G {
graph [fontnames="svg"]
edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10,color="black"];
node [fontname="Helvetica",fontcolor="black",fontsize=10,shape=plaintext];
nodesep=0.25;
ranksep=0.5;
// gr.spinellis.context.classes.AClient
c424 [label=<<table title="gr.spinellis.context.classes.AClient" 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"> AClient </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.ASubclass
c426 [label=<<table title="gr.spinellis.context.classes.ASubclass" 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"> ASubclass </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.E
c427 [label=<<table title="gr.spinellis.context.classes.E" 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"> E </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.D
c429 [label=<<table title="gr.spinellis.context.classes.D" 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"> D </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.B
c432 [label=<<table title="gr.spinellis.context.classes.B" 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"> B </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.ABaseClass
c433 [label=<<table title="gr.spinellis.context.classes.ABaseClass" 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"> ABaseClass </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.A
c434 [label=<<table title="gr.spinellis.context.classes.A" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor="lemonchiffon"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> A </td></tr></table></td></tr></table>>];
//gr.spinellis.context.classes.ASubclass extends gr.spinellis.context.classes.A
c434:p -> c426:p [arrowtail=empty,dir=back,weight=10];
//gr.spinellis.context.classes.A extends gr.spinellis.context.classes.ABaseClass
c433:p -> c434:p [arrowtail=empty,dir=back,weight=10];
// gr.spinellis.context.classes.D navassoc gr.spinellis.context.classes.A
c429:p -> c434:p [arrowhead=open,weight=1];
// gr.spinellis.context.classes.A navassoc gr.spinellis.context.classes.B
c434:p -> c432:p [arrowhead=open,weight=1];
// gr.spinellis.context.classes.A navassoc javax.swing.JComponent
c434:p -> c509:p [arrowhead=open,weight=1];
// gr.spinellis.context.classes.AClient depend gr.spinellis.context.classes.A
c424:p -> c434:p [arrowhead=open,style=dashed,weight=0];
// gr.spinellis.context.classes.A depend gr.spinellis.context.classes.E
c434:p -> c427:p [arrowhead=open,style=dashed,weight=0];
// 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"><i> JComponent </i></td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html"];
node [fontname="Helvetica",fontcolor="black",fontsize=10,shape=plaintext];
nodesep=0.25;
ranksep=0.5;
// gr.spinellis.context.classes.AClient
c424 [label=<<table title="gr.spinellis.context.classes.AClient" 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"> AClient </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.ASubclass
c426 [label=<<table title="gr.spinellis.context.classes.ASubclass" 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"> ASubclass </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.E
c427 [label=<<table title="gr.spinellis.context.classes.E" 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"> E </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.D
c429 [label=<<table title="gr.spinellis.context.classes.D" 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"> D </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.B
c432 [label=<<table title="gr.spinellis.context.classes.B" 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"> B </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.ABaseClass
c433 [label=<<table title="gr.spinellis.context.classes.ABaseClass" 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"> ABaseClass </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.A
c434 [label=<<table title="gr.spinellis.context.classes.A" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor="lemonchiffon"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> A </td></tr></table></td></tr></table>>];
// gr.spinellis.context.classes.ASubclass extends gr.spinellis.context.classes.A
c434:p -> c426:p [arrowtail=empty,dir=back,weight=10];
// gr.spinellis.context.classes.A extends gr.spinellis.context.classes.ABaseClass
c433:p -> c434:p [arrowtail=empty,dir=back,weight=10];
// gr.spinellis.context.classes.D navassoc gr.spinellis.context.classes.A
c429:p -> c434:p [arrowhead=open,weight=1];
// gr.spinellis.context.classes.A navassoc gr.spinellis.context.classes.B
c434:p -> c432:p [arrowhead=open,weight=1];
// gr.spinellis.context.classes.A navassoc javax.swing.JComponent
c434:p -> c509:p [arrowhead=open,weight=1];
// gr.spinellis.context.classes.AClient depend gr.spinellis.context.classes.A
c424:p -> c434:p [arrowhead=open,style=dashed,weight=0];
// gr.spinellis.context.classes.A depend gr.spinellis.context.classes.E
c434:p -> c427:p [arrowhead=open,style=dashed,weight=0];
// 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"><i> JComponent </i></td></tr></table></td></tr></table>>, URL="http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html"];
}

View File

@ -20,13 +20,13 @@ c537 [label=<<table title="gr.spinellis.iface.classes.SubSubFace" border="0" cel
c538 [label=<<table title="gr.spinellis.iface.classes.SubFace" 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"> SubFace </td></tr></table></td></tr></table>>];
// gr.spinellis.iface.classes.Face
c539 [label=<<table title="gr.spinellis.iface.classes.Face" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor="lemonchiffon"><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"> Face </td></tr></table></td></tr></table>>];
//gr.spinellis.iface.classes.FarImplementor implements gr.spinellis.iface.classes.SubSubFace
// gr.spinellis.iface.classes.FarImplementor implements gr.spinellis.iface.classes.SubSubFace
c537:p -> c534:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//gr.spinellis.iface.classes.DirectImplementor implements gr.spinellis.iface.classes.Face
// gr.spinellis.iface.classes.DirectImplementor implements gr.spinellis.iface.classes.Face
c539:p -> c535:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//gr.spinellis.iface.classes.SubSubFace implements gr.spinellis.iface.classes.SubFace
// gr.spinellis.iface.classes.SubSubFace implements gr.spinellis.iface.classes.SubFace
c538:p -> c537:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//gr.spinellis.iface.classes.SubFace implements gr.spinellis.iface.classes.Face
// gr.spinellis.iface.classes.SubFace implements gr.spinellis.iface.classes.Face
c539:p -> c538:p [arrowtail=empty,style=dashed,dir=back,weight=9];
}

View File

@ -7,26 +7,26 @@
digraph G {
graph [fontnames="svg"]
edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10,color="black"];
node [fontname="Helvetica",fontcolor="black",fontsize=10,shape=plaintext];
nodesep=0.25;
ranksep=0.5;
// gr.spinellis.subclass.classes.SubOneTwo
c580 [label=<<table title="gr.spinellis.subclass.classes.SubOneTwo" 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"> SubOneTwo </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubOneOne
c581 [label=<<table title="gr.spinellis.subclass.classes.SubOneOne" 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"> SubOneOne </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubTwo
c582 [label=<<table title="gr.spinellis.subclass.classes.SubTwo" 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"> SubTwo </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubOne
c583 [label=<<table title="gr.spinellis.subclass.classes.SubOne" 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"> SubOne </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.Super
c584 [label=<<table title="gr.spinellis.subclass.classes.Super" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor="lemonchiffon"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Super </td></tr></table></td></tr></table>>];
//gr.spinellis.subclass.classes.SubOneTwo extends gr.spinellis.subclass.classes.SubOne
c583:p -> c580:p [arrowtail=empty,dir=back,weight=10];
//gr.spinellis.subclass.classes.SubOneOne extends gr.spinellis.subclass.classes.SubOne
c583:p -> c581:p [arrowtail=empty,dir=back,weight=10];
//gr.spinellis.subclass.classes.SubTwo extends gr.spinellis.subclass.classes.Super
c584:p -> c582:p [arrowtail=empty,dir=back,weight=10];
//gr.spinellis.subclass.classes.SubOne extends gr.spinellis.subclass.classes.Super
c584:p -> c583:p [arrowtail=empty,dir=back,weight=10];
node [fontname="Helvetica",fontcolor="black",fontsize=10,shape=plaintext];
nodesep=0.25;
ranksep=0.5;
// gr.spinellis.subclass.classes.SubOneTwo
c580 [label=<<table title="gr.spinellis.subclass.classes.SubOneTwo" 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"> SubOneTwo </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubOneOne
c581 [label=<<table title="gr.spinellis.subclass.classes.SubOneOne" 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"> SubOneOne </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubTwo
c582 [label=<<table title="gr.spinellis.subclass.classes.SubTwo" 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"> SubTwo </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubOne
c583 [label=<<table title="gr.spinellis.subclass.classes.SubOne" 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"> SubOne </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.Super
c584 [label=<<table title="gr.spinellis.subclass.classes.Super" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor="lemonchiffon"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Super </td></tr></table></td></tr></table>>];
// gr.spinellis.subclass.classes.SubOneTwo extends gr.spinellis.subclass.classes.SubOne
c583:p -> c580:p [arrowtail=empty,dir=back,weight=10];
// gr.spinellis.subclass.classes.SubOneOne extends gr.spinellis.subclass.classes.SubOne
c583:p -> c581:p [arrowtail=empty,dir=back,weight=10];
// gr.spinellis.subclass.classes.SubTwo extends gr.spinellis.subclass.classes.Super
c584:p -> c582:p [arrowtail=empty,dir=back,weight=10];
// gr.spinellis.subclass.classes.SubOne extends gr.spinellis.subclass.classes.Super
c584:p -> c583:p [arrowtail=empty,dir=back,weight=10];
}

View File

@ -22,11 +22,11 @@ c8 [label=<<table title="SetTopController" border="0" cellborder="1" cellspacing
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>>];
// 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"><i> OpenConnection() </i></td></tr><tr><td align="left" balign="left"><i> parseURL() </i></td></tr><tr><td align="left" balign="left"><i> setURL() </i></td></tr><tr><td align="left" balign="left"><i> toExternalForm() </i></td></tr></table></td></tr></table>>];
//SetTopController extends Controller
// SetTopController extends Controller
c5:p -> c8:p [arrowtail=empty,dir=back,weight=10];
//SetTopController extends EmbeddedAgent
// SetTopController extends EmbeddedAgent
c6:p -> c8:p [arrowtail=empty,dir=back,weight=10];
//SetTopController implements URLStreamHandler
// SetTopController implements URLStreamHandler
c10:p -> c8:p [arrowtail=empty,style=dashed,dir=back,weight=9];
// SetTopController navassoc PowerManager
c8:p -> c7:p [arrowhead=open,weight=1];

View File

@ -30,29 +30,29 @@ c26 [label=<<table title="ResponseFacade" border="0" cellborder="1" cellspacing=
c27 [label=<<table title="ServletResponse" 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"> ServletResponse </td></tr></table></td></tr></table>>];
// Response
c28 [label=<<table title="Response" 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"> Response </td></tr></table></td></tr></table>>];
//HttpResponseBase extends ResponseBase
// HttpResponseBase extends ResponseBase
c24:p -> c19:p [arrowtail=empty,dir=back,weight=10];
//HttpResponseBase implements HttpResponse
// HttpResponseBase implements HttpResponse
c23:p -> c19:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//HttpResponseBase implements HttpServletResponse
// HttpResponseBase implements HttpServletResponse
c25:p -> c19:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//HttpResponseWrapper extends ResponseWrapper
// HttpResponseWrapper extends ResponseWrapper
c22:p -> c20:p [arrowtail=empty,dir=back,weight=10];
//HttpResponseWrapper implements HttpResponse
// HttpResponseWrapper implements HttpResponse
c23:p -> c20:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//HttpResponseFacade extends ResponseFacade
// HttpResponseFacade extends ResponseFacade
c26:p -> c21:p [arrowtail=empty,dir=back,weight=10];
//HttpResponseFacade implements HttpServletResponse
// HttpResponseFacade implements HttpServletResponse
c25:p -> c21:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//ResponseWrapper implements Response
// ResponseWrapper implements Response
c28:p -> c22:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//HttpResponse implements Response
// HttpResponse implements Response
c28:p -> c23:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//ResponseBase implements Response
// ResponseBase implements Response
c28:p -> c24:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//ResponseBase implements ServletResponse
// ResponseBase implements ServletResponse
c27:p -> c24:p [arrowtail=empty,style=dashed,dir=back,weight=9];
//ResponseFacade implements ServletResponse
// ResponseFacade implements ServletResponse
c27:p -> c26:p [arrowtail=empty,style=dashed,dir=back,weight=9];
}

View File

@ -16,9 +16,9 @@ c30 [label=<<table title="Person" border="0" cellborder="1" cellspacing="0" cell
c31 [label=<<table title="Employee" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor=".13 .9 1"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Employee </td></tr></table></td></tr></table>>];
// Client
c32 [label=<<table title="Client" border="0" cellborder="1" cellspacing="0" cellpadding="2" port="p" bgcolor=".13 .9 1"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> Client </td></tr></table></td></tr></table>>];
//Employee extends Person
// Employee extends Person
c30:p -> c31:p [arrowtail=empty,dir=back,weight=10];
//Client extends Person
// Client extends Person
c30:p -> c32:p [arrowtail=empty,dir=back,weight=10];
}

View File

@ -30,25 +30,25 @@ c62 [label=<<table title="Bond" border="0" cellborder="1" cellspacing="0" cellpa
c63 [label=<<table title="CheckingAccount" 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"> CheckingAccount </td></tr></table></td></tr></table>>];
// SavingsAccount
c64 [label=<<table title="SavingsAccount" 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"> SavingsAccount </td></tr></table></td></tr></table>>];
//BankAccount extends Asset
// BankAccount extends Asset
c55:p -> c58:p [arrowtail=empty,dir=back,weight=10];
//BankAccount extends InsurableItem
// BankAccount extends InsurableItem
c57:p -> c58:p [arrowtail=empty,dir=back,weight=10];
//BankAccount extends InterestBearingItem
// BankAccount extends InterestBearingItem
c56:p -> c58:p [arrowtail=empty,dir=back,weight=10];
//RealEstate extends Asset
// RealEstate extends Asset
c55:p -> c59:p [arrowtail=empty,dir=back,weight=10];
//RealEstate extends InsurableItem
// RealEstate extends InsurableItem
c57:p -> c59:p [arrowtail=empty,dir=back,weight=10];
//Security extends Asset
// Security extends Asset
c55:p -> c60:p [arrowtail=empty,dir=back,weight=10];
//Stock extends Security
// Stock extends Security
c60:p -> c61:p [arrowtail=empty,dir=back,weight=10];
//Bond extends Security
// Bond extends Security
c60:p -> c62:p [arrowtail=empty,dir=back,weight=10];
//CheckingAccount extends BankAccount
// CheckingAccount extends BankAccount
c58:p -> c63:p [arrowtail=empty,dir=back,weight=10];
//SavingsAccount extends BankAccount
// SavingsAccount extends BankAccount
c58:p -> c64:p [arrowtail=empty,dir=back,weight=10];
}