Effective base of libisoburn+xorriso 0.1.1 2008.02.22.124732
This commit is contained in:
0
libisofs/branches/thomas/doc/devel/1. Overview
Normal file
0
libisofs/branches/thomas/doc/devel/1. Overview
Normal file
193
libisofs/branches/thomas/doc/devel/2. Features
Normal file
193
libisofs/branches/thomas/doc/devel/2. Features
Normal file
@ -0,0 +1,193 @@
|
||||
FEATURES
|
||||
========
|
||||
|
||||
Contents:
|
||||
|
||||
2.0 Operations on image tree
|
||||
2.1 ECMA-119
|
||||
2.2 Rock Ridge
|
||||
2.3 Joliet
|
||||
2.4 El-Torito
|
||||
2.5 UDF
|
||||
2.6 HFS/HFS+
|
||||
2.7 Others
|
||||
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.0 Operations on image tree
|
||||
-----------------------------
|
||||
|
||||
Basic:
|
||||
- We HAVE TO Support addition of directories
|
||||
- From filesystem
|
||||
- From filesystem recursively
|
||||
- New on image
|
||||
- We HAVE TO support addition of files
|
||||
- From local filesystem
|
||||
- From previous/ms images
|
||||
- We HAVE TO support addition of other POSIX file types
|
||||
- From filesystem
|
||||
- New on image
|
||||
- Types: symlinks, block/char devices, fifos, sockets...
|
||||
- We HAVE TO support modification of file names on image
|
||||
- We HAVE TO support modification of POSIX attributes:
|
||||
- Uid/Gid
|
||||
- Permissions (we DON'T HAVE TO support full mode modification,
|
||||
as we don't want a dir to be changed to a reg file!!)
|
||||
- Timestamps
|
||||
- We HAVE TO support deletion of nodes.
|
||||
- We HAVE TO support iteration of directory tree.
|
||||
- We WANT TO support direct getting (without iteration) of the number of
|
||||
nodes in a directory.
|
||||
|
||||
Extras:
|
||||
- We WANT TO support on-the-fly modification of file contents, to
|
||||
allow things like compression and encryption.
|
||||
|
||||
Notes: many operations will need RR extensions to be actually reflected on
|
||||
the image.
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.1 ECMA-119
|
||||
------------
|
||||
|
||||
Support for ECMA-119 (ISO-9660) specification.
|
||||
|
||||
2.1.1 Creation
|
||||
--------------
|
||||
|
||||
We HAVE TO support creation of new images.
|
||||
|
||||
General:
|
||||
- We HAVE TO support single volume images
|
||||
- We DON'T NEED TO support multiple volume images.
|
||||
It seems multiple volume images are not used.
|
||||
- We HAVE TO support bootable volumes (see 2.4 in this doc)
|
||||
Conformance:
|
||||
- We HAVE TO support Level 1 restrictions (ECMA-119 10.1)
|
||||
- We HAVE TO support Level 2 restrictions (ECMA-119 10.2)
|
||||
Single Section files have a theoric size limit of 4GB (data length
|
||||
is a 32-bit number, see ECMA-119 9.1.4). However I think I have
|
||||
read that only files up to 2GB are supported.
|
||||
- We MAY support full Level 3 (ECMA-119 10.3)
|
||||
Multiple file sections are useful to support files higher than
|
||||
level 2 limit. However, it seems it's a feature not supported in
|
||||
most O.S. nowadays, so it's not very useful.
|
||||
- We DON'T WANT TO support files recording in interleaved mode
|
||||
(ECMA-119 6.4.3)
|
||||
It seems a feature that it's not used.
|
||||
- We DON'T WANT TO support associated files (ECMA-119 6.5.4)
|
||||
What is that? Is it used?
|
||||
- We DON'T WANT TO support Volume Partitions (ECMA-119 8.6)
|
||||
What is that? Is it used?
|
||||
- We DON'T WANT TO support extended attribute records (ECMA-119 9.5)
|
||||
It seems an unused feature. RR is a better alternative.
|
||||
- We DON'T NEED TO support file versions other than 1.
|
||||
Restrictions:
|
||||
- We HAVE TO provide a way to relax iso restrictions related to
|
||||
filenames, allowing:
|
||||
- Higher filename length, up to 37 chars (ECMA-119 7.5.1/7.6.3)
|
||||
- Omit version number (ECMA-119 7.5.1)
|
||||
- Directory hierarchy deeper than 8 levels / 255 path length
|
||||
(ECMA-119 6.8.2.1)
|
||||
- More characters in filenames, not only d-characters
|
||||
|
||||
|
||||
2.2.2 Reading
|
||||
-------------
|
||||
|
||||
General
|
||||
- We HAVE TO support the reading of iso images
|
||||
- We DON'T NEED TO support reading of features we don't support in
|
||||
creation (see 2.2.1 above)
|
||||
- We HAVE TO support reading arbitray file contents inside image
|
||||
|
||||
2.2.3 Modification/growing
|
||||
--------------------------
|
||||
|
||||
General
|
||||
- We HAVE TO support creation of new images from the contents of
|
||||
an existing image
|
||||
- We HAVE TO support multissession images
|
||||
- We HAVE TO support growing of images
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.2 Rock Ridge
|
||||
--------------
|
||||
|
||||
- We HAVE TO support ALL Rock Ridge features, with these exceptions:
|
||||
- We DON'T NEED TO support SF System User Entry (RRIP 4.1.7), used to
|
||||
encode sparse files.
|
||||
- We MIGHT support BACKUP timestamp (RRIP 4.1.6)
|
||||
- We HAVE TO support any charset in RR filenames, and not only POSIX portable
|
||||
filename character set (RRIP 3.4.1). Namely, UTF-8 SHOULD BE the default for
|
||||
RR filenames.
|
||||
- We MIGHT support Linux specific ZF extension, to allow transparent
|
||||
compression.
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.3 Joliet
|
||||
----------
|
||||
|
||||
- We HAVE TO support ALL Joliet features, with these exceptions:
|
||||
- We DON'T KNOW what to do with UCS-2 conformance level 1 and 2 (scape
|
||||
sequences '%\@' and '%\C'). What's this???????
|
||||
- We DON'T KNOW what to do with CD-XA extensions.
|
||||
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.4 El-Torito
|
||||
-------------
|
||||
|
||||
- We HAVE TO El-Torito standard with a single boot image.
|
||||
- We MAY support multiple boot images and boot entry selection.
|
||||
- El Torito standard is not very clear about how to do that.
|
||||
- We HAVE TO support both emulation and not emulation mode.
|
||||
- We HAVE TO support 80x86 platform. We MAY support Power PC and Mac platforms.
|
||||
- We HAVE TO provide improved support for isolinux boot images, namely patching
|
||||
features.
|
||||
- We HAVE TO support El-Torito in ms images.
|
||||
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.5 UDF
|
||||
-------
|
||||
|
||||
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.6 HFS/HFS+
|
||||
------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
===============================================================================
|
||||
|
||||
2.7 Others
|
||||
----------
|
||||
|
||||
- We HAVE TO support sorting of file contents on image
|
||||
- We HAVE TO support inode caching to prevent the same file to be written
|
||||
several times into the image
|
||||
- We DON'T NEED TO support TRANS.TBL files
|
||||
- We DON'T NEED TO support padding of images
|
||||
- Padding should be part of the burning process
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
193
libisofs/branches/thomas/doc/devel/3. Use Cases
Normal file
193
libisofs/branches/thomas/doc/devel/3. Use Cases
Normal file
@ -0,0 +1,193 @@
|
||||
USE CASES FOR NG LIBISOFS
|
||||
=========================
|
||||
|
||||
3.1 General Operations
|
||||
======================
|
||||
|
||||
3.1.1 Creation of a new image
|
||||
-----------------------------
|
||||
|
||||
Desc: Creation of a new ISO image from files on the local filesystem
|
||||
Phases:
|
||||
- User creates a new image context
|
||||
- User get the root (empty) of the image
|
||||
- User adds files to the image root (see 3.2.)
|
||||
- User sets the options for the the new image (extension to use...)
|
||||
- User gets a burn_source to write the image.
|
||||
- The burn_source can be used by libburn to write the new image.
|
||||
|
||||
3.1.2 Image growing (multisession)
|
||||
----------------------------------
|
||||
|
||||
Desc: An existing image can be grown with new files. New content is added
|
||||
incrementally. Suitable for multisession. Growing support for
|
||||
overwritteable media.
|
||||
Phases:
|
||||
- Uses reads an existing image to get the image context.
|
||||
- User get the root of the image
|
||||
- User modifies the image tree (see 3.2.)
|
||||
- User sets the options for the the new image (extension to use...)
|
||||
A required option will be the nwa for the image.
|
||||
Optionally it can pass a pointer to a 64K buffer, that will be filled
|
||||
with suitable volume descriptors to be used with overwrieable media.
|
||||
- User gets a burn_source to write the image.
|
||||
- The burn_source can be used by libburn to write an image that should be
|
||||
appended to the previous image.
|
||||
|
||||
|
||||
3.1.3 Image modification
|
||||
------------------------
|
||||
|
||||
Desc: Creation of a new image from the contents of a previous image.
|
||||
Phases:
|
||||
- Uses reads an existing image to get the image context.
|
||||
- User get the root of the image
|
||||
- User modifies the image tree (see 3.2.)
|
||||
- User sets the options for the the new image (extension to use...)
|
||||
- User gets a burn_source to write the image.
|
||||
- The burn_source can be used by libburn to write the image to another
|
||||
device or file.
|
||||
|
||||
3.2 Tree operations
|
||||
===================
|
||||
|
||||
3.2.1 Addition of contents
|
||||
--------------------------
|
||||
|
||||
All addition operations take a parent dir. The functions check that the
|
||||
node name is unique among all children. Image context options determine
|
||||
what to do if a file with such name already exist.
|
||||
|
||||
3.2.1.1 Directories
|
||||
--------------------
|
||||
- Creation of new directories in image, given a parent dir. and a name.
|
||||
Attributes are initialized to default values
|
||||
- Addition of a dir from the filesystem, given a parent.
|
||||
Dir contents are not added. Name and other attributes taken from
|
||||
the dir on filesystem
|
||||
- Recursive addition of a dir, given a parent. Directory contents are
|
||||
recursivelly added to image.
|
||||
|
||||
3.2.1.2 Regular files
|
||||
----------------------
|
||||
- Addition of a local filesystem file. Name, attributes and contents to
|
||||
be written taken from the filesystem file.
|
||||
- Addition of files from the previous image. Files are automatically
|
||||
added to the tree when the image is read. Name and attrbs taken from
|
||||
previous image. When the image has no RR extensions, unavailable atts
|
||||
are initialized to default values. The contents are only written to
|
||||
img if we choose image modification.
|
||||
- Addition of filtered files. Name and atts taken from the local
|
||||
filesystem. A filter (see 3.3) is applied to the file contents before
|
||||
written to image.
|
||||
- Addition of splitted files. Like local filesystem files, but the file
|
||||
is splitted in several files on a given size. Suitable for big (> 2GB)
|
||||
files. Name of the splitted files automatically generated.
|
||||
|
||||
3.2.1.3 Symbolic links
|
||||
----------------------
|
||||
|
||||
Simbolic links are only written to image if RR extensions are enabled.
|
||||
|
||||
- Addition of a simbolic link from local filesystem. Name, atts and
|
||||
dest of a path are taken from the simbolic link.
|
||||
- Addition of new link on image to a path. Name and dest specified,
|
||||
the destination is specified as a path. Attributes initialized to
|
||||
default values.
|
||||
- Addition of new link on image to another node. Name and dest
|
||||
specified, the dest is set to a node previously added to image.
|
||||
When written, the destination path is computed as the relative path
|
||||
from the link to the destination node. Attributes initialized to
|
||||
default values.
|
||||
|
||||
3.2.1.4 Special files (block devices, fifos...)
|
||||
-----------------------------------------------
|
||||
|
||||
Special files are only written to image if RR extensions are enabled.
|
||||
|
||||
- Addition of special files from filesystem.
|
||||
- Creation of new special files on image.
|
||||
|
||||
|
||||
3.2.2 Modification of contents
|
||||
------------------------------
|
||||
|
||||
3.2.2.1 Deletion of nodes
|
||||
-------------------------
|
||||
|
||||
- Any node can be deleted. When a dir is remove, all its contents
|
||||
are also removed.
|
||||
|
||||
3.2.2.2 Move
|
||||
------------
|
||||
|
||||
- Any node can be move to another dir..
|
||||
|
||||
3.2.2.3 Rename
|
||||
--------------
|
||||
|
||||
- You can change the name of any node
|
||||
|
||||
3.2.2.4 Change of POSIX attributes
|
||||
----------------------------------
|
||||
|
||||
- Following POSIX atts can be changed: owner (uid/gid), permissions,
|
||||
timestamps.
|
||||
|
||||
3.2.3 Bootable information
|
||||
--------------------------
|
||||
|
||||
- Addition of a boot image to a volume.
|
||||
- In most cases, the catalog and the boot image itself is added to the
|
||||
iso tree.
|
||||
- Alternatively, user can select to add a hidden images, i.e., images
|
||||
that don't appear in the iso tree.
|
||||
- Modification of boot image attributes:
|
||||
- bootable flag
|
||||
- load segment
|
||||
- load size
|
||||
- Automatic patching of isolinux images. User needs to set whether to apply
|
||||
this.
|
||||
- Reading of El-Torito info from multisession images. Modification of its
|
||||
attributes.
|
||||
- Removing of El-Torito images
|
||||
|
||||
|
||||
3.2.4 Other operations
|
||||
----------------------
|
||||
|
||||
3.2.4.1 Set file sort weight
|
||||
-----------------------------
|
||||
|
||||
- Any file can have a sort weight, that will determine the order in
|
||||
which the files are written to image
|
||||
|
||||
3.2.4.2 Hidding of nodes
|
||||
------------------------
|
||||
|
||||
- Files can be hidden in the RR or Joliet tree
|
||||
|
||||
|
||||
3.3 Filters
|
||||
===========
|
||||
|
||||
[TODO]
|
||||
|
||||
Support for:
|
||||
- compression filter
|
||||
- encryption filter
|
||||
- external process filter
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
0
libisofs/branches/thomas/doc/devel/4. Design
Normal file
0
libisofs/branches/thomas/doc/devel/4. Design
Normal file
7
libisofs/branches/thomas/doc/devel/README
Normal file
7
libisofs/branches/thomas/doc/devel/README
Normal file
@ -0,0 +1,7 @@
|
||||
Index
|
||||
=====
|
||||
|
||||
1. Overview
|
||||
2. Features
|
||||
3. Design
|
||||
4. Implementation
|
BIN
libisofs/branches/thomas/doc/devel/UML/BuilderSec.png
Normal file
BIN
libisofs/branches/thomas/doc/devel/UML/BuilderSec.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
821
libisofs/branches/thomas/doc/devel/UML/BuilderSec.violet
Normal file
821
libisofs/branches/thomas/doc/devel/UML/BuilderSec.violet
Normal file
@ -0,0 +1,821 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<java version="1.6.0" class="java.beans.XMLDecoder">
|
||||
<object class="com.horstmann.violet.SequenceDiagramGraph">
|
||||
<void method="addNode">
|
||||
<object id="LifelineNode0" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>fs:Filesystem</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>160.0</double>
|
||||
<double>73.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ActivationBarNode0" class="com.horstmann.violet.CallNode">
|
||||
<void method="addChild">
|
||||
<object id="LifelineNode1" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>file:FileSource</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode0"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>192.0</double>
|
||||
<double>209.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="LifelineNode1"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>274.0</double>
|
||||
<double>202.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="LifelineNode2" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>User</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>34.86475730998367</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ActivationBarNode1" class="com.horstmann.violet.CallNode">
|
||||
<void method="addChild">
|
||||
<object idref="LifelineNode0"/>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="LifelineNode3" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>b:TNBuilder</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object idref="ActivationBarNode0"/>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="ActivationBarNode2" class="com.horstmann.violet.CallNode">
|
||||
<void method="addChild">
|
||||
<object id="ActivationBarNode3" class="com.horstmann.violet.CallNode">
|
||||
<void method="addChild">
|
||||
<object id="ActivationBarNode4" class="com.horstmann.violet.CallNode">
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode1"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="LifelineNode4" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>ftn:FileTN</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="ActivationBarNode5" class="com.horstmann.violet.CallNode">
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode4"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="LifelineNode5" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>fs:FileStream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="ActivationBarNode6" class="com.horstmann.violet.CallNode">
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode4"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode3"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void property="implicitParameter">
|
||||
<object id="LifelineNode6" class="com.horstmann.violet.ImplicitParameterNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>d:DirTreeNode</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="ActivationBarNode7" class="com.horstmann.violet.CallNode">
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode4"/>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void property="implicitParameter">
|
||||
<object idref="LifelineNode2"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>66.86475730998367</double>
|
||||
<double>80.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="LifelineNode3"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>539.756828460011</double>
|
||||
<double>126.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="LifelineNode6"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>651.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ActivationBarNode2"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>683.0</double>
|
||||
<double>305.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>571.756828460011</double>
|
||||
<double>328.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ActivationBarNode4"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>306.0</double>
|
||||
<double>351.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="LifelineNode4"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>331.97135964975513</double>
|
||||
<double>374.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ActivationBarNode5"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>363.97135964975513</double>
|
||||
<double>457.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="LifelineNode5"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>418.8259109283281</double>
|
||||
<double>480.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ActivationBarNode6"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>363.97135964975513</double>
|
||||
<double>563.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>1. User wants to add a file to a dir in the iso node</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>143.89406091532933</double>
|
||||
<double>16.868736840587744</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode0" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>2. It creates the source filesystem and the
|
||||
custom builder</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>317.51829970572646</double>
|
||||
<double>74.92004824517142</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode0" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double0" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>570.819415201306</double>
|
||||
<double>142.7048538003265</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double0"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>570.819415201306</double>
|
||||
<double>142.7048538003265</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode1" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double1" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>218.81410916050066</double>
|
||||
<double>114.16388304026121</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double1"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>218.81410916050066</double>
|
||||
<double>114.16388304026121</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode1" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>3. It gets the file from the filesystem
|
||||
and add it to parent dir</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>379.1320632384976</double>
|
||||
<double>217.4323774110454</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode2" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double2" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>327.03195662574825</double>
|
||||
<double>218.46075295682857</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double2"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>327.03195662574825</double>
|
||||
<double>218.46075295682857</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode2" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>4. The dir delegates in the builder.
|
||||
5. The builder stat's the source file. In
|
||||
this example it's a reg. file</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>767.038589176755</double>
|
||||
<double>206.92203801047344</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode3" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double3" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>694.4969551615891</double>
|
||||
<double>312.7614712457156</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double3"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>694.4969551615891</double>
|
||||
<double>312.7614712457156</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode4" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double4" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>314.9148790283507</double>
|
||||
<double>359.23720542189034</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double4"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>314.9148790283507</double>
|
||||
<double>359.23720542189034</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode3" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>6. The conversion is not needed, so
|
||||
the builder just creates a FileTreeNode</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>762.2817607167442</double>
|
||||
<double>335.3564064307673</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode5" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double5" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>522.2869299335649</double>
|
||||
<double>399.9594286575042</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double5"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>522.2869299335649</double>
|
||||
<double>399.9594286575042</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode4" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>7. Sets the attributes from source</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>774.1738318667714</double>
|
||||
<double>413.8440760209469</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode5" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>8 ...and a FileStream to read contents
|
||||
from the FileSource</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>762.2817607167442</double>
|
||||
<double>478.0612602310938</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode6" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double6" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>534.9181953038541</double>
|
||||
<double>453.1845675071054</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double6"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>534.9181953038541</double>
|
||||
<double>453.1845675071054</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode7" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double7" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>482.368075796364</double>
|
||||
<double>524.8261757327898</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double7"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>482.368075796364</double>
|
||||
<double>524.8261757327898</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode6" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>9. Finally, the FileTreeNode is added to
|
||||
the parent dir, and returned to the user</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>757.5249322567332</double>
|
||||
<double>556.5489298212734</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode8" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double8" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>689.7401267015781</double>
|
||||
<double>614.8200784564067</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double8"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>689.7401267015781</double>
|
||||
<double>614.8200784564067</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ActivationBarNode7"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>363.97135964975513</double>
|
||||
<double>656.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode7" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>10. The user can change any attribute
|
||||
on the FileTreeNode</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>735.3910524340093</double>
|
||||
<double>659.0235200658623</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="PointNode9" class="com.horstmann.violet.PointNode">
|
||||
<void id="Rectangle2D$Double9" property="bounds">
|
||||
<void method="setRect">
|
||||
<double>373.3523804664971</double>
|
||||
<double>666.0945878777277</double>
|
||||
<double>0.0</double>
|
||||
<double>0.0</double>
|
||||
</void>
|
||||
</void>
|
||||
<void property="bounds">
|
||||
<object idref="Rectangle2D$Double9"/>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>373.3523804664971</double>
|
||||
<double>666.0945878777277</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>«create»</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode0"/>
|
||||
<object idref="LifelineNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>«create»</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
<object idref="LifelineNode0"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge">
|
||||
<void property="lineStyle">
|
||||
<object class="com.horstmann.violet.LineStyle" field="SOLID"/>
|
||||
</void>
|
||||
<void property="middleLabel">
|
||||
<string>file</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode0"/>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>add_file(file,b)</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
<object idref="ActivationBarNode2"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>create_file(file)</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode2"/>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>lstat()</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object idref="ActivationBarNode4"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge">
|
||||
<void property="middleLabel">
|
||||
<string>S_IFREG</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode4"/>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>«create»</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object idref="LifelineNode4"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>set attributes</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object idref="ActivationBarNode5"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge"/>
|
||||
<object idref="ActivationBarNode5"/>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge">
|
||||
<void property="lineStyle">
|
||||
<object class="com.horstmann.violet.LineStyle" field="SOLID"/>
|
||||
</void>
|
||||
<void property="middleLabel">
|
||||
<string>ftn</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object idref="ActivationBarNode2"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>«create»</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object idref="LifelineNode5"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>set stream (fs)</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
<object idref="ActivationBarNode6"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge"/>
|
||||
<object idref="ActivationBarNode6"/>
|
||||
<object idref="ActivationBarNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge">
|
||||
<void property="lineStyle">
|
||||
<object class="com.horstmann.violet.LineStyle" field="SOLID"/>
|
||||
</void>
|
||||
<void property="middleLabel">
|
||||
<string>ftn</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode2"/>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>«create»</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
<object idref="LifelineNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>get(path)</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
<object idref="ActivationBarNode0"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode0"/>
|
||||
<object idref="PointNode0"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode0"/>
|
||||
<object idref="PointNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode1"/>
|
||||
<object idref="PointNode2"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode2"/>
|
||||
<object idref="PointNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode2"/>
|
||||
<object idref="PointNode4"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode3"/>
|
||||
<object idref="PointNode5"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode4"/>
|
||||
<object idref="PointNode6"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode5"/>
|
||||
<object idref="PointNode7"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode6"/>
|
||||
<object idref="PointNode8"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.CallEdge">
|
||||
<void property="middleLabel">
|
||||
<string>set_permission()</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
<object idref="ActivationBarNode7"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.ReturnEdge"/>
|
||||
<object idref="ActivationBarNode7"/>
|
||||
<object idref="ActivationBarNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="NoteNode7"/>
|
||||
<object idref="PointNode9"/>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
884
libisofs/branches/thomas/doc/devel/UML/builder.violet
Normal file
884
libisofs/branches/thomas/doc/devel/UML/builder.violet
Normal file
@ -0,0 +1,884 @@
|
||||
<?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>
|
BIN
libisofs/branches/thomas/doc/devel/UML/builder.violet.png
Normal file
BIN
libisofs/branches/thomas/doc/devel/UML/builder.violet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
634
libisofs/branches/thomas/doc/devel/UML/burn_source.class.violet
Normal file
634
libisofs/branches/thomas/doc/devel/UML/burn_source.class.violet
Normal file
@ -0,0 +1,634 @@
|
||||
<?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 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>600.0</double>
|
||||
<double>50.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="InterfaceNode0"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>612.4370214406964</double>
|
||||
<double>81.3237865499184</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode0" 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>604.1172144213822</double>
|
||||
<double>242.59825146055505</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode1" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>WriterState</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>861.1034292438676</double>
|
||||
<double>244.31119796826698</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode2" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>FilesWriterSt</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>984.2531292100068</double>
|
||||
<double>359.95094883087904</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode3" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>VolDescWriterSt</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>717.2457054234224</double>
|
||||
<double>357.4185959653686</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode4" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>DirInfoWriterSt</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>854.6043620021998</double>
|
||||
<double>355.85097462036043</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode5" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>Ecma119Image</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>392.3294860655768</double>
|
||||
<double>240.39714472372754</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode0" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>The context data for image burn sources, contains
|
||||
references to the tree, creation options...</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>261.45257180386454</double>
|
||||
<double>85.80450046553075</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode6" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>Ecma119Node</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>291.8219414851778</double>
|
||||
<double>612.806815288254</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="InterfaceNode1" class="com.horstmann.violet.InterfaceNode">
|
||||
<void property="methods">
|
||||
<void property="text">
|
||||
<string>init()
|
||||
write_voldesc()
|
||||
write_dir_info()</string>
|
||||
</void>
|
||||
</void>
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>«interface»
|
||||
ImageWriter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>401.9520048709197</double>
|
||||
<double>344.8700633507891</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode7" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>JolietNode</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>409.0872475609359</double>
|
||||
<double>614.8200784564067</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode8" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>FileRegistry</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>718.2810974616434</double>
|
||||
<double>459.0339463910502</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode9" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>Ecma119Writer</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>273.51763645062584</double>
|
||||
<double>489.95333138112096</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode10" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>JolietWriter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>404.3304191009253</double>
|
||||
<double>485.1965029211101</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode11" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>ElToritoWriter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>512.5482665661723</double>
|
||||
<double>485.19650292111</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode12" 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>IsoFile</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>720.659511691649</double>
|
||||
<double>568.4410009713001</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="InterfaceNode2" class="com.horstmann.violet.InterfaceNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>«interface»
|
||||
Stream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>909.7434429770816</double>
|
||||
<double>580.3330721213274</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode1" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>ImageWriter goal is to encapsulate the output
|
||||
of image blocks related to one "specification",
|
||||
i.e. we will have an implementation for ECMA-119/RR,
|
||||
other for Joliet...
|
||||
|
||||
Note that having different implementations for things that
|
||||
need to be written in the same block has no utility, i.e. RR
|
||||
and ECMA-119 must share its Writer implementation.
|
||||
|
||||
Note also that while this provides considerable encapsulation
|
||||
the provided abstraction is really partial: In the relation
|
||||
with WriterState the encapsulation is quite good, each
|
||||
concrete state know what method to call here (notice that
|
||||
this interface is also quite coupled with state). However,
|
||||
with respect to Ecma119Image the abstration only refers
|
||||
to implementation, as the Ecma119Image needs to know
|
||||
about the ImageWriter implementations. This can't be
|
||||
avoided, as Ecma119Image has to be responsible of the
|
||||
instantation in the correct order and following the user
|
||||
needs.
|
||||
|
||||
</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>2.3784142300054896</double>
|
||||
<double>160.54296052536733</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode2" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>The files are registered into the file registry, that will take care
|
||||
about the written of content.</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>286.59891471565567</double>
|
||||
<double>708.7674405416217</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode3" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>Each state will invoque property method in each of
|
||||
the ImageWriters. Some writers can return without
|
||||
outputting anything. It is possible that when dealing
|
||||
with UDF or other specification we would need new
|
||||
states and methods in ImageWriter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>765.8493820617523</double>
|
||||
<double>132.001989765302</double>
|
||||
</void>
|
||||
</object>
|
||||
</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="ClassNode3"/>
|
||||
<object idref="ClassNode1"/>
|
||||
</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="ClassNode1"/>
|
||||
</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="ClassNode1"/>
|
||||
</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="startArrowHead">
|
||||
<object class="com.horstmann.violet.ArrowHead" field="DIAMOND"/>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode0"/>
|
||||
<object idref="ClassNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode5"/>
|
||||
<object idref="NoteNode0"/>
|
||||
</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="ClassNode0"/>
|
||||
<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>
|
||||
<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="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="HVH"/>
|
||||
</void>
|
||||
<void property="endArrowHead">
|
||||
<object class="com.horstmann.violet.ArrowHead" field="V"/>
|
||||
</void>
|
||||
<void property="endLabel">
|
||||
<string>*</string>
|
||||
</void>
|
||||
<void property="startArrowHead">
|
||||
<object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode5"/>
|
||||
<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="ClassNode9"/>
|
||||
<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="ClassNode10"/>
|
||||
<object idref="ClassNode7"/>
|
||||
</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>*</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode8"/>
|
||||
<object idref="ClassNode12"/>
|
||||
</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="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="ClassNode5"/>
|
||||
<object idref="ClassNode8"/>
|
||||
</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="lineStyle">
|
||||
<object class="com.horstmann.violet.LineStyle" field="DOTTED"/>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode2"/>
|
||||
<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>
|
||||
<void property="lineStyle">
|
||||
<object class="com.horstmann.violet.LineStyle" field="DOTTED"/>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="InterfaceNode1"/>
|
||||
<object idref="ClassNode8"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="InterfaceNode1"/>
|
||||
<object idref="NoteNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode6"/>
|
||||
<object idref="NoteNode2"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode7"/>
|
||||
<object idref="NoteNode2"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode8"/>
|
||||
<object idref="NoteNode2"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode1"/>
|
||||
<object idref="NoteNode3"/>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
BIN
libisofs/branches/thomas/doc/devel/UML/burn_source.png
Normal file
BIN
libisofs/branches/thomas/doc/devel/UML/burn_source.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
552
libisofs/branches/thomas/doc/devel/UML/eltorito.violet
Normal file
552
libisofs/branches/thomas/doc/devel/UML/eltorito.violet
Normal file
@ -0,0 +1,552 @@
|
||||
<?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="name">
|
||||
<void property="text">
|
||||
<string>Volume</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>479.2699858975891</double>
|
||||
<double>226.94112549695433</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode1" class="com.horstmann.violet.ClassNode">
|
||||
<void property="attributes">
|
||||
<void property="text">
|
||||
<string>block : uint32_t</string>
|
||||
</void>
|
||||
</void>
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>ElToritoCatalog</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>472.58578643762684</double>
|
||||
<double>344.73506473629425</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode2" class="com.horstmann.violet.ClassNode">
|
||||
<void property="attributes">
|
||||
<void property="text">
|
||||
<string>bootable : bool
|
||||
type : enum
|
||||
partition_type : enum
|
||||
load_seg : uint16
|
||||
load_size : uint16
|
||||
patch_isolinux : bool
|
||||
block: uint32_t</string>
|
||||
</void>
|
||||
</void>
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>BootImage</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>470.4142135623731</double>
|
||||
<double>487.3919189857866</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode0" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>In a future we can support several boot
|
||||
images</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>251.63542622468316</double>
|
||||
<double>429.69343417595167</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode3" class="com.horstmann.violet.ClassNode">
|
||||
<void property="attributes">
|
||||
<void property="text">
|
||||
<string>img : boolean</string>
|
||||
</void>
|
||||
</void>
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>BootNode</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>193.07106781186545</double>
|
||||
<double>334.49242404917493</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object class="com.horstmann.violet.PackageNode">
|
||||
<void method="addChild">
|
||||
<object id="ClassNode4" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>TreeNode</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>iso_tree</string>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>180.0</double>
|
||||
<double>40.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ClassNode4"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>193.0</double>
|
||||
<double>69.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode1" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>The img field is an implementation detail, used
|
||||
to distinguish between the catalog node and the image
|
||||
node. This is needed when the image is written.</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>57.81118318204312</double>
|
||||
<double>584.0458146424488</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode2" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>The support for growing or modify El-Torito images
|
||||
is really hard to implement. The reason: when the
|
||||
image is hidden, we don't know its size, so the best we
|
||||
can do is just refer to the old image. When modify, all
|
||||
we can do may be wrong.</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>748.978906441031</double>
|
||||
<double>574.8973495522459</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode3" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>The block in both Catalog and BootImage is needed
|
||||
for multissession images</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>629.3242465083424</double>
|
||||
<double>441.1316647878586</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode5" 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>188.09040379562163</double>
|
||||
<double>172.5340546095176</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode6" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>CatalogStream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>851.105100475371</double>
|
||||
<double>283.5127233261827</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode7" 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>743.4055403867466</double>
|
||||
<double>284.4253525880894</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>958.5987801403015</double>
|
||||
<double>279.8322618091961</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="InterfaceNode0" class="com.horstmann.violet.InterfaceNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>«interface»
|
||||
Stream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>847.6728065449973</double>
|
||||
<double>157.05765855361264</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode9" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>IsoLinuxPatch</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>968.73629022557</double>
|
||||
<double>384.6660889654818</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode4" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>Generates the content of the catalog on-the-fly</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>517.6021638285529</double>
|
||||
<double>107.48023074035522</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode5" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>To apply the needed patch to isolinux
|
||||
images</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>923.4814562296309</double>
|
||||
<double>509.1168824543143</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 image</string>
|
||||
</void>
|
||||
<void property="startArrowHead">
|
||||
<object class="com.horstmann.violet.ArrowHead" field="BLACK_DIAMOND"/>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode1"/>
|
||||
<object idref="ClassNode2"/>
|
||||
</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="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>0..1 boot_cat</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode0"/>
|
||||
<object idref="ClassNode1"/>
|
||||
</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>0..1 node</string>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode1"/>
|
||||
<object idref="ClassNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode3"/>
|
||||
<object idref="NoteNode1"/>
|
||||
</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="endLabel">
|
||||
<string>0..1 node</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>
|
||||
</object>
|
||||
<object idref="ClassNode3"/>
|
||||
<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="ClassNode5"/>
|
||||
<object idref="ClassNode4"/>
|
||||
</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="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="ClassNode7"/>
|
||||
<object idref="InterfaceNode0"/>
|
||||
</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="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="ClassNode6"/>
|
||||
<object idref="InterfaceNode0"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode1"/>
|
||||
<object idref="NoteNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode2"/>
|
||||
<object idref="NoteNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode2"/>
|
||||
<object idref="NoteNode2"/>
|
||||
</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="ClassNode5"/>
|
||||
<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>
|
||||
</object>
|
||||
<object idref="ClassNode9"/>
|
||||
<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="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="ClassNode2"/>
|
||||
<object idref="InterfaceNode0"/>
|
||||
</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="lineStyle">
|
||||
<object class="com.horstmann.violet.LineStyle" field="DOTTED"/>
|
||||
</void>
|
||||
</object>
|
||||
<object idref="ClassNode6"/>
|
||||
<object idref="ClassNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode6"/>
|
||||
<object idref="NoteNode4"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode9"/>
|
||||
<object idref="NoteNode5"/>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
BIN
libisofs/branches/thomas/doc/devel/UML/eltorito.violet.png
Normal file
BIN
libisofs/branches/thomas/doc/devel/UML/eltorito.violet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
748
libisofs/branches/thomas/doc/devel/UML/iso_tree.violet
Normal file
748
libisofs/branches/thomas/doc/devel/UML/iso_tree.violet
Normal file
@ -0,0 +1,748 @@
|
||||
<?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>
|
BIN
libisofs/branches/thomas/doc/devel/UML/iso_tree.violet.png
Normal file
BIN
libisofs/branches/thomas/doc/devel/UML/iso_tree.violet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
1059
libisofs/branches/thomas/doc/devel/UML/nglibisofs.violet
Normal file
1059
libisofs/branches/thomas/doc/devel/UML/nglibisofs.violet
Normal file
File diff suppressed because it is too large
Load Diff
492
libisofs/branches/thomas/doc/devel/UML/stream.violet
Normal file
492
libisofs/branches/thomas/doc/devel/UML/stream.violet
Normal file
@ -0,0 +1,492 @@
|
||||
<?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="name">
|
||||
<void property="text">
|
||||
<string>TransformStream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>374.71280028618764</double>
|
||||
<double>246.7337520453866</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="InterfaceNode0" 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>576.3280239753375</double>
|
||||
<double>43.34897573453627</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode1" 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>741.9465965652432</double>
|
||||
<double>246.8166228690261</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object class="com.horstmann.violet.PackageNode">
|
||||
<void method="addChild">
|
||||
<object id="ClassNode2" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>CompressionFilter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="ClassNode3" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>EncryptionFilter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="ClassNode4" class="com.horstmann.violet.ClassNode">
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>ExtAppFilter</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addChild">
|
||||
<object id="InterfaceNode1" 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>
|
||||
</void>
|
||||
<void property="name">
|
||||
<string>Filters</string>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>270.0</double>
|
||||
<double>480.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode0" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>A Stream to read data from an abstract
|
||||
file represented by a SourceFile</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>781.6101730552666</double>
|
||||
<double>137.2161620284267</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode1" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>A stream to get 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>580.8730162779191</double>
|
||||
<double>392.3137084989848</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode5" 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>FdStream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>565.61818228198</double>
|
||||
<double>253.24264068711926</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ClassNode2"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>281.2426406871193</double>
|
||||
<double>620.6274169979695</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ClassNode3"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>429.51546936508925</double>
|
||||
<double>624.9910026589843</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="ClassNode4"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>568.2426406871186</double>
|
||||
<double>624.6274169979695</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode2" 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>724.6274169979696</double>
|
||||
<double>510.3015151901651</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode6" 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>439.0</double>
|
||||
<double>357.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="ClassNode7" class="com.horstmann.violet.ClassNode">
|
||||
<void property="attributes">
|
||||
<void property="text">
|
||||
<string>size : off_t
|
||||
lba: off_t</string>
|
||||
</void>
|
||||
</void>
|
||||
<void property="name">
|
||||
<void property="text">
|
||||
<string>CutOutStream</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>321.0</double>
|
||||
<double>358.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode3" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>This can be implemented as a Filter, but
|
||||
it has no sense to have the same cut out
|
||||
filter to several sources, so this is a better
|
||||
place.</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>67.0</double>
|
||||
<double>276.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="NoteNode4" class="com.horstmann.violet.NoteNode">
|
||||
<void property="text">
|
||||
<void property="text">
|
||||
<string>A stream that applies some transformation
|
||||
to the contents of another stream.</string>
|
||||
</void>
|
||||
</void>
|
||||
</object>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>122.0</double>
|
||||
<double>183.0</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object idref="InterfaceNode1"/>
|
||||
<object class="java.awt.geom.Point2D$Double">
|
||||
<void method="setLocation">
|
||||
<double>437.57046683437824</double>
|
||||
<double>509.23933115391503</double>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="addNode">
|
||||
<object id="InterfaceNode2" 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>920.6530291048848</double>
|
||||
<double>248.90158697766475</double>
|
||||
</void>
|
||||
</object>
|
||||
</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="ClassNode1"/>
|
||||
<object idref="InterfaceNode0"/>
|
||||
</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="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="ClassNode5"/>
|
||||
<object idref="InterfaceNode0"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode5"/>
|
||||
<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="ClassNode7"/>
|
||||
<object idref="ClassNode0"/>
|
||||
</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="ClassNode6"/>
|
||||
<object idref="ClassNode0"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode7"/>
|
||||
<object idref="NoteNode3"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="ClassNode0"/>
|
||||
<object idref="NoteNode4"/>
|
||||
</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="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="ClassNode3"/>
|
||||
<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="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="ClassNode6"/>
|
||||
<object idref="InterfaceNode1"/>
|
||||
</void>
|
||||
<void method="connect">
|
||||
<object class="com.horstmann.violet.NoteEdge"/>
|
||||
<object idref="InterfaceNode1"/>
|
||||
<object idref="NoteNode2"/>
|
||||
</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="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="ClassNode1"/>
|
||||
<object idref="InterfaceNode2"/>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
BIN
libisofs/branches/thomas/doc/devel/UML/stream.violet.png
Normal file
BIN
libisofs/branches/thomas/doc/devel/UML/stream.violet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
91
libisofs/branches/thomas/doc/devel/codestyle.xml
Normal file
91
libisofs/branches/thomas/doc/devel/codestyle.xml
Normal file
@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<profiles version="1">
|
||||
<profile kind="CodeFormatterProfile" name="nglibisofs" version="1">
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.continuation_indentation" value="2"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.lineSplit" value="80"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression" value="16"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.tabulation.size" value="4"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_body" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_block" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_empty_lines" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.tabulation.char" value="space"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_block_in_case" value="next_line_shifted"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.compact_else_if" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.indentation.size" value="4"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration" value="end_of_line"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_block" value="end_of_line"/>
|
||||
<setting id="org.eclipse.cdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
|
||||
</profile>
|
||||
</profiles>
|
119
libisofs/branches/thomas/doc/devel/cookbook/ISO 9660-1999
Normal file
119
libisofs/branches/thomas/doc/devel/cookbook/ISO 9660-1999
Normal file
@ -0,0 +1,119 @@
|
||||
===============================================================================
|
||||
ISO/IEC 9660:1999 Cookbook
|
||||
===============================================================================
|
||||
|
||||
Creation date: 2008-Jan-14
|
||||
Author: Vreixo Formoso
|
||||
_______________________________________________________________________________
|
||||
|
||||
Contents:
|
||||
---------
|
||||
|
||||
1. References
|
||||
2. General
|
||||
3. Features
|
||||
4. Implementation
|
||||
5. Known implementation bugs and specification ambiguities/problems
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
1. References:
|
||||
|
||||
ISO/IEC DIS 9660:1999(E) "Information processing. Volume and file structure of
|
||||
CD-ROM for Information Interchange"
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
2. General
|
||||
|
||||
ISO 9660:1999, also known as ISO-9660 version 2 is an update of the old
|
||||
ISO 9660:1988 standard for writing data images for CD.
|
||||
|
||||
In the same way Joliet does, it is based on a Secondary Volume Descriptor (that
|
||||
is called Enhanced Volume Descriptor), that provides a second tree where the
|
||||
new file information is recorded.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
3. Features
|
||||
|
||||
It makes some improvements with respect to ECMA-119, mainly related to relax
|
||||
the constraints imposed by its predecessor.
|
||||
|
||||
- It removes the limit to the deep of the directory hierarchy (6.8.2.1).
|
||||
However, it still keep a limit to the path length, of 255 characters as in
|
||||
ECMA-119.
|
||||
|
||||
- File names don't need the version number (;1) anymore, and the "." and ";",
|
||||
used as SEPARATORS for extension and version number, have no special meaning
|
||||
now.
|
||||
|
||||
- The file name max length is incremented to 207 bytes.
|
||||
|
||||
- The file name is not restricted to d-characters.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
4. Implementation
|
||||
|
||||
ISO 9660:1999 is very similar to old ISO 9660:1988 (ECMA-119). It needs two
|
||||
tree hierarchies: one, identified by the Primary Volume Descriptor, is recorded
|
||||
in the same way that an ECMA-119 structure.
|
||||
|
||||
The second structure is identified by a Enhanced Volume Descriptor (8.5). The
|
||||
structure is exactly like defined in ECMA-119, with the exceptions named above.
|
||||
|
||||
Thus, to write an ISO 9660:1999:
|
||||
|
||||
- First 16 blocks are set to 0.
|
||||
- Block 16 identifies a PVD (8.4), associated with a directory structure
|
||||
written following ECMA-119.
|
||||
- It is needed a Enhanced Volume descriptor to describe the additional
|
||||
structure. It is much like a SVD, with version number set to 2 to identify
|
||||
this new version.
|
||||
- We can also write boot records (El-Torito) and additional SVD (Joliet).
|
||||
- We write a Volume Descriptor Set Terminator (8.3)
|
||||
- We write directory structure and path tables (L and M) for both ECMA-119
|
||||
tree and enhanced tree. Path table record and directory record format is
|
||||
the same in both structures. However, ECMA-119 is constrained by the usual
|
||||
restrictions.
|
||||
- And write the contents of the files.
|
||||
|
||||
Interchange levels 1, 2 and 3 are also defined. For PVD tree, they have the
|
||||
same meaning as in ECMA-119. For EVD tree, in levels 1 and 2 files are
|
||||
restricted to one file section (i.e., 4 GB filesize limit). In level 3 we can
|
||||
have more than one section per file. Level 1 does not impose other
|
||||
restrictions than that in the EVD tree.
|
||||
|
||||
It seems that both El-Torito and Joliet can coexist in a ISO 9660:1999 image.
|
||||
However, Joliet has no utility at all in this kind of images, as it has no
|
||||
benefit over ISO 9660:1999, and it is more restrictive in filename length.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
5. Known implementation bugs and specification ambiguities/problems
|
||||
|
||||
- While the specification clearly states that the tree speficied by the Primary
|
||||
Volume Descriptor should remain compatible with ISO-9660 (ECMA-119), i.e., it
|
||||
should be constrained by ECMA-119 restrictions, some image generation
|
||||
applications out there just make both Primary and Enhanced Volume Descriptors
|
||||
to point to the same directory structure. That is a specification violation, as
|
||||
for a) the directory hierarchy specified in the Primary Volume Descriptor
|
||||
doesn't follow the restrictions specified in the specs, and b) the same
|
||||
directories are part of two different hiearchies (6.8.3 "A directory shall not
|
||||
be a part of more than one Directory Hierarchy.").
|
||||
Thus, we should keep two trees as we do with Joliet. Or are there strong
|
||||
reasons against this?
|
||||
|
||||
- It's not very clear what characters are allowed for files and dir names. For
|
||||
the tree identified in the Enhanced Volume Descriptor, it seems that a
|
||||
"sequence of characters rather than d-characters or d1-characters" is allowed.
|
||||
It also seems that the charset is determined by the escape sequence in the
|
||||
EVD. Anyway, leaving escape sequence to 0 and use any user-specified sequence
|
||||
(such as UTF-8) seems a good solution and is what many other applications do.
|
||||
Linux correctly mounts the images in this case.
|
||||
|
||||
- It is not clear if RR extensions are allowed in the tree identified by the
|
||||
Enhanced Volume Descriptor. However, it seems not a good idea. With 207 bytes
|
||||
filenames and XA extensions, there is no place for RR entries in the directory
|
||||
records of the enhanced tree. In my opinion, RR extension should be attached to
|
||||
the ECMA-119 tree that must also be written to image.
|
||||
|
||||
|
Reference in New Issue
Block a user