<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.6.0" class="java.beans.XMLDecoder"> 
 <object class="com.horstmann.violet.ClassDiagramGraph"> 
  <void method="addNode"> 
   <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> 
    <void property="attributes"> 
     <void property="text"> 
      <string>volume_id : char*
publisher_id : char*
data_preparer_id : char*
system_id : char*
application_id : char*
copyright_file_id : char*
abstract_file_id : char*
biblio_file_id : char*</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>Volume</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1160.4799402311673</double> 
     <double>240.649943764645</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> 
    <void property="attributes"> 
     <void property="text"> 
      <string>sort_weight : int
block : uint32_t</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>File</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>687.5479565719912</double> 
     <double>269.2931470368318</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> 
    <void property="attributes"> 
     <void property="text"> 
      <string>name : char *
attribs : struct stat
hidden : enum</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>TreeNode</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>706.83671056434</double> 
     <double>108.4726745515399</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode3" class="com.horstmann.violet.ClassNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>add(XXX)
remove(Node)
children()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>Directory</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>986.1687535943008</double> 
     <double>267.29314703683184</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode4" class="com.horstmann.violet.ClassNode"> 
    <void property="attributes"> 
     <void property="text"> 
      <string>dest : char*</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>Symlink</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>571.9364350336367</double> 
     <double>273.31078127658077</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode5" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Special</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>813.0651280884073</double> 
     <double>272.20749521231266</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> 
    <void property="attributes"> 
     <void property="text"> 
      <string>name : char*</string> 
     </void> 
    </void> 
    <void property="methods"> 
     <void property="text"> 
      <string>&lt;&lt;static&gt;&gt;new(id)
&lt;&lt;static&gt;&gt;read(src, opts)
create()
grow()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>Image</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1149.1980515339465</double> 
     <double>455.5218613006981</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="NoteNode0" class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>In addition to the dest as a path, it could
be a good idea to have a ref to tree node.
That way we can compute the dest on creation
time, and thus links to files on image are also valid
after moving or renaming those files</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>322.02220861890066</double> 
     <double>362.2044136147912</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="NoteNode1" class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>Image is a context for the creation of images. Its &quot;static&quot;
methods, new() and read() are used to create a new
image context, either from scratch or from an existing
image (for example, a ms disc). The methods create() and
grow() return an BurnSource suitable for libburn. 
create() writes a full image, grow() only add to the image
the new files, thus it is suitable for a new session
</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1212.7956394939486</double> 
     <double>697.0920982847697</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode7" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>Ecma119Source</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1423.5617211564486</double> 
     <double>483.61244144432396</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object class="com.horstmann.violet.PackageNode"> 
    <void method="addChild"> 
     <object id="InterfaceNode0" class="com.horstmann.violet.InterfaceNode"> 
      <void property="name"> 
       <void property="text"> 
        <string>«interface»
BurnSource</string> 
       </void> 
      </void> 
     </object> 
    </void> 
    <void property="name"> 
     <string>Libburn</string> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1420.0</double> 
     <double>280.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object idref="InterfaceNode0"/> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1431.4906533445824</double> 
     <double>311.35760744838467</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>Class diagram for the public tree. Note that getters and setters are not shown,
to improve readability. Note also that not all the attributes will have public getters
or/and setters.
El-Torito related information is shown in another diagram.
We don&apos;t show the several functions in Dir to manage the tree.</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>290.59037712396525</double> 
     <double>9.859316379054544</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode1" class="com.horstmann.violet.InterfaceNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
DataSource</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1192.781692587207</double> 
     <double>608.8954677283948</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object class="com.horstmann.violet.PackageNode"> 
    <void method="addChild"> 
     <object id="InterfaceNode2" class="com.horstmann.violet.InterfaceNode"> 
      <void property="name"> 
       <void property="text"> 
        <string>«interface»
Filters</string> 
       </void> 
      </void> 
     </object> 
    </void> 
    <void property="name"> 
     <string>filters</string> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>260.0</double> 
     <double>710.0</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object idref="InterfaceNode2"/> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>265.45434264405947</double> 
     <double>743.9994422711634</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>TransformStream</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>486.9335577265969</double> 
     <double>640.636302316303</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>CutOutStream</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>555.9916340674516</double> 
     <double>750.220757440409</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode3" class="com.horstmann.violet.InterfaceNode"> 
    <void property="methods"> 
     <void property="text"> 
      <string>get_size()
