<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.5.0_07" class="java.beans.XMLDecoder"> 
 <object class="com.horstmann.violet.ClassDiagramGraph"> 
  <void method="addNode"> 
   <object id="InterfaceNode0" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void act() // Called repeatedly
void die()
void pauseOrResume()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface&gt; Animate</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1300.0</double> 
     <double>270.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«abstract»
Ball</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1120.0</double> 
     <double>290.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode1" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>Shape getShape()
Color getColor()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Drawable</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>890.0</double> 
     <double>270.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode2" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void moveTo(Point2D point)
double distanceFrom(Point2D point)</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Relocatable</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>780.0</double> 
     <double>450.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>BallWorlds</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>170.0</double> 
     <double>340.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>BallWorldsFrame</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>140.0</double> 
     <double>460.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="NoteNode0" class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>UML class diagram
for BallWorlds
Execution starts here
in main</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>0.0</double> 
     <double>330.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode3" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>JFrame</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>0.0</double> 
     <double>460.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode4" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>WorldPanel</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>510.0</double> 
     <double>560.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode5" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>World</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>430.0</double> 
     <double>340.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode3" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void addBall(Ball ballToAdd)
void removeBall(Ball ballToRemove)
isInsideWorldX(Point2D point)
isInsideWorldY(Point2D point)
Point2D middleOfWorld()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
BallEnvironment</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1130.0</double> 
     <double>50.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>ButtonsPanel</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>590.0</double> 
     <double>230.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode7" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>BallButton</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1010.0</double> 
     <double>190.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>DudThatMoves</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1100.0</double> 
     <double>480.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Dud</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1120.0</double> 
     <double>380.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode10" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>JButton</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1010.0</double> 
     <double>30.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>JPanel</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>670.0</double> 
     <double>560.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Mover</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1120.0</double> 
     <double>570.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode13" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Bouncer</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1120.0</double> 
     <double>660.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode14" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Exploder</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1190.0</double> 
     <double>760.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode15" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Shrinker</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1050.0</double> 
     <double>760.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="NoteNode1" class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>A Ball must add itself
to its World, by using
the BallEnvironment
that the Ball is given
when the Ball is constructed</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1370.0</double> 
     <double>140.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>Students:  You implement the various types of Balls,with their different behaviors.  To do so, 
simply implement the interfaces that every Ball implements(per this UML class diagram).
All Balls implement these same interfaces, but in different ways.</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>540.0</double> 
     <double>790.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>Key:
solid line, triangle arrowhead:
      X extends Y (IS-A, inheritance)
 
dotted line, triangle arrowhead:
         X implements Y (IS-A, interfaces)
 
solid line, open arrowhead
with &quot;constructs&quot; on it:
        X CONSTRUCTS Y (HAS-A, constructs)
 
solid line, open arrowhead:
        X REFERENCES Y (HAS-A, references)
</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>20.0</double> 
     <double>570.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode4" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void run()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Runnable</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>330.0</double> 
     <double>540.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode5" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void mouseClicked(MouseEvent event)
void mousePressed(MouseEvent event)
void mouseReleased(MouseEvent event)
void mouseEntered(MouseEvent event)
void mouseExited(MouseEvent event)</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface» MouseListener</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>280.0</double> 
     <double>670.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode6" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void mouseMoved(MouseEvent event)
void mouseDragged(MouseEvent event)</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
MouseMotionListener</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>600.0</double> 
     <double>680.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode16" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>&lt;&lt;abstract&gt;&gt;
Bumper</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>730.0</double> 
     <double>370.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode17" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Color</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1410.0</double> 
     <double>600.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode18" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>JPanel</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>600.0</double> 
     <double>140.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="NoteNode2" class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>Future extension</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>590.0</double> 
     <double>410.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode7" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>void actionPerformed(ActionEvent event)</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface» ActionListener</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>720.0</double> 
     <double>30.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode8" class="com.horstmann.violet.InterfaceNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
BumperEnvironment</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>580.0</double> 
     <double>470.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode9" class="com.horstmann.violet.InterfaceNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Shape</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1410.0</double> 
     <double>510.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode19" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Ellipse2D.Double</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1380.0</double> 
     <double>410.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode10" class="com.horstmann.violet.InterfaceNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Point2D</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>930.0</double> 
     <double>590.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode20" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Point2D.Double</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>910.0</double> 
     <double>680.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode11" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>Ball nearestBall(Point2D point)
void drawBalls(
 Graphics2D graphics,
 Ball selectedBall)</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
CollectionOfBalls</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>130.0</double> 
     <double>120.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode21" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Color</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>410.0</double> 
     <double>40.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode22" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Rectangle</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>130.0</double> 
     <double>40.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode12" class="com.horstmann.violet.InterfaceNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Shape</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>280.0</double> 
     <double>40.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="ClassNode1"/> 
   <object idref="NoteNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode2"/> 
   <object idref="ClassNode3"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs</string> 
    </void> 
   </object> 
   <object idref="ClassNode1"/> 
   <object idref="ClassNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs 1..*</string> 
    </void> 
   </object> 
   <object idref="ClassNode1"/> 
   <object idref="ClassNode5"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode0"/> 
   <object idref="InterfaceNode1"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode0"/> 
   <object idref="InterfaceNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode0"/> 
   <object idref="InterfaceNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="VH"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="InterfaceNode3"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="startArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="startLabel"> 
     <string>0..*</string> 
    </void> 
   </object> 
   <object idref="ClassNode0"/> 
   <object idref="InterfaceNode3"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs 0..*</string> 
    </void> 
   </object> 
   <object idref="ClassNode7"/> 
   <object idref="ClassNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs</string> 
    </void> 
    <void property="startArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="ClassNode4"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs</string> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="ClassNode6"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs 6..*</string> 
    </void> 
   </object> 
   <object idref="ClassNode6"/> 
   <object idref="ClassNode7"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode7"/> 
   <object idref="ClassNode10"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode9"/> 
   <object idref="ClassNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode8"/> 
   <object idref="ClassNode9"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode15"/> 
   <object idref="ClassNode13"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode14"/> 
   <object idref="ClassNode13"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode13"/> 
   <object idref="ClassNode12"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode4"/> 
   <object idref="InterfaceNode4"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode4"/> 
   <object idref="InterfaceNode5"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode4"/> 
   <object idref="InterfaceNode6"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="ClassNode0"/> 
   <object idref="NoteNode1"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="InterfaceNode4"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="startLabel"> 
     <string>1..*</string> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="ClassNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode4"/> 
   <object idref="ClassNode11"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode16"/> 
   <object idref="InterfaceNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode12"/> 
   <object idref="ClassNode17"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode6"/> 
   <object idref="ClassNode18"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="InterfaceNode1"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="ClassNode16"/> 
   <object idref="NoteNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>constructs 0..*</string> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="ClassNode16"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode16"/> 
   <object idref="InterfaceNode1"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode7"/> 
   <object idref="InterfaceNode7"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="InterfaceNode8"/> 
   <object idref="NoteNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="InterfaceNode8"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode12"/> 
   <object idref="InterfaceNode9"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode19"/> 
   <object idref="InterfaceNode9"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode20"/> 
   <object idref="InterfaceNode10"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="InterfaceNode11"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="ClassNode21"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode5"/> 
   <object idref="InterfaceNode12"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode22"/> 
   <object idref="InterfaceNode12"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
    </void> 
   </object> 
   <object idref="ClassNode12"/> 
   <object idref="ClassNode8"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode9"/> 
   <object idref="InterfaceNode10"/> 
  </void> 
 </object> 
</java> 
