<?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>