libisofs/doc/devel/UML/iso_tree.violet

879 lines
27 KiB
XML

<?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</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>1234.6589462905451</double>
<double>680.2741699796954</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.859316379054512</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode8" class="com.horstmann.violet.ClassNode">
<void property="name">
<void property="text">
<string>FileSourceRegistry</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>663.3494218736668</double>
<double>707.2510088513307</double>
</void>
</object>
</void>
<void method="addNode">
<object id="NoteNode2" class="com.horstmann.violet.NoteNode">
<void property="text">
<void property="text">
<string>A source that read its data from an arbitrary file
descritor. size must be know in advance.</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>888.4680374315352</double>
<double>726.8792924010775</double>
</void>
</object>
</void>
<void method="addNode">
<object id="NoteNode3" class="com.horstmann.violet.NoteNode">
<void property="text">
<void property="text">
<string>The idea of the registry is to keep track
of sources for the same file (to implement
cache inodes, for exampe)</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>796.4629867976516</double>
<double>789.9797974644656</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode9" class="com.horstmann.violet.ClassNode">
<void property="name">
<void property="text">
<string>TransformSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>465.9331463967205</double>
<double>595.4414715712101</double>
</void>
</object>
</void>
<void method="addNode">
<object id="InterfaceNode1" 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»
FileSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>685.9331463967205</double>
<double>410.4414715712108</double>
</void>
</object>
</void>
<void method="addNode">
<object id="NoteNode4" class="com.horstmann.violet.NoteNode">
<void property="text">
<void property="text">
<string>A Filter do a tranformation on a stream of data.
The main difference with TransformSources is that
a Filter can be applied to several sources.
NOTES:
- filter() method still to define
- A filter_changes_size() method can be useful
</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>350.5947306335493</double>
<double>803.951562474507</double>
</void>
</object>
</void>
<void method="addNode">
<object id="InterfaceNode2" class="com.horstmann.violet.InterfaceNode">
<void property="methods">
<void property="text">
<string>filter(in, out)</string>
</void>
</void>
<void property="name">
<void property="text">
<string>«interface»
Filter</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>274.0746933916357</double>
<double>694.5765090198104</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode10" class="com.horstmann.violet.ClassNode">
<void property="attributes">
<void property="text">
<string>size : off_t
block : uint32_t</string>
</void>
</void>
<void property="name">
<void property="text">
<string>PreviousImageSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>976.3688193543292</double>
<double>599.7669830819689</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode11" class="com.horstmann.violet.ClassNode">
<void property="attributes">
<void property="text">
<string>path : char*</string>
</void>
</void>
<void property="name">
<void property="text">
<string>LocalFileSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>674.5900006462128</double>
<double>602.9561901969712</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode12" class="com.horstmann.violet.ClassNode">
<void property="name">
<void property="text">
<string>FilterSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>417.08326112068517</double>
<double>711.364573775316</double>
</void>
</object>
</void>
<void method="addNode">
<object id="InterfaceNode3" 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 idref="InterfaceNode2"/>
</void>
<void property="name">
<string>Filters</string>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>260.0</double>
<double>660.0</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode13" class="com.horstmann.violet.ClassNode">
<void property="name">
<void property="text">
<string>CutOutSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>533.842712474619</double>
<double>706.7077195258237</double>
</void>
</object>
</void>
<void method="addNode">
<object id="NoteNode5" class="com.horstmann.violet.NoteNode">
<void property="text">
<void property="text">
<string>Reads the contents of local files, both
regular files, symlinks or block devices</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>836.7472580451137</double>
<double>493.8376618407349</double>
</void>
</object>
</void>
<void method="addNode">
<object id="ClassNode14" class="com.horstmann.violet.ClassNode">
<void property="attributes">
<void property="text">
<string>fd : int
size : off_t</string>
</void>
</void>
<void property="name">
<void property="text">
<string>FdSource</string>
</void>
</void>
</object>
<object class="java.awt.geom.Point2D$Double">
<void method="setLocation">
<double>846.3431457505072</double>
<double>599.1219330881966</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="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="ClassNode9"/>
<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="ClassNode11"/>
<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="ClassNode10"/>
<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>
</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="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="ClassNode9"/>
<object idref="InterfaceNode1"/>
</void>
<void method="connect">
<object class="com.horstmann.violet.NoteEdge"/>
<object idref="ClassNode8"/>
<object idref="NoteNode3"/>
</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="ClassNode11"/>
<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>
<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.NoteEdge"/>
<object idref="ClassNode14"/>
<object idref="NoteNode2"/>
</void>
<void method="connect">
<object class="com.horstmann.violet.NoteEdge"/>
<object idref="ClassNode11"/>
<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>
</object>
<object idref="ClassNode13"/>
<object idref="ClassNode9"/>
</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="ClassNode9"/>
</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.NoteEdge"/>
<object idref="InterfaceNode2"/>
<object idref="NoteNode4"/>
</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="InterfaceNode3"/>
</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="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>
</object>
</java>