<?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="InterfaceNode0" class="com.horstmann.violet.InterfaceNode"> <void property="methods"> <void property="text"> <string>get_root() get_from_path(char *)</string> </void> </void> <void property="name"> <void property="text"> <string>«interface» Filesystem</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>159.04005306497305</double> <double>489.4913761627291</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>MountedFilesytem</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>56.38849919058573</double> <double>630.9884605487425</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>IsoImage</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>258.8562868808994</double> <double>766.3563832139356</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode1" class="com.horstmann.violet.InterfaceNode"> <void property="methods"> <void property="text"> <string>lstat() read() close() open() readdir()</string> </void> </void> <void property="name"> <void property="text"> <string>«interface» SourceFile</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>481.55979910778467</double> <double>464.84194569982117</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>TarFile</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>176.58261638364775</double> <double>701.0593878047844</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode2" class="com.horstmann.violet.InterfaceNode"> <void property="methods"> <void property="text"> <string>read() size() open() close()</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>779.894860994415</double> <double>340.36024540554786</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode3" 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>907.9433913981195</double> <double>505.6600343909271</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode4" 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>646.2536512193697</double> <double>514.5953286599063</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode5" 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>774.6238447615127</double> <double>513.9203093177954</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode3" class="com.horstmann.violet.InterfaceNode"> <void property="methods"> <void property="text"> <string>create_file() create_symlink() create_dir()</string> </void> </void> <void property="name"> <void property="text"> <string>«interface» TreeNodeBuilder</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>469.51180397870456</double> <double>119.92057094444797</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>TreeNode</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>777.5164467644091</double> <double>137.7586776694888</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode7" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>File</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>776.3272396494064</double> <double>235.11044131455145</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>Dir</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>899.7797731623193</double> <double>242.40651557378732</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>Symlink</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>658.5957352641371</double> <double>237.4888555445569</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode4" class="com.horstmann.violet.InterfaceNode"> <void property="name"> <void property="text"> <string>«interface» FileBuilder</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>68.74900622278733</double> <double>236.29964842955417</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode5" class="com.horstmann.violet.InterfaceNode"> <void property="name"> <void property="text"> <string>«interface» DirBuilder</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>190.04813195306485</double> <double>236.2996484295542</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode6" class="com.horstmann.violet.InterfaceNode"> <void property="name"> <void property="text"> <string>«interface» SymlinkBuilder</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>304.21201499332614</double> <double>236.29964842955417</double> </void> </object> </void> <void method="addNode"> <object id="NoteNode0" class="com.horstmann.violet.NoteNode"> <void property="text"> <void property="text"> <string>POSIX inspired interface to files on different filesystems. open/close act as a opendir/closedir if the file is a dir, I think we don't need different function to open a dir.</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>154.8805850420814</double> <double>333.9382491299707</double> </void> </object> </void> <void method="addNode"> <object id="NoteNode1" class="com.horstmann.violet.NoteNode"> <void property="text"> <void property="text"> <string>"Sources" for file contents</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>587.0127806828101</double> <double>358.755499461917</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode10" 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>845.6997102991108</double> <double>605.2834046956852</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>FilterStream</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>721.2489168102784</double> <double>605.2834046956852</double> </void> </object> </void> <void method="addNode"> <object id="InterfaceNode7" class="com.horstmann.violet.InterfaceNode"> <void property="name"> <void property="text"> <string>«interface» Filter</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>715.5920625607861</double> <double>705.6925676241749</double> </void> </object> </void> <void method="addNode"> <object id="NoteNode2" class="com.horstmann.violet.NoteNode"> <void property="text"> <void property="text"> <string>Used for arbitray streams, not related to filesystem high-level idea. Also used for files like fifos, that can't be added directly as regulat files via de Builder, because its size is unknown. The need to be added as new_files on image</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>906.5108934811542</double> <double>328.0975464705584</double> </void> </object> </void> <void method="addNode"> <object id="NoteNode3" class="com.horstmann.violet.NoteNode"> <void property="text"> <void property="text"> <string>Create the user-specified TreeNode from the user-specified source. If the source type differs the TreeNode type the use wants to create, it makes the needed conversion, if possible. Each builder implementation can do different conversions.</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>654.7808793787427</double> <double>20.610173055266337</double> </void> </object> </void> <void method="addNode"> <object id="NoteNode4" class="com.horstmann.violet.NoteNode"> <void property="text"> <void property="text"> <string>Together with the SourceFile encapsulates the access to a given filesystem and abstracts it to a POSIX interface.</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>20.610173055266422</double> <double>403.050865276332</double> </void> </object> </void> <void method="addNode"> <object id="NoteNode5" class="com.horstmann.violet.NoteNode"> <void property="text"> <void property="text"> <string>The TreeNodeBuilder can be created with the combination of different interfaces for each factory method</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>149.90663761154804</double> <double>57.982756057296896</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>MountedSrc</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>373.3523804664971</double> <double>634.9818895055197</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode13" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>TarSrc</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>479.4183976444791</double> <double>695.7930726875627</double> </void> </object> </void> <void method="addNode"> <object id="ClassNode14" class="com.horstmann.violet.ClassNode"> <void property="name"> <void property="text"> <string>IsoSrc</string> </void> </void> </object> <object class="java.awt.geom.Point2D$Double"> <void method="setLocation"> <double>578.4133470105959</double> <double>773.574818618083</double> </void> </object> </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> </object> <object idref="InterfaceNode0"/> <object idref="InterfaceNode1"/> </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="ClassNode4"/> <object idref="InterfaceNode2"/> </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="ClassNode3"/> <object idref="InterfaceNode2"/> </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="ClassNode0"/> <object idref="InterfaceNode0"/> </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="ClassNode2"/> <object idref="InterfaceNode0"/> </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="ClassNode1"/> <object idref="InterfaceNode0"/> </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="ClassNode4"/> <object idref="InterfaceNode1"/> </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="InterfaceNode3"/> <object idref="ClassNode6"/> </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="ClassNode6"/> </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="ClassNode7"/> <object idref="ClassNode6"/> </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="ClassNode8"/> <object idref="ClassNode6"/> </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="ClassNode7"/> <object idref="InterfaceNode2"/> </void> <void method="connect"> <object class="com.horstmann.violet.ClassRelationshipEdge"> <void property="bentStyle"> <object class="com.horstmann.violet.BentStyle" field="HV"/> </void> <void property="endArrowHead"> <object class="com.horstmann.violet.ArrowHead" field="V"/> </void> <void property="startArrowHead"> <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> </void> </object> <object idref="InterfaceNode3"/> <object idref="InterfaceNode6"/> </void> <void method="connect"> <object class="com.horstmann.violet.ClassRelationshipEdge"> <void property="bentStyle"> <object class="com.horstmann.violet.BentStyle" field="HV"/> </void> <void property="endArrowHead"> <object class="com.horstmann.violet.ArrowHead" field="V"/> </void> <void property="startArrowHead"> <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> </void> </object> <object idref="InterfaceNode3"/> <object idref="InterfaceNode5"/> </void> <void method="connect"> <object class="com.horstmann.violet.ClassRelationshipEdge"> <void property="bentStyle"> <object class="com.horstmann.violet.BentStyle" field="HV"/> </void> <void property="endArrowHead"> <object class="com.horstmann.violet.ArrowHead" field="V"/> </void> <void property="startArrowHead"> <object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/> </void> </object> <object idref="InterfaceNode3"/> <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="lineStyle"> <object class="com.horstmann.violet.LineStyle" field="DOTTED"/> </void> </object> <object idref="InterfaceNode3"/> <object idref="InterfaceNode1"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode1"/> <object idref="NoteNode0"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode2"/> <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> </object> <object idref="ClassNode11"/> <object idref="ClassNode5"/> </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="ClassNode10"/> <object idref="ClassNode5"/> </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="InterfaceNode7"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="ClassNode3"/> <object idref="NoteNode2"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode3"/> <object idref="NoteNode3"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode0"/> <object idref="NoteNode4"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode4"/> <object idref="NoteNode5"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode5"/> <object idref="NoteNode5"/> </void> <void method="connect"> <object class="com.horstmann.violet.NoteEdge"/> <object idref="InterfaceNode6"/> <object idref="NoteNode5"/> </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="ClassNode5"/> <object idref="InterfaceNode2"/> </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="ClassNode12"/> <object idref="InterfaceNode1"/> </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="ClassNode13"/> <object idref="InterfaceNode1"/> </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="ClassNode14"/> <object idref="InterfaceNode1"/> </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="ClassNode0"/> </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="ClassNode13"/> <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> </object> <object idref="ClassNode14"/> <object idref="ClassNode1"/> </void> </object> </java>