#!/usr/local/bin/dot
#
# Class diagram 
# Generated by UMLGraph version R5_7_2-10-g442559 (http://www.umlgraph.org/)
#

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,margin=0,width=0,height=0];
nodesep=0.25;
ranksep=0.5;
// A
c66 [label=<<table title="A" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> A </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  first : B </td></tr><tr><td align="left" balign="left">  second : B </td></tr><tr><td align="left" balign="left">  third : C </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>>];
// B
c67 [label=<<table title="B" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> B </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">  doSomething(b : B, c : C) : A </td></tr></table></td></tr></table>>];
// C
c68 [label=<<table title="C" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> C </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  collectionOfA : List&lt;A&gt; </td></tr><tr><td align="left" balign="left">  collectionOfB : ArrayList&lt;B&gt; </td></tr><tr><td align="left" balign="left">  mapOfD : Map&lt;String, D&gt; </td></tr><tr><td align="left" balign="left">  childs : C[] </td></tr><tr><td align="left" balign="left">  anOpaqueList : List&lt;&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></table>>];
// MyFunnyList<T, V>
c69 [label=<<table title="MyFunnyList" border="0" cellborder="1" cellspacing="0" cellpadding="2"><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="center" balign="center"> MyFunnyList&lt;T, V&gt; </td></tr></table></td></tr><tr><td><table border="0" cellspacing="0" cellpadding="1"><tr><td align="left" balign="left">  myField : V </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>>];
// MyList
c70 [label=<<table title="MyList" border="0" cellborder="1" cellspacing="0" cellpadding="2"><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"><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>
c72 -> c69 [arrowtail=empty,dir=back,weight=10];
// MyList extends MyFunnyList<A, B>
c69 -> c70 [arrowtail=empty,dir=back,weight=10];
// A has B
c66 -> c67 [arrowhead=none,arrowtail=ediamond,dir=back,weight=4];
// A has C
c66 -> c68 [arrowhead=none,arrowtail=ediamond,dir=back,weight=4];
// C navassoc B
c68 -> c67 [arrowhead=open,weight=1,headlabel="*"];
// C navassoc D
c68 -> c71 [arrowhead=open,weight=1,headlabel="*"];
// C navassoc C
c68 -> c68 [arrowhead=open,weight=1,headlabel="*"];
// C navassoc java.util.List<E>
c68 -> c73 [arrowhead=open,weight=1];
// D navassoc MyList
c71 -> c70 [arrowhead=open,weight=1];
// B depend A
c67 -> c66 [arrowhead=open,style=dashed,weight=0];
// java.util.List<E>
c73 [label=<<table title="java.util.List" border="0" cellborder="1" cellspacing="0" cellpadding="2" 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"><i>  size() : int </i></td></tr><tr><td align="left" balign="left"><i>  isEmpty() : boolean </i></td></tr><tr><td align="left" balign="left"><i>  contains(arg0 : Object) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  iterator() : Iterator&lt;E&gt; </i></td></tr><tr><td align="left" balign="left"><i>  toArray() : Object[] </i></td></tr><tr><td align="left" balign="left"><i>  toArray(arg0 : T[]) : T[] </i></td></tr><tr><td align="left" balign="left"><i>  add(arg0 : E) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  remove(arg0 : Object) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  containsAll(arg0 : Collection&lt;?&gt;) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  addAll(arg0 : Collection&lt;?&gt;) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  addAll(arg0 : int, arg1 : Collection&lt;?&gt;) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  removeAll(arg0 : Collection&lt;?&gt;) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  retainAll(arg0 : Collection&lt;?&gt;) : boolean </i></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"><i>  clear() </i></td></tr><tr><td align="left" balign="left"><i>  equals(arg0 : Object) : boolean </i></td></tr><tr><td align="left" balign="left"><i>  hashCode() : int </i></td></tr><tr><td align="left" balign="left"><i>  get(arg0 : int) : E </i></td></tr><tr><td align="left" balign="left"><i>  set(arg0 : int, arg1 : E) : E </i></td></tr><tr><td align="left" balign="left"><i>  add(arg0 : int, arg1 : E) </i></td></tr><tr><td align="left" balign="left"><i>  remove(arg0 : int) : E </i></td></tr><tr><td align="left" balign="left"><i>  indexOf(arg0 : Object) : int </i></td></tr><tr><td align="left" balign="left"><i>  lastIndexOf(arg0 : Object) : int </i></td></tr><tr><td align="left" balign="left"><i>  listIterator() : ListIterator&lt;E&gt; </i></td></tr><tr><td align="left" balign="left"><i>  listIterator(arg0 : int) : ListIterator&lt;E&gt; </i></td></tr><tr><td align="left" balign="left"><i>  subList(arg0 : int, arg1 : int) : List&lt;E&gt; </i></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"];
// java.util.ArrayList<E>
c72 [label=<<table title="java.util.ArrayList" border="0" cellborder="1" cellspacing="0" cellpadding="2" 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"];
}

