Mercurial > projects > dil
changeset 443:87c36c5ed434
Merged branches.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Tue, 16 Oct 2007 22:20:37 +0200 |
parents | 5968e273449b (current diff) 13ecfb4278a4 (diff) |
children | 0bda71dc9c4f |
files | trunk/src/docgen-tests.d |
diffstat | 12 files changed, 557 insertions(+), 252 deletions(-) [+] |
line wrap: on
line diff
--- a/trunk/src/docgen-tests.d Tue Oct 16 22:13:37 2007 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/** - * Author: Jari-Matti Mäkelä - * License: GPL3 - */ -module trunk.src.tests; - -import docgen.graphutils.writers; -import tango.io.Stdout; -import tango.io.FileConduit; - -/** - * A temporary test program for the docgen package. - * I'll replace this with proper unittests in the future. - * - */ -void main() { - { - auto a = new Vertex("mod_a", "path.to.mod_a", 1); - auto b = new Vertex("mod_b", "path.to.mod_b", 2); - auto c = new Vertex("mod_c", "path.to.mod_c", 3); - - auto d = new Vertex("mod_d", "path.to.mod_d", 4); - auto e = new Vertex("mod_e", "path.to.mod_e", 5); - auto f = new Vertex("mod_f", "path.to.mod_f", 6); - auto g = new Vertex("mod_g", "path.to.mod_g", 7); - - Edge[] edges; - //edges ~= a.addChild(b); - //edges ~= b.addChild(c); - //edges ~= c.addChild(a); - edges ~= d.addChild(a); - //edges ~= e.addChild(a); - edges ~= b.addChild(d); - edges ~= b.addChild(e); - edges ~= g.addChild(a); - edges ~= b.addChild(f); - edges ~= g.addChild(f); - edges ~= a.addChild(g); - - - - GraphOptions test; - test.graphFormat = GraphFormat.Dot; - test.HighlightCyclicVertices = true; - //test.format = GraphOutputFormat.ModuleNames; - //test.format = GraphOutputFormat.ModulePaths; - test.depth = 5; - //test.depth++; - - auto gwf = new DefaultGraphWriterFactory(test); - auto writer = gwf.createGraphWriter([Stdout.stream, new FileConduit("test.dot", FileConduit.WriteCreate)]); - - writer([a,b,c,d,e,f,g], edges); - } -} \ No newline at end of file
--- a/trunk/src/docgen/archdoc.xmi Tue Oct 16 22:13:37 2007 +0200 +++ b/trunk/src/docgen/archdoc.xmi Tue Oct 16 22:20:37 2007 +0200 @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2007-09-19T22:58:35" xmi.version="1.2" > +<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2007-10-15T23:59:30" xmi.version="1.2" > <XMI.header> <XMI.documentation> <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter> - <XMI.exporterVersion>1.5.71</XMI.exporterVersion> + <XMI.exporterVersion>1.5.8</XMI.exporterVersion> <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding> </XMI.documentation> <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" /> @@ -128,7 +128,7 @@ <UML:Classifier.feature> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="2SrUGMptabML" isRoot="false" isAbstract="false" isQuery="false" name="createListingWriter" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="pioyJkpEo7Bj" type="zhVfgpENwAeN" /> + <UML:Parameter kind="return" xmi.id="TMA6Ge0zQMX6" type="zhVfgpENwAeN" /> <UML:Parameter isSpecification="false" visibility="private" xmi.id="GYFWlYNnmcE7" value="" type="3qQutO5Yhxt6" name="outputs" /> </UML:BehavioralFeature.parameter> </UML:Operation> @@ -154,7 +154,7 @@ <UML:Classifier.feature> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="CMMapfT5KiQP" isRoot="false" isAbstract="false" isQuery="false" name="createGraphWriter" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="dnaY7cwuRQn2" type="2Mzl2VgeffI0" /> + <UML:Parameter kind="return" xmi.id="R9UhhTPng6id" type="2Mzl2VgeffI0" /> <UML:Parameter isSpecification="false" visibility="private" xmi.id="r5Ijnmvx8HYv" value="" type="Ug6grrz7llbI" name="modules" /> </UML:BehavioralFeature.parameter> </UML:Operation> @@ -169,7 +169,7 @@ <UML:Classifier.feature> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="RDl3vCbldkit" isRoot="false" isAbstract="false" isQuery="false" name="createGraphWriter" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="hvf2wcEjK0hb" type="2Mzl2VgeffI0" /> + <UML:Parameter kind="return" xmi.id="juNjzfHRzPXE" type="2Mzl2VgeffI0" /> <UML:Parameter isSpecification="false" visibility="private" xmi.id="eZGRSI3D44ZH" value="" type="Ug6grrz7llbI" name="modules" /> </UML:BehavioralFeature.parameter> </UML:Operation> @@ -195,7 +195,7 @@ </UML:Operation> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="PX2Y1eFKtaj6" isRoot="false" isAbstract="false" isQuery="false" name="isCyclic" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="iUqWazEDkmmr" type="EaC7G8UkzGbk" /> + <UML:Parameter kind="return" xmi.id="1XBPtiTIpxzU" type="EaC7G8UkzGbk" /> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> @@ -216,7 +216,7 @@ </UML:Operation> </UML:Classifier.feature> </UML:Class> - <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="Logical View" xmi.id="672lM6F9KhcI" isRoot="false" isAbstract="false" name="GraphWriterOptions" > + <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="Logical View" xmi.id="672lM6F9KhcI" isRoot="false" isAbstract="false" name="GraphOptions" > <UML:Classifier.feature> <UML:Attribute isSpecification="false" visibility="private" xmi.id="zRuotD7A5ZEx" type="4F09aHCjljSA" name="format" /> <UML:Attribute isSpecification="false" visibility="private" xmi.id="dMwwhlSnUoPh" type="VDAdlQhZ750q" name="imageFormat" /> @@ -241,8 +241,8 @@ </UML:Interface> <UML:Association isSpecification="false" visibility="public" namespace="Logical View" xmi.id="QrZyyaltfezo" name="" > <UML:Association.connection> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="pWxiAyPVfU1m" aggregation="composite" type="zgj70ST7PbVQ" name="" /> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="g6iEmDoC2LA0" aggregation="none" type="FVtbgO8sd2ii" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="kdwMLV8h83sE" aggregation="composite" type="zgj70ST7PbVQ" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Sii687Npp9vE" aggregation="none" type="FVtbgO8sd2ii" name="" /> </UML:Association.connection> </UML:Association> <UML:Generalization isSpecification="false" child="FVtbgO8sd2ii" visibility="public" namespace="Logical View" xmi.id="rtOV4FVf7iPk" parent="zgj70ST7PbVQ" discriminator="" name="" /> @@ -267,32 +267,32 @@ <UML:Dependency isSpecification="false" visibility="public" namespace="Logical View" xmi.id="eIi8xlOA51aq" client="zgj70ST7PbVQ" name="" supplier="ZUDChgtO8jSy" /> <UML:Association isSpecification="false" visibility="public" namespace="Logical View" xmi.id="xcuomSYFMuc3" name="" > <UML:Association.connection> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="z3vey0rU0fYl" aggregation="none" type="zgj70ST7PbVQ" name="" /> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="v0wc5Ii1vbnf" aggregation="none" type="ZUDChgtO8jSy" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="Yxf0JQYnYv4n" aggregation="none" type="zgj70ST7PbVQ" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="CZfvIVeFD72m" aggregation="none" type="ZUDChgtO8jSy" name="" /> </UML:Association.connection> </UML:Association> <UML:Association isSpecification="false" visibility="public" namespace="Logical View" xmi.id="KxhR786WWKiA" name="" > <UML:Association.connection> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="S4OAgzf4nSFv" aggregation="none" type="haoxC1oM2QVz" name="" /> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="LyN0X3ypydE5" aggregation="none" type="2MyyGGXAPfEy" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="e0bOstNQo1O8" aggregation="none" type="haoxC1oM2QVz" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="Pwtxqxi0ULvm" aggregation="none" type="2MyyGGXAPfEy" name="" /> </UML:Association.connection> </UML:Association> <UML:Association isSpecification="false" visibility="public" namespace="Logical View" xmi.id="036VnHDG2xBH" name="" > <UML:Association.connection> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="JoUpcbtKT5YV" aggregation="none" type="haoxC1oM2QVz" name="" /> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="eUTueiMekR8X" aggregation="none" type="B92ON93E7uE9" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="rY12d3mG4Neu" aggregation="none" type="haoxC1oM2QVz" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="GzI5yhBNb2IP" aggregation="none" type="B92ON93E7uE9" name="" /> </UML:Association.connection> </UML:Association> <UML:Association isSpecification="false" visibility="public" namespace="Logical View" xmi.id="MPnzJ9f0egCU" name="" > <UML:Association.connection> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="ZYvknQmE8PDm" aggregation="none" type="haoxC1oM2QVz" name="" /> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="KYVg4GCPeyMv" aggregation="none" type="w884b40YcIag" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="xyPRKJE9rFBS" aggregation="none" type="haoxC1oM2QVz" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="HxgLLIDbGVeE" aggregation="none" type="w884b40YcIag" name="" /> </UML:Association.connection> </UML:Association> <UML:Association isSpecification="false" visibility="public" namespace="Logical View" xmi.id="qQ8ZNcL54wHR" name="" > <UML:Association.connection> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="wREu0yqd0ws9" aggregation="none" type="haoxC1oM2QVz" name="" /> - <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="3UwgJY27yBeJ" aggregation="none" type="qxq04A8rywIb" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="CnampsBkrbC9" aggregation="none" type="haoxC1oM2QVz" name="" /> + <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="sQIhdT9uOqDj" aggregation="none" type="qxq04A8rywIb" name="" /> </UML:Association.connection> </UML:Association> <UML:Enumeration stereotype="enum" isSpecification="false" isLeaf="false" visibility="public" namespace="Logical View" xmi.id="BQqAv02HTM6x" isRoot="false" isAbstract="false" name="VertexType" > @@ -316,7 +316,7 @@ </UML:Operation> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="faPqILFpZIBc" isRoot="false" isAbstract="false" isQuery="false" name="isCyclic" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="Oglo4WqmSTmM" type="EaC7G8UkzGbk" /> + <UML:Parameter kind="return" xmi.id="ONF2RwfAq0sn" type="EaC7G8UkzGbk" /> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> @@ -337,7 +337,7 @@ <UML:Classifier.feature> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="FYgiWJyDqrhK" isRoot="false" isAbstract="false" isQuery="false" name="options" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="305OynxgFlBp" type="672lM6F9KhcI" /> + <UML:Parameter kind="return" xmi.id="e9EdXlpWG0u7" type="672lM6F9KhcI" /> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="L1C3szmMnzpw" isRoot="false" isAbstract="false" isQuery="false" name="createGraphWriter" > @@ -352,7 +352,7 @@ <UML:Attribute isSpecification="false" visibility="protected" xmi.id="ZmI5M1aN978M" type="672lM6F9KhcI" name="m_options" /> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="liEDYXNQ5pTO" isRoot="false" isAbstract="false" isQuery="false" name="options" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="kP1U9lJYR2KV" type="QXgD4zE4FsCt" /> + <UML:Parameter kind="return" xmi.id="gNPWJNyfiEi9" type="QXgD4zE4FsCt" /> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> @@ -409,7 +409,7 @@ <UML:Attribute isSpecification="false" visibility="protected" xmi.id="xswAJre2CrPi" type="OcpJQugxHW8F" name="m_options" /> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="mZ1wtQujXunn" isRoot="false" isAbstract="false" isQuery="false" name="options" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="ZAH1c2Nf2S1z" type="DaFOT7jBVtui" /> + <UML:Parameter kind="return" xmi.id="ANIyMAl0H0bm" type="DaFOT7jBVtui" /> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> @@ -418,12 +418,12 @@ <UML:Classifier.feature> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="QR4frQ4pllIy" isRoot="false" isAbstract="false" isQuery="false" name="options" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="DzfRkqGVDHxN" type="OcpJQugxHW8F" /> + <UML:Parameter kind="return" xmi.id="jPJ0PB74YVap" type="OcpJQugxHW8F" /> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="GL3CAg7Qy0PF" isRoot="false" isAbstract="false" isQuery="false" name="createListingWriter" > <UML:BehavioralFeature.parameter> - <UML:Parameter kind="return" xmi.id="0HtRJDvsLArx" type="zhVfgpENwAeN" /> + <UML:Parameter kind="return" xmi.id="qWVYkDfsYxos" type="zhVfgpENwAeN" /> <UML:Parameter isSpecification="false" visibility="private" xmi.id="rlp4XIxd1W9V" value="" type="3qQutO5Yhxt6" name="outputs" /> </UML:BehavioralFeature.parameter> </UML:Operation> @@ -449,19 +449,19 @@ <diagrams> <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1042" snapy="10" showatts="1" xmi.id="VfRLtV4Z9Ptg" documentation="" type="1" showops="1" showpackage="0" name="Source listing classes" localid="" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="860" > <widgets> - <classwidget usesdiagramfillcolor="0" width="428" showattsigs="601" x="504" fillcolor="#ffffc0" y="464" drawascircle="0" showopsigs="601" linewidth="none" height="72" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="gGNje78ValnI" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="1" width="62" showattsigs="601" x="862" fillcolor="none" y="200" showopsigs="601" linewidth="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="UY72E0ULeXyT" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="none" /> - <classwidget usesdiagramfillcolor="0" width="175" showattsigs="601" x="135" fillcolor="#ffffc0" y="236" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="OcpJQugxHW8F" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="#ff0000" /> - <interfacewidget usesdiagramfillcolor="0" width="368" x="643" fillcolor="#ffffc0" y="291" drawascircle="0" showopsigs="601" linewidth="none" height="81" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="zhVfgpENwAeN" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="404" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="qxq04A8rywIb" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="559" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="w884b40YcIag" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="714" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="B92ON93E7uE9" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="869" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="2MyyGGXAPfEy" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="411" showattsigs="601" x="17" fillcolor="#ffffc0" y="582" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="haoxC1oM2QVz" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="226" showattsigs="601" x="109" fillcolor="#ffffc0" y="482" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="m1ftLgsc5LXQ" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="#ff0000" /> - <interfacewidget usesdiagramfillcolor="0" width="411" x="17" fillcolor="#ffffc0" y="355" drawascircle="0" showopsigs="601" linewidth="none" height="81" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="DdhFJyNQcQSm" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <interfacewidget usesdiagramfillcolor="1" width="127" x="498" fillcolor="none" y="324" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="QbirDWtuKiBS" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="none" /> - <interfacewidget usesdiagramfillcolor="1" width="113" x="690" fillcolor="none" y="182" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="yBk69LKYzyaX" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="0" width="428" showattsigs="601" x="504" fillcolor="#ffffc0" y="464" drawascircle="0" showopsigs="601" linewidth="none" height="72" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="gGNje78ValnI" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="1" width="62" showattsigs="601" x="862" fillcolor="none" y="200" showopsigs="601" linewidth="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="UY72E0ULeXyT" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <classwidget usesdiagramfillcolor="0" width="175" showattsigs="601" x="135" fillcolor="#ffffc0" y="236" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="OcpJQugxHW8F" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <interfacewidget usesdiagramfillcolor="0" width="368" x="643" fillcolor="#ffffc0" y="291" drawascircle="0" showopsigs="601" linewidth="none" height="81" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="zhVfgpENwAeN" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="404" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="qxq04A8rywIb" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="559" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="w884b40YcIag" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="714" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="B92ON93E7uE9" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="145" showattsigs="601" x="869" fillcolor="#ffffc0" y="747" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="2MyyGGXAPfEy" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="411" showattsigs="601" x="17" fillcolor="#ffffc0" y="582" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="haoxC1oM2QVz" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="226" showattsigs="601" x="109" fillcolor="#ffffc0" y="482" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="m1ftLgsc5LXQ" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <interfacewidget usesdiagramfillcolor="0" width="411" x="17" fillcolor="#ffffc0" y="355" drawascircle="0" showopsigs="601" linewidth="none" height="81" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="DdhFJyNQcQSm" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <interfacewidget usesdiagramfillcolor="1" width="127" x="498" fillcolor="none" y="324" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="QbirDWtuKiBS" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <interfacewidget usesdiagramfillcolor="1" width="113" x="690" fillcolor="none" y="182" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="yBk69LKYzyaX" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </widgets> <messages/> <associations> @@ -527,7 +527,7 @@ <endpoint endx="428" endy="409" /> <point x="541" y="409" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="66" x="448" fillcolor="none" y="410" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="#" isinstance="0" xmi.id="zbXkpXlCS0lr" text="factory" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="66" x="448" fillcolor="none" y="410" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="#" isinstance="0" xmi.id="vasmP4T4bt7x" text="factory" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="DdhFJyNQcQSm" widgetaid="m1ftLgsc5LXQ" xmi.id="M1DRAGcxqQmM" type="511" linecolor="none" > <linepath> @@ -576,8 +576,8 @@ </diagram> <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1042" snapy="10" showatts="1" xmi.id="BbQfy5JEWUGf" documentation="" type="1" showops="1" showpackage="0" name="Class graph classes" localid="" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="860" > <widgets> - <classwidget usesdiagramfillcolor="0" width="386" showattsigs="601" x="304" fillcolor="#ffffc0" y="533" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="pwXaDeUXVlRv" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="168" showattsigs="601" x="201" fillcolor="#ffffc0" y="283" showopsigs="601" linewidth="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="85ASUVIYu8Rm" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="386" showattsigs="601" x="304" fillcolor="#ffffc0" y="533" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="pwXaDeUXVlRv" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="168" showattsigs="601" x="201" fillcolor="#ffffc0" y="283" showopsigs="601" linewidth="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="85ASUVIYu8Rm" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> </widgets> <messages/> <associations/> @@ -597,30 +597,30 @@ </diagram> <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1042" snapy="10" showatts="1" xmi.id="HBjs7fL0WfO5" documentation="" type="1" showops="1" showpackage="0" name="General classes" localid="" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="860" > <widgets> - <enumwidget usesdiagramfillcolor="0" width="162" x="98" fillcolor="#ffffc0" y="44" linewidth="none" height="108" usefillcolor="1" isinstance="0" xmi.id="58hyBKGITKzU" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <enumwidget usesdiagramfillcolor="0" width="183" x="300" fillcolor="#ffffc0" y="44" linewidth="none" height="72" usefillcolor="1" isinstance="0" xmi.id="o5RT7D5TyDem" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> + <enumwidget usesdiagramfillcolor="0" width="162" x="98" fillcolor="#ffffc0" y="44" linewidth="none" height="108" usefillcolor="1" isinstance="0" xmi.id="58hyBKGITKzU" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <enumwidget usesdiagramfillcolor="0" width="183" x="300" fillcolor="#ffffc0" y="44" linewidth="none" height="72" usefillcolor="1" isinstance="0" xmi.id="o5RT7D5TyDem" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> </widgets> <messages/> <associations/> </diagram> <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1042" snapy="10" showatts="1" xmi.id="37Q7pvtspjUI" documentation="" type="1" showops="1" showpackage="0" name="Graph classes" localid="" showstereotype="0" showscope="1" snapcsgrid="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="860" > <widgets> - <classwidget usesdiagramfillcolor="0" width="330" showattsigs="601" x="324" fillcolor="#ffffc0" y="228" showopsigs="601" linewidth="none" height="162" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="FVtbgO8sd2ii" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <enumwidget usesdiagramfillcolor="0" width="172" x="62" fillcolor="#ffffc0" y="90" linewidth="none" height="90" usefillcolor="1" isinstance="0" xmi.id="4F09aHCjljSA" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="#ff0000" /> - <interfacewidget usesdiagramfillcolor="0" width="375" x="622" fillcolor="#ffffc0" y="433" drawascircle="0" showopsigs="601" linewidth="none" height="63" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="2Mzl2VgeffI0" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="436" showattsigs="601" x="481" fillcolor="#ffffc0" y="546" drawascircle="0" showopsigs="601" linewidth="none" height="72" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="taceG4p7AY1k" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="236" showattsigs="601" x="70" fillcolor="#ffffc0" y="228" showopsigs="601" linewidth="none" height="189" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="672lM6F9KhcI" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="375" showattsigs="601" x="623" fillcolor="#ffffc0" y="766" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="ZUDChgtO8jSy" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="330" showattsigs="601" x="324" fillcolor="#ffffc0" y="228" showopsigs="601" linewidth="none" height="162" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="FVtbgO8sd2ii" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <enumwidget usesdiagramfillcolor="0" width="172" x="62" fillcolor="#ffffc0" y="90" linewidth="none" height="90" usefillcolor="1" isinstance="0" xmi.id="4F09aHCjljSA" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> + <interfacewidget usesdiagramfillcolor="0" width="375" x="622" fillcolor="#ffffc0" y="433" drawascircle="0" showopsigs="601" linewidth="none" height="63" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="2Mzl2VgeffI0" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="436" showattsigs="601" x="481" fillcolor="#ffffc0" y="546" drawascircle="0" showopsigs="601" linewidth="none" height="72" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="taceG4p7AY1k" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="236" showattsigs="601" x="70" fillcolor="#ffffc0" y="228" showopsigs="601" linewidth="none" height="189" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="672lM6F9KhcI" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="375" showattsigs="601" x="623" fillcolor="#ffffc0" y="766" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="ZUDChgtO8jSy" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> <enumwidget usesdiagramfillcolor="0" width="110" x="434" fillcolor="#ffffc0" y="54" linewidth="none" height="126" usefillcolor="1" isinstance="0" xmi.id="BQqAv02HTM6x" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="309" showattsigs="601" x="729" fillcolor="#ffffc0" y="234" showopsigs="601" linewidth="none" height="108" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="PILb9kCQnOZd" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="309" showattsigs="601" x="729" fillcolor="#ffffc0" y="234" showopsigs="601" linewidth="none" height="108" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="PILb9kCQnOZd" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> <enumwidget usesdiagramfillcolor="0" width="136" x="815" fillcolor="#ffffc0" y="0" linewidth="none" height="180" usefillcolor="1" isinstance="0" xmi.id="uzw9DITFgRm2" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> - <interfacewidget usesdiagramfillcolor="0" width="338" x="19" fillcolor="#ffffc0" y="440" drawascircle="0" showopsigs="601" linewidth="none" height="81" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="H9NLXsg0Hncp" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="250" showattsigs="601" x="63" fillcolor="#ffffc0" y="554" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="GIPhxHkszygs" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="319" showattsigs="601" x="29" fillcolor="#ffffc0" y="646" showopsigs="601" linewidth="none" height="63" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="vJ8WmfZPiVQE" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="156" showattsigs="601" x="296" fillcolor="#ffffc0" y="766" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="leYQpk5LWBlE" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <classwidget usesdiagramfillcolor="0" width="147" showattsigs="601" x="464" fillcolor="#ffffc0" y="766" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="cQGGEupKkEKw" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <interfacewidget usesdiagramfillcolor="1" width="127" x="426" fillcolor="none" y="423" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="QbirDWtuKiBS" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="none" /> - <enumwidget usesdiagramfillcolor="0" width="112" x="259" fillcolor="#ffffc0" y="90" linewidth="none" height="90" usefillcolor="1" isinstance="0" xmi.id="VDAdlQhZ750q" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,75,1,0,0,0,0" linecolor="#ff0000" /> + <interfacewidget usesdiagramfillcolor="0" width="338" x="19" fillcolor="#ffffc0" y="440" drawascircle="0" showopsigs="601" linewidth="none" height="81" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="H9NLXsg0Hncp" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="250" showattsigs="601" x="63" fillcolor="#ffffc0" y="554" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="GIPhxHkszygs" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="319" showattsigs="601" x="29" fillcolor="#ffffc0" y="646" showopsigs="601" linewidth="none" height="63" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="vJ8WmfZPiVQE" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="156" showattsigs="601" x="296" fillcolor="#ffffc0" y="766" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="leYQpk5LWBlE" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <classwidget usesdiagramfillcolor="0" width="147" showattsigs="601" x="464" fillcolor="#ffffc0" y="766" showopsigs="601" linewidth="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="cQGGEupKkEKw" showoperations="1" showpackage="0" showscope="1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" /> + <interfacewidget usesdiagramfillcolor="1" width="127" x="426" fillcolor="none" y="423" drawascircle="0" showopsigs="601" linewidth="none" height="54" usefillcolor="1" showpubliconly="0" isinstance="0" xmi.id="QbirDWtuKiBS" showoperations="1" showpackage="0" showscope="1" showstereotype="1" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <enumwidget usesdiagramfillcolor="0" width="112" x="259" fillcolor="#ffffc0" y="90" linewidth="none" height="90" usefillcolor="1" isinstance="0" xmi.id="VDAdlQhZ750q" showpackage="0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="#ff0000" /> </widgets> <messages/> <associations> @@ -641,21 +641,21 @@ <startpoint startx="729" starty="270" /> <endpoint endx="654" endy="268" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="76" x="653" fillcolor="none" y="246" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="v0msW7sgOVcJ" text="incoming" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="76" x="653" fillcolor="none" y="246" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="6iFUQNA8O29G" text="incoming" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="2" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="uzw9DITFgRm2" widgetaid="PILb9kCQnOZd" xmi.id="eaFFJAnvNrxh" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > <linepath> <startpoint startx="883" starty="234" /> <endpoint endx="883" endy="180" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="43" x="838" fillcolor="none" y="182" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="XKgRPSjN3G7s" text="type" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="43" x="838" fillcolor="none" y="182" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="37WQwMtpwlbJ" text="type" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="3" indexa="2" visibilityB="200" totalcountb="4" indexb="2" linewidth="none" widgetbid="FVtbgO8sd2ii" widgetaid="PILb9kCQnOZd" xmi.id="xg3pIv6gVUUO" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > <linepath> <startpoint startx="729" starty="306" /> <endpoint endx="654" endy="309" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="75" x="649" fillcolor="none" y="309" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="ns2Esn3lmpbG" text="outgoing" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="75" x="649" fillcolor="none" y="309" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="n4MMwRI29XWX" text="outgoing" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="3" indexa="1" totalcountb="4" indexb="3" linewidth="none" widgetbid="FVtbgO8sd2ii" widgetaid="2Mzl2VgeffI0" xmi.id="m7wwiwCSxVGR" type="502" linecolor="none" > <linepath> @@ -682,7 +682,7 @@ <endpoint endx="357" endy="494" /> <point x="516" y="494" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="66" x="359" fillcolor="none" y="496" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="#" isinstance="0" xmi.id="icdjqjacbcqS" text="factory" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="66" x="359" fillcolor="none" y="496" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="#" isinstance="0" xmi.id="uefHfmXit36n" text="factory" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="672lM6F9KhcI" widgetaid="H9NLXsg0Hncp" xmi.id="p0keVPRrye6f" type="502" linecolor="none" > <linepath> @@ -747,21 +747,21 @@ <startpoint startx="489" starty="228" /> <endpoint endx="489" endy="180" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="41" x="446" fillcolor="none" y="182" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="OtDAgpQaGKsD" text="type" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="41" x="446" fillcolor="none" y="182" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="PzcKiCdTExqA" text="type" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="3" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="4F09aHCjljSA" widgetaid="672lM6F9KhcI" xmi.id="zRuotD7A5ZEx" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > <linepath> <startpoint startx="148" starty="228" /> <endpoint endx="148" endy="180" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="56" x="150" fillcolor="none" y="182" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="431nLOrSgmJx" text="format" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="56" x="150" fillcolor="none" y="182" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="O8CVfg2XLio0" text="format" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> <assocwidget totalcounta="3" indexa="2" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="VDAdlQhZ750q" widgetaid="672lM6F9KhcI" xmi.id="dMwwhlSnUoPh" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" > <linepath> <startpoint startx="227" starty="228" /> <endpoint endx="315" endy="180" /> </linepath> - <floatingtext usesdiagramfillcolor="1" width="99" x="273" fillcolor="none" y="196" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="ox6exKnKRPMI" text="imageFormat" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <floatingtext usesdiagramfillcolor="1" width="99" x="273" fillcolor="none" y="196" linewidth="none" posttext="" role="710" height="22" usefillcolor="1" pretext="-" isinstance="0" xmi.id="SJgKMk7kki2Q" text="imageFormat" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </assocwidget> </associations> </diagram> @@ -775,16 +775,16 @@ <notewidget usesdiagramfillcolor="1" width="194" x="214" fillcolor="none" y="455" linewidth="none" height="50" usefillcolor="1" isinstance="0" xmi.id="pnt8L3mW94H6" text="Writer can be used to generate several graphs." usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </widgets> <messages> - <messagewidget usesdiagramfillcolor="1" width="412" x="123" fillcolor="none" y="98" operation="rSVt3npBuRwI" linewidth="none" widgetbid="xkkShjnglZDn" height="32" usefillcolor="1" seqnum="" textid="17kr4cTMN71P" widgetaid="8k1etAbDCjb4" isinstance="0" xmi.id="rSVt3npBuRwI" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > - <floatingtext usesdiagramfillcolor="1" width="233" x="128" fillcolor="none" y="76" linewidth="none" posttext="" role="704" height="22" usefillcolor="1" pretext="" isinstance="0" xmi.id="17kr4cTMN71P" text=": this(options : GraphWriterOptions)" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> + <messagewidget usesdiagramfillcolor="1" width="426" x="123" fillcolor="none" y="98" operation="rSVt3npBuRwI" linewidth="none" widgetbid="xkkShjnglZDn" height="32" usefillcolor="1" seqnum="" textid="17kr4cTMN71P" widgetaid="8k1etAbDCjb4" isinstance="0" xmi.id="rSVt3npBuRwI" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > + <floatingtext usesdiagramfillcolor="1" width="233" x="128" fillcolor="none" y="76" linewidth="none" posttext="" role="704" height="22" usefillcolor="1" pretext="" isinstance="0" xmi.id="17kr4cTMN71P" text=": this(options : GraphOptions)" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </messagewidget> - <messagewidget usesdiagramfillcolor="1" width="412" x="123" fillcolor="none" y="284" operation="qt3yjRHa0HmR" linewidth="none" widgetbid="xkkShjnglZDn" height="73" usefillcolor="1" seqnum="" textid="8R7413dyF3lY" widgetaid="8k1etAbDCjb4" isinstance="0" xmi.id="qt3yjRHa0HmR" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > + <messagewidget usesdiagramfillcolor="1" width="426" x="123" fillcolor="none" y="284" operation="qt3yjRHa0HmR" linewidth="none" widgetbid="xkkShjnglZDn" height="73" usefillcolor="1" seqnum="" textid="8R7413dyF3lY" widgetaid="8k1etAbDCjb4" isinstance="0" xmi.id="qt3yjRHa0HmR" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > <floatingtext usesdiagramfillcolor="1" width="306" x="128" fillcolor="none" y="262" linewidth="none" posttext="" role="704" height="22" usefillcolor="1" pretext="" isinstance="0" xmi.id="8R7413dyF3lY" text=": createGraphWriter(outputs : OutputStream[])" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </messagewidget> <messagewidget usesdiagramfillcolor="1" width="368" x="527" fillcolor="none" y="304" operation="RhFDP34VCWM4" linewidth="none" widgetbid="5sYVesgRYawR" height="32" usefillcolor="1" seqnum="" textid="KpN7JYvOVJ7T" widgetaid="xkkShjnglZDn" isinstance="0" xmi.id="RhFDP34VCWM4" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > <floatingtext usesdiagramfillcolor="1" width="399" x="532" fillcolor="none" y="282" linewidth="none" posttext="" role="704" height="22" usefillcolor="1" pretext="" isinstance="0" xmi.id="KpN7JYvOVJ7T" text=": this(factory : GraphWriterFactory, outputs : OutputStream[])" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </messagewidget> - <messagewidget usesdiagramfillcolor="1" width="772" x="123" fillcolor="none" y="537" operation="nXwHg6RtyC4B" linewidth="none" widgetbid="5sYVesgRYawR" height="32" usefillcolor="1" seqnum="" textid="CUWS73hkulgU" widgetaid="8k1etAbDCjb4" isinstance="0" xmi.id="nXwHg6RtyC4B" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > + <messagewidget usesdiagramfillcolor="1" width="786" x="123" fillcolor="none" y="537" operation="nXwHg6RtyC4B" linewidth="none" widgetbid="5sYVesgRYawR" height="32" usefillcolor="1" seqnum="" textid="CUWS73hkulgU" widgetaid="8k1etAbDCjb4" isinstance="0" xmi.id="nXwHg6RtyC4B" sequencemessagetype="1000" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" > <floatingtext usesdiagramfillcolor="1" width="338" x="249" fillcolor="none" y="515" linewidth="none" posttext="" role="704" height="22" usefillcolor="1" pretext="" isinstance="0" xmi.id="CUWS73hkulgU" text=": generateGraph(vertices : Vertex[], edges : Edge[])" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,50,0,0,0,0,0" linecolor="none" /> </messagewidget> </messages> @@ -820,8 +820,8 @@ <widgets> <componentwidget usesdiagramfillcolor="1" width="223" x="380" fillcolor="none" y="310" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="3XF2INiTN1r0" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="none" /> <componentwidget usesdiagramfillcolor="0" width="230" x="183" fillcolor="#ffffc0" y="447" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="JrRpdxcmaX5Z" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> - <componentwidget usesdiagramfillcolor="0" width="201" x="568" fillcolor="#ffffc0" y="447" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="oCHM2Pm3w15E" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> - <componentwidget usesdiagramfillcolor="0" width="247" x="166" fillcolor="#ffffc0" y="158" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="OmgklXk4NCu0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,1,0,0,0,0" linecolor="#ff0000" /> + <componentwidget usesdiagramfillcolor="0" width="201" x="568" fillcolor="#ffffc0" y="447" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="oCHM2Pm3w15E" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> + <componentwidget usesdiagramfillcolor="0" width="247" x="166" fillcolor="#ffffc0" y="158" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="OmgklXk4NCu0" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> <componentwidget usesdiagramfillcolor="0" width="279" x="568" fillcolor="#ffffc0" y="158" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="9Wmh3pGp1WC1" usesdiagramusefillcolor="0" font="Sans Serif,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" /> <componentwidget usesdiagramfillcolor="1" width="159" x="98" fillcolor="none" y="310" linewidth="none" height="66" usefillcolor="1" isinstance="0" xmi.id="JeCajbMGRVUn" usesdiagramusefillcolor="1" font="Sans Serif,10,-1,0,75,0,0,0,0,0" linecolor="none" /> </widgets> @@ -872,7 +872,7 @@ </UML:Model> </XMI.content> <XMI.extensions xmi.extender="umbrello" > - <docsettings viewid="i9im14LKfTmZ" documentation="" uniqueid="0HtRJDvsLArx" /> + <docsettings viewid="37Q7pvtspjUI" documentation="" uniqueid="qWVYkDfsYxos" /> <listview> <listitem open="1" type="800" label="Näytöt" > <listitem open="1" type="801" id="Logical View" > @@ -883,10 +883,6 @@ <listitem open="0" type="807" id="i9im14LKfTmZ" label="Module graph classes" /> <listitem open="0" type="807" id="VfRLtV4Z9Ptg" label="Source listing classes" /> <listitem open="0" type="810" id="cZsSOYL0vMYc" label="Graph generation" /> - <listitem open="0" type="813" id="m1ftLgsc5LXQ" > - <listitem open="0" type="814" id="xswAJre2CrPi" /> - <listitem open="0" type="815" id="mZ1wtQujXunn" /> - </listitem> <listitem open="0" type="813" id="taceG4p7AY1k" > <listitem open="0" type="814" id="jYgSGEsqagKv" /> <listitem open="0" type="814" id="4Bqtwxx8p0pI" /> @@ -896,6 +892,10 @@ <listitem open="0" type="814" id="ZmI5M1aN978M" /> <listitem open="0" type="815" id="liEDYXNQ5pTO" /> </listitem> + <listitem open="0" type="813" id="m1ftLgsc5LXQ" > + <listitem open="0" type="814" id="xswAJre2CrPi" /> + <listitem open="0" type="815" id="mZ1wtQujXunn" /> + </listitem> <listitem open="0" type="813" id="gGNje78ValnI" > <listitem open="0" type="814" id="hcALY1fmWlEG" /> <listitem open="0" type="814" id="9QXgkpqgA1Du" /> @@ -905,16 +905,13 @@ <listitem open="0" type="815" id="RDl3vCbldkit" /> </listitem> <listitem open="0" type="813" id="85ASUVIYu8Rm" /> - <listitem open="1" type="813" id="OcpJQugxHW8F" > - <listitem open="0" type="814" id="gOHG3iCLbStZ" /> + <listitem open="1" type="813" id="vJ8WmfZPiVQE" > + <listitem open="0" type="815" id="rSVt3npBuRwI" /> + <listitem open="0" type="815" id="qt3yjRHa0HmR" /> </listitem> <listitem open="0" type="813" id="haoxC1oM2QVz" > <listitem open="0" type="815" id="2SrUGMptabML" /> </listitem> - <listitem open="1" type="813" id="vJ8WmfZPiVQE" > - <listitem open="0" type="815" id="rSVt3npBuRwI" /> - <listitem open="0" type="815" id="qt3yjRHa0HmR" /> - </listitem> <listitem open="0" type="813" id="ZUDChgtO8jSy" > <listitem open="0" type="815" id="nXwHg6RtyC4B" /> </listitem> @@ -943,6 +940,9 @@ <listitem open="0" type="813" id="B92ON93E7uE9" > <listitem open="0" type="815" id="JpwoOQQ4RzaO" /> </listitem> + <listitem open="1" type="813" id="OcpJQugxHW8F" > + <listitem open="0" type="814" id="gOHG3iCLbStZ" /> + </listitem> <listitem open="0" type="813" id="098RWfwZqN4L" > <listitem open="0" type="815" id="CMMapfT5KiQP" /> </listitem> @@ -972,14 +972,6 @@ <listitem open="0" type="813" id="qxq04A8rywIb" > <listitem open="0" type="815" id="KoEO9zJwTXuD" /> </listitem> - <listitem open="0" type="817" id="zhVfgpENwAeN" > - <listitem open="0" type="815" id="eGKXDits9Kho" /> - <listitem open="0" type="815" id="fA2So7Re6pf2" /> - </listitem> - <listitem open="0" type="817" id="DdhFJyNQcQSm" > - <listitem open="0" type="815" id="QR4frQ4pllIy" /> - <listitem open="0" type="815" id="GL3CAg7Qy0PF" /> - </listitem> <listitem open="0" type="817" id="2Mzl2VgeffI0" > <listitem open="0" type="815" id="kluUKuajlkAu" /> </listitem> @@ -988,6 +980,14 @@ <listitem open="0" type="815" id="L1C3szmMnzpw" /> </listitem> <listitem open="0" type="817" id="yBk69LKYzyaX" /> + <listitem open="0" type="817" id="DdhFJyNQcQSm" > + <listitem open="0" type="815" id="QR4frQ4pllIy" /> + <listitem open="0" type="815" id="GL3CAg7Qy0PF" /> + </listitem> + <listitem open="0" type="817" id="zhVfgpENwAeN" > + <listitem open="0" type="815" id="eGKXDits9Kho" /> + <listitem open="0" type="815" id="fA2So7Re6pf2" /> + </listitem> <listitem open="0" type="817" id="QbirDWtuKiBS" /> <listitem open="0" type="830" id="Datatypes" > <listitem open="1" type="829" id="DaFOT7jBVtui" />
--- a/trunk/src/docgen/docgen.d Tue Oct 16 22:13:37 2007 +0200 +++ b/trunk/src/docgen/docgen.d Tue Oct 16 22:20:37 2007 +0200 @@ -2,7 +2,7 @@ * Author: Jari-Matti Mäkelä * License: GPL3 */ -module trunk.src.docgen.docgen; +module docgen.docgen; import docgen.modulegraph.writer;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/misc/parser.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,259 @@ +/** + * Author: Aziz Köksal & Jari-Matti Mäkelä + * License: GPL3 + */ +module docgen.misc.parser; + +import docgen.graphutils.writers; + +import dil.Parser; +import dil.Module; +import dil.Settings; +import tango.text.Regex : RegExp = Regex; +import tango.io.FilePath; +import tango.io.FileConst; +import tango.text.Util; +import common; +debug import tango.io.Stdout; + +class Parser { + private static string findModulePath(string moduleFQN, string[] importPaths) { + string modulePath; + + foreach (path; importPaths) { + modulePath = path ~ (path[$-1] == dirSep ? "" : [dirSep]) ~ moduleFQN ~ ".d"; + + // TODO: also check for *.di? + + if ((new FilePath(modulePath)).exists()) { + debug Stdout(" * File for ")(moduleFQN)(" found: ")(modulePath).newline; + return modulePath; + } + } + + debug Stdout(" * ")(moduleFQN)(" does not exist in imports")().newline()(); + return null; + } + + /** + * Imports the transitive closure of imports starting from "filePath", + * limited by recursionDepth. + * + * The search can be filtered by providing a list of regexps that match the + * FQNs of modules to be ignored. + * + * Params: + * filePath = Path of the file to parse + * importPaths = Directories to look for imports + * strRegexps = Filter regexps + * IncludeUnlocatableModules = Call the delegate also for unlocatable files + * recursionDepth = How many levels of imports to follow (-1 = no limit) + * mdg = Delegate that gets called for every module found + * idg = Delegate that gets called for every import found + * modules = List of parsed modules + */ + public static void loadModules(string filePath, string[] importPaths, string[] strRegexps, + bool IncludeUnlocatableModules, int recursionDepth, + void delegate (string fqn, string path, Module) mdg, + void delegate (Module imported, Module importer) idg, + out Module[] modules) { + + loadModules([filePath], importPaths, strRegexps, IncludeUnlocatableModules, + recursionDepth, mdg, idg, modules); + } + + /** + * Imports the transitive closure of imports starting from "filePath", + * limited by recursionDepth. + * + * The search can be filtered by providing a list of regexps that match the + * FQNs of modules to be ignored. + * + * Params: + * filePaths = Paths of the files to parse + * importPaths = Directories to look for imports + * strRegexps = Filter regexps + * IncludeUnlocatableModules = Call the delegate also for unlocatable files + * recursionDepth = How many levels of imports to follow (-1 = no limit) + * mdg = Delegate that gets called for every module found + * idg = Delegate that gets called for every import found + * modules = List of parsed modules + */ + public static void loadModules(string[] filePaths, string[] importPaths, string[] strRegexps, + bool IncludeUnlocatableModules, int recursionDepth, + void delegate (string fqn, string path, Module) mdg, + void delegate (Module imported, Module importer) idg, + out Module[] modules) { + // Initialize regular expressions. + RegExp[] regexps; + foreach (strRegexp; strRegexps) + regexps ~= new RegExp(strRegexp); + + // Add directory of file and global directories to import paths. + foreach(filePath; filePaths) { + auto fileDir = (new FilePath(filePath)).folder(); + if (fileDir.length) + importPaths ~= fileDir; + } + + importPaths ~= GlobalSettings.importPaths; + + debug foreach(path; importPaths) { + Stdout("Import path: ")(path).newline; + } + + Module[string] loadedModules; + + Module loadModule(string moduleFQNPath, int depth) { + if (depth == 0) return null; + + debug Stdout("Loading ")(moduleFQNPath).newline; + + // Return already loaded module. + auto mod_ = moduleFQNPath in loadedModules; + if (mod_ !is null) { + debug Stdout(" Already loaded.")(moduleFQNPath).newline; + return *mod_; + } + + auto FQN = replace(moduleFQNPath.dup, dirSep, '.'); + + // Ignore module names matching regular expressions. + foreach (rx; regexps) + if (rx.test(FQN)) return null; + + auto modulePath = findModulePath(moduleFQNPath, importPaths); + //foreach(filePath; filePaths) + //if (moduleFQNPath == filePath) modulePath = filePath; + + debug Stdout(" FQN ")(FQN).newline; + debug Stdout(" Module path ")(modulePath).newline; + + Module mod = null; + + if (modulePath is null) { + if (IncludeUnlocatableModules) + mdg(FQN, moduleFQNPath, null); + } else { + mod = new Module(modulePath); + loadedModules[moduleFQNPath] = mod; + mod.parse(); + + mdg(FQN, moduleFQNPath, mod); + + auto moduleFQNs = mod.getImports(); + + foreach (moduleFQN_; moduleFQNs) { + auto loaded_mod = loadModule(moduleFQN_, depth == -1 ? depth : depth-1); + + if (loaded_mod !is null) + idg(loaded_mod, mod); + } + } + + return mod; + } // loadModule + + foreach(filePath; filePaths) + loadModule(filePath, recursionDepth); + + // Finished loading modules. + + // Ordered list of loaded modules. + modules = loadedModules.values; + } + + + /+ Old version - deprecated + + /** + * Imports the transitive closure of imports starting from "filePath". + * + * The search can be filtered by providing a list of regexps that match the + * FQNs of modules to be ignored. + * + * TODO: integrate better with the docgen stuff - there's no need to + * scan&parse several times + */ + public static void loadModules2(string filePath, string[] importPaths, + string[] strRegexps, + bool IncludeUnlocatableModules, + out Vertex[] vertices, out Edge[] edges, + out Module[] modules) { + // Init regular expressions. + RegExp[] regexps; + foreach (strRegexp; strRegexps) + regexps ~= new RegExp(strRegexp); + + // Add directory of file and global directories to import paths. + auto fileDir = (new FilePath(filePath)).folder(); + if (fileDir.length) + importPaths ~= fileDir; + importPaths ~= GlobalSettings.importPaths; + + Vertex[string] loadedModules; + Edge[] _edges; + Module[] _modules; + + int modCounter = 0; + + void addModule(Vertex mod) { + assert(!(mod.location in loadedModules)); + + mod.id = modCounter++; + loadedModules[mod.location] = mod; + } + + Vertex loadModule(string moduleFQNPath) { + // Return already loaded module. + auto mod_ = moduleFQNPath in loadedModules; + if (mod_ !is null) return *mod_; + + // Ignore module names matching regular expressions. + foreach (rx; regexps) + if (rx.test(replace(moduleFQNPath, dirSep, '.'))) + return null; + + auto modulePath = findModulePath(moduleFQNPath, importPaths); + if (moduleFQNPath == filePath) modulePath = filePath; + auto FQN = replace(moduleFQNPath, dirSep, '.'); + + Vertex mod; + + if (modulePath is null) { + if (IncludeUnlocatableModules) { + mod = new Vertex(FQN, moduleFQNPath); + addModule(mod); + } + } else { + mod = new Vertex(FQN, moduleFQNPath); + addModule(mod); + + auto m = new Module(modulePath); + _modules ~= m; + m.parse(); + + auto moduleFQNs = m.getImports(); + + foreach (moduleFQN_; moduleFQNs) { + auto loaded_mod = loadModule(moduleFQN_); + + if (loaded_mod !is null) + loaded_mod.addChild(mod); + } + } + + return mod; + } // loadModule + + loadModule(filePath); + + // Finished loading modules. + + // Ordered list of loaded modules. + vertices = loadedModules.values; + edges = _edges; + modules = _modules; + } + +/ +} \ No newline at end of file
--- a/trunk/src/docgen/modulegraph/writer.d Tue Oct 16 22:13:37 2007 +0200 +++ b/trunk/src/docgen/modulegraph/writer.d Tue Oct 16 22:20:37 2007 +0200 @@ -18,115 +18,11 @@ alias FileConst.PathSeparatorChar dirSep; class ModuleGraphGenerator { - private static string findModulePath(string moduleFQN, string[] importPaths) { - string modulePath; - - foreach (path; importPaths) { - modulePath = path ~ (path[$-1] == dirSep ? "" : [dirSep]) - ~ moduleFQN ~ ".d"; - - // TODO: also check for *.di? - if ((new FilePath(modulePath)).exists()) - return modulePath; - } - - return null; - } - - /** - * Imports the transitive closure of imports starting from "filePath". - * - * The search can be filtered by providing a list of regexps that match the - * FQNs of modules to be ignored. - * - * TODO: integrate better with the docgen stuff - there's no need to - * scan&parse several times - */ - public static void loadModules(string filePath, string[] importPaths, - string[] strRegexps, - bool IncludeUnlocatableModules, - out Vertex[] vertices, out Edge[] edges, - out Module[] modules) { - // Init regular expressions. - RegExp[] regexps; - foreach (strRegexp; strRegexps) - regexps ~= new RegExp(strRegexp); - - // Add directory of file and global directories to import paths. - auto fileDir = (new FilePath(filePath)).folder(); - if (fileDir.length) - importPaths ~= fileDir; - importPaths ~= GlobalSettings.importPaths; - - Vertex[string] loadedModules; - Edge[] _edges; - Module[] _modules; - - int modCounter = 0; - - void addModule(Vertex mod) { - assert(!(mod.location in loadedModules)); - - mod.id = modCounter++; - loadedModules[mod.location] = mod; - } - - Vertex loadModule(string moduleFQNPath) { - // Return already loaded module. - auto mod_ = moduleFQNPath in loadedModules; - if (mod_ !is null) return *mod_; - - // Ignore module names matching regular expressions. - foreach (rx; regexps) - if (rx.test(replace(moduleFQNPath, dirSep, '.'))) - return null; - - auto modulePath = findModulePath(moduleFQNPath, importPaths); - if (moduleFQNPath == filePath) modulePath = filePath; - auto FQN = replace(moduleFQNPath, dirSep, '.'); - - Vertex mod; - - if (modulePath is null) { - if (IncludeUnlocatableModules) { - mod = new Vertex(FQN, moduleFQNPath); - addModule(mod); - } - } else { - mod = new Vertex(FQN, moduleFQNPath); - addModule(mod); - - auto m = new Module(modulePath); - _modules ~= m; - m.parse(); - - auto moduleFQNs = m.getImports(); - - foreach (moduleFQN_; moduleFQNs) { - auto loaded_mod = loadModule(moduleFQN_); - - if (loaded_mod !is null) - loaded_mod.addChild(mod); - } - } - - return mod; - } // loadModule - - loadModule(filePath); - - // Finished loading modules. - - // Ordered list of loaded modules. - vertices = loadedModules.values; - edges = _edges; - modules = _modules; - } /** * TODO */ - static void generateGraph(GraphWriterOptions *options) { + static void generateGraph(GraphOptions *options) { auto gwf = new DefaultGraphWriterFactory(*options); auto writer = gwf.createGraphWriter([Stdout.stream]);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/tests/graphs.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,98 @@ +/** + * Author: Jari-Matti Mäkelä + * License: GPL3 + */ +module docgen.tests.graphs; + +import docgen.graphutils.writers; +import tango.io.Stdout; +import tango.io.FileConduit; + +void saveDefaultGraph(Vertex[] vertices, Edge[] edges, char[] fname) { + GraphOptions test; + test.graphFormat = GraphFormat.Dot; + test.HighlightCyclicVertices = true; + //test.format = GraphOutputFormat.ModuleNames; + //test.format = GraphOutputFormat.ModulePaths; + test.depth = 5; + + auto gwf = new DefaultGraphWriterFactory(test); + auto file = new FileConduit("docgen/teststuff/" ~ fname, FileConduit.WriteCreate); + auto file2 = new FileConduit("docgen/teststuff/" ~ fname ~ "-2", FileConduit.WriteCreate); + auto writer = gwf.createGraphWriter( [ file2, file] ); + + writer(vertices, edges); + + file.close(); + file2.close(); +} + +// no edges +//@unittest +void graph1() { + auto a = new Vertex("mod_a", "path.to.mod_a", 1); + auto b = new Vertex("mod_b", "path.to.mod_b", 2); + auto c = new Vertex("mod_c", "path.to.mod_c", 3); + + saveDefaultGraph( [a,b,c], null, "graph1.dot" ); +} + + +// simple tree structure +//@unittest +void graph2() { + auto a = new Vertex("mod_a", "path.to.mod_a", 1); + auto b = new Vertex("mod_b", "path.to.mod_b", 2); + auto c = new Vertex("mod_c", "path.to.mod_c", 3); + auto d = new Vertex("mod_d", "path.to.mod_d", 4); + + Edge[] edges; + edges ~= a.addChild(b); + edges ~= a.addChild(c); + edges ~= c.addChild(d); + + saveDefaultGraph( [a,b,c,d], edges, "graph2.dot" ); +} + +// circular imports +//@unittest +void graph3() { + auto a = new Vertex("mod_a", "path.to.mod_a", 1); + auto b = new Vertex("mod_b", "path.to.mod_b", 2); + auto c = new Vertex("mod_c", "path.to.mod_c", 3); + auto d = new Vertex("mod_d", "path.to.mod_d", 4); + + Edge[] edges; + edges ~= a.addChild(b); + edges ~= b.addChild(c); + edges ~= c.addChild(a); + + saveDefaultGraph( [a,b,c,d], edges, "graph3.dot" ); +} + +// more complex graph +//@unittest +void graph4() { + auto a = new Vertex("mod_a", "path.to.mod_a", 1); + auto b = new Vertex("mod_b", "path.to.mod_b", 2); + auto c = new Vertex("mod_c", "path.to.mod_c", 3); + auto d = new Vertex("mod_d", "path.to.mod_d", 4); + auto e = new Vertex("mod_e", "path.to.mod_e", 5); + auto f = new Vertex("mod_f", "path.to.mod_f", 6); + auto g = new Vertex("mod_g", "path.to.mod_g", 7); + + Edge[] edges; + edges ~= a.addChild(b); + edges ~= b.addChild(c); + edges ~= c.addChild(a); + edges ~= d.addChild(a); + edges ~= e.addChild(a); + edges ~= b.addChild(d); + edges ~= b.addChild(e); + edges ~= g.addChild(a); + edges ~= b.addChild(f); + edges ~= g.addChild(f); + edges ~= a.addChild(g); + + saveDefaultGraph( [a,b,c,d,e,f,g], edges, "graph4.dot" ); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/tests/parse.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,70 @@ +/** + * Author: Jari-Matti Mäkelä + * License: GPL3 + */ +module docgen.tests.parse; + +import docgen.misc.parser; +import tango.io.Stdout; +import tango.io.FileConduit; +import tango.io.Print: Print; +import tango.text.convert.Layout : Layout; +import dil.Module; + +void saveToFile(char[] fname, void delegate(Print!(char) file) foo) { + auto file = new FileConduit("docgen/teststuff/" ~ fname, FileConduit.WriteCreate); + auto output = new Print!(char)(new Layout!(char), file); + + foo(output); + + file.close(); +} + +// load some test files +//@unittest +void parse1() { + saveToFile("parse1.txt", (Print!(char) file){ + + Module[] modules; + + Parser.loadModules( + [ "c" ], ["docgen/teststuff/"[].dup], + null, true, -1, + (char[] fqn, char[] path, Module m) { + file.format("{0} = {1}\n", fqn, path); + }, + (Module imported, Module importer) { + file.format("{0} <- {1}\n", + imported ? imported.moduleFQN : "null"[], + importer ? importer.moduleFQN : "null"[] + ); + }, + modules + ); + }); +} + +// load the imports of dil +//@unittest +void parse2() { +saveToFile("parse2.txt", (Print!(char) file){ + +Module[] modules; + +Parser.loadModules( + [ "docgen-tests" ], [".", "/home/jm/d/tango/"], +// [ "c" ], ["docgen/teststuff/"[].dup], + null, true, -1, + (char[] fqn, char[] path, Module m) { + file.format("{0} = {1}\n", fqn, path); + }, + (Module imported, Module importer) { + file.format("{0} <- {1}\n", + imported ? imported.moduleFQN : "null"[], + importer ? importer.moduleFQN : "null"[] + ); + }, + modules + ); +}); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/teststuff/a.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,4 @@ +module a; + +void foo() {} +void bar() {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/teststuff/b.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,4 @@ +module b; + +import a; +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/teststuff/c.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,4 @@ +module c; + +import a; +import b;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/docgen/testsuite.d Tue Oct 16 22:20:37 2007 +0200 @@ -0,0 +1,25 @@ +/** + * Author: Jari-Matti Mäkelä + * License: GPL3 + */ +module docgen.testsuite; + +import docgen.tests.graphs; +import docgen.tests.parse; +import tango.io.Stdout; + +/** + * A temporary test program for the docgen package. + * I'll replace this with proper unittests in the future. + * + */ +void main() { + Stdout("Running.."); + graph1(); + graph2(); + graph3(); + graph4(); + parse1(); + parse2(); + Stdout("done.\n"); +}
--- a/trunk/src/std/uni.d Tue Oct 16 22:13:37 2007 +0200 +++ b/trunk/src/std/uni.d Tue Oct 16 22:20:37 2007 +0200 @@ -555,8 +555,8 @@ assert(table[i][0] <= table[i][1]); if (i < table.length - 1) { - if (table[i][1] >= table[i + 1][0]) - printf("table[%d][1] = x%x, table[%d][0] = x%x\n", i, table[i][1], i + 1, table[i + 1][0]); +// if (table[i][1] >= table[i + 1][0]) +// printf("table[%d][1] = x%x, table[%d][0] = x%x\n", i, table[i][1], i + 1, table[i + 1][0]); assert(table[i][1] < table[i + 1][0]); } }