read()
open()
close()
is_repeatable()</string> 
     </void> 
    </void> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
Stream</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>688.5487814157467</double> 
     <double>437.25152600545294</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode10" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>FdStream</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>680.6673668471356</double> 
     <double>637.245696021424</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>FileStream</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>828.9404615480411</double> 
     <double>642.40096597045</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>FilteredStream</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>428.449880813367</double> 
     <double>747.5389646099015</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="InterfaceNode4" class="com.horstmann.violet.InterfaceNode"> 
    <void property="name"> 
     <void property="text"> 
      <string>«interface»
SourceFile</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>1000.6667341519202</double> 
     <double>639.0812755928229</double> 
    </void> 
   </object> 
  </void> 
  <void method="addNode"> 
   <object id="NoteNode2" class="com.horstmann.violet.NoteNode"> 
    <void property="text"> 
     <void property="text"> 
      <string>For files, we need to know whethe they come
from a previous session. That&apos;s the purpose of
the block field</string> 
     </void> 
    </void> 
   </object> 
   <object class="java.awt.geom.Point2D$Double"> 
    <void method="setLocation"> 
     <double>818.829652614022</double> 
     <double>414.36457377531684</double> 
    </void> 
   </object> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>1 volume</string> 
    </void> 
    <void property="startArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> 
    </void> 
   </object> 
   <object idref="ClassNode6"/> 
   <object idref="ClassNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="ClassNode4"/> 
   <object idref="NoteNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="ClassNode6"/> 
   <object idref="NoteNode1"/> 
  </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> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode7"/> 
   <object idref="InterfaceNode0"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
    <void property="middleLabel"> 
     <string>{create}</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="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>0..1</string> 
    </void> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode6"/> 
   <object idref="InterfaceNode1"/> 
  </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="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>* children</string> 
    </void> 
    <void property="startArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> 
    </void> 
   </object> 
   <object idref="ClassNode3"/> 
   <object idref="ClassNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>1 root</string> 
    </void> 
    <void property="startArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> 
    </void> 
   </object> 
   <object idref="ClassNode0"/> 
   <object idref="ClassNode3"/> 
  </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="ClassNode4"/> 
   <object idref="ClassNode2"/> 
  </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="ClassNode1"/> 
   <object idref="ClassNode2"/> 
  </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="ClassNode5"/> 
   <object idref="ClassNode2"/> 
  </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="ClassNode3"/> 
   <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>1 parent</string> 
    </void> 
   </object> 
   <object idref="ClassNode2"/> 
   <object idref="ClassNode3"/> 
  </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> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode8"/> 
   <object idref="InterfaceNode3"/> 
  </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> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode11"/> 
   <object idref="InterfaceNode3"/> 
  </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="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>1</string> 
    </void> 
    <void property="startArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> 
    </void> 
   </object> 
   <object idref="ClassNode8"/> 
   <object idref="InterfaceNode3"/> 
  </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> 
    <void property="lineStyle"> 
     <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> 
    </void> 
   </object> 
   <object idref="ClassNode10"/> 
   <object idref="InterfaceNode3"/> 
  </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="ClassNode9"/> 
   <object idref="ClassNode8"/> 
  </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="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode12"/> 
   <object idref="InterfaceNode2"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
   </object> 
   <object idref="ClassNode11"/> 
   <object idref="InterfaceNode4"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
    <void property="bentStyle"> 
     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
    </void> 
    <void property="endArrowHead"> 
     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
    </void> 
    <void property="endLabel"> 
     <string>1 src</string> 
    </void> 
   </object> 
   <object idref="ClassNode1"/> 
   <object idref="InterfaceNode3"/> 
  </void> 
  <void method="connect"> 
   <object class="com.horstmann.violet.NoteEdge"/> 
   <object idref="ClassNode1"/> 
   <object idref="NoteNode2"/> 
  </void> 
 </object> 
</java>