<?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><<static>>new(id) <<static>>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 "static" 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'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'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>