hutch-xamplr 1.3.3 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/.document +5 -0
  2. data/.gitignore +12 -0
  3. data/CHANGES.txt +9 -2
  4. data/COPYING +661 -0
  5. data/Makefile +10 -0
  6. data/VERSION.yml +1 -1
  7. data/examples/employees/final-xampl/xampl-gen.rb +38 -0
  8. data/examples/employees/final-xampl/xml/ddd-final-xampl.xml +86 -0
  9. data/examples/employees/yuml-diagrams/DDD-final-approach.graphml +393 -0
  10. data/examples/employees/yuml-diagrams/DDD-final-xampl-approach.graphml +265 -0
  11. data/examples/employees/yuml-diagrams/DDD-ideal-final-approach.graphml +357 -0
  12. data/examples/random-people-shared-addresses/.gitignore +2 -0
  13. data/examples/random-people-shared-addresses/Makefile +8 -9
  14. data/examples/random-people-shared-addresses/batch-load-users-profiled.rb +91 -0
  15. data/examples/random-people-shared-addresses/batch-load-users-safe.rb +81 -0
  16. data/examples/random-people-shared-addresses/batch-load-users.rb +59 -63
  17. data/examples/random-people/.gitignore +2 -0
  18. data/examples/random-people/Makefile +5 -1
  19. data/examples/random-people/xampl-gen.rb +3 -2
  20. data/examples/read-testing/.gitignore +2 -0
  21. data/examples/tokyo-cabinet-experimental/.gitignore +2 -0
  22. data/lib/xamplr/.cvsignore +1 -0
  23. data/lib/xamplr/templates/.cvsignore +3 -0
  24. data/regression/tightly-nested-mutual-mentions/Makefile +14 -0
  25. data/regression/tightly-nested-mutual-mentions/build.rb +31 -0
  26. data/regression/tightly-nested-mutual-mentions/load.rb +21 -0
  27. data/regression/tightly-nested-mutual-mentions/repo-keep.tgz +0 -0
  28. data/regression/tightly-nested-mutual-mentions/setup.rb +8 -0
  29. data/regression/tightly-nested-mutual-mentions/xampl-gen.rb +36 -0
  30. data/regression/tightly-nested-mutual-mentions/xml/stuff.xml +7 -0
  31. data/xamplr.gemspec +276 -0
  32. metadata +30 -2
@@ -0,0 +1,10 @@
1
+
2
+ check:
3
+ git clean -dx --dry-run
4
+
5
+ clean:
6
+ git clean -fdx
7
+ ln -s ../dot.idea .idea
8
+
9
+ release:
10
+ rake version:bump:patch release
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
3
  :minor: 3
4
- :patch: 3
4
+ :patch: 8
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env ruby -w -I..
2
+
3
+ if $0 == __FILE__ then
4
+
5
+ class File
6
+ def File.sjoin(*args)
7
+ File.join(args.select{ | o | o })
8
+ end
9
+ end
10
+
11
+ $LOAD_PATH.unshift('../../lib/')
12
+
13
+ require 'xamplr-generator'
14
+
15
+ include XamplGenerator
16
+ include Xampl
17
+
18
+ Xampl.transaction("setup", :in_memory) do
19
+ directory = File.sjoin(".", "xampl_generated_code")
20
+
21
+ options = Xampl.make(Options) do |options|
22
+ options.new_index_attribute("pid").persisted = true
23
+ options.new_index_attribute("id")
24
+
25
+ options.resolve("http://example.com/employees", "Employees", "emp")
26
+ end
27
+
28
+ filenames = Dir.glob("./xml/**/*.xml")
29
+
30
+ generator = Generator.new
31
+ generator.go(:options => options,
32
+ :filenames => filenames,
33
+ :directory => directory)
34
+
35
+ puts generator.print_elements("./generated-elements.xml")
36
+ exit!
37
+ end
38
+ end
@@ -0,0 +1,86 @@
1
+ <!--
2
+ [RetirementPlan]^[DefinedContribution],
3
+ [RetirementPlan]^[DefinedBenefit],
4
+ [Payroll]^[HourlyPayroll],
5
+ [Payroll]^[SalariedPayroll],
6
+ [EmployeeType]->*[RetirementPlan],
7
+ [EmployeeType]->*[Payroll],
8
+ [Employee]*->[EmployeeType],
9
+ [Department]-*[Employee]
10
+ -->
11
+ <company pid=''
12
+ xmlns="http://example.com/employees">
13
+
14
+ <payroll pid='hourly'>
15
+ <hourly-payroll/>
16
+ </payroll>
17
+ <payroll pid='salaried'>
18
+ <salaried-payroll/>
19
+ </payroll>
20
+
21
+ <retirement-plan pid='defined-contribution'>
22
+ <defined-contribution/>
23
+ </retirement-plan>
24
+ <retirement-plan pid='defined-benefit'>
25
+ <defined-benefit/>
26
+ </retirement-plan>
27
+
28
+ <employee-type pid=''
29
+ title='janitor'>
30
+ <payroll pid='hourly'/>
31
+ <retirement-plan pid='defined-contribution'/>
32
+ </employee-type>
33
+ <employee-type pid=''
34
+ title='receptionist'>
35
+ <payroll pid='hourly'/>
36
+ <retirement-plan pid='defined-contribution'/>
37
+ </employee-type>
38
+ <employee-type pid=''
39
+ title='office-admin'>
40
+ <payroll pid='hourly'/>
41
+ <retirement-plan pid='defined-benefit'/>
42
+ </employee-type>
43
+ <employee-type pid=''
44
+ title='engineer'>
45
+ <payroll pid='salaried'/>
46
+ <retirement-plan pid='defined-benefit'/>
47
+ </employee-type>
48
+ <employee-type pid=''
49
+ title='manager'>
50
+ <payroll pid='salaried'/>
51
+ <retirement-plan pid='defined-benefit'/>
52
+ </employee-type>
53
+
54
+
55
+ <department pid=''
56
+ name='widget design'>
57
+ <employee pid=''
58
+ name='tom'>
59
+ <employee-type pid=''
60
+ title='janitor'/>
61
+ </employee>
62
+ <employee pid=''
63
+ name='mary'
64
+ title='receptionist'>
65
+ <employee-type pid=''
66
+ title='receptionist'/>
67
+ </employee>
68
+ <employee pid=''
69
+ name='bob'
70
+ title='office-admin'>
71
+ <employee-type pid=''
72
+ title='office-admin'/>
73
+ </employee>
74
+
75
+ <employee pid=''
76
+ name='jack'>
77
+ <employee-type pid=''
78
+ title='engineer'/>
79
+ </employee>
80
+ <employee pid=''
81
+ name='jill'>
82
+ <employee-type pid=''
83
+ title='manager'/>
84
+ </employee>
85
+ </department>
86
+ </company>
@@ -0,0 +1,393 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <graphml xmlns="http://graphml.graphdrawing.org/xmlns/graphml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns/graphml http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
3
+ <key for="node" id="d0" yfiles.type="nodegraphics"/>
4
+ <key attr.name="description" attr.type="string" for="node" id="d1"/>
5
+ <key for="edge" id="d2" yfiles.type="edgegraphics"/>
6
+ <key attr.name="description" attr.type="string" for="edge" id="d3"/>
7
+ <key for="graphml" id="d4" yfiles.type="resources"/>
8
+ <graph edgedefault="directed" id="G" parse.edges="14" parse.nodes="11" parse.order="free">
9
+ <node id="n0">
10
+ <data key="d0">
11
+ <y:UMLClassNode>
12
+ <y:Geometry height="44.62109375" width="229.4521484375" x="533.9048781622024" y="233.86328125"/>
13
+ <y:Fill color="#99CCFF" transparent="false"/>
14
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
15
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="172.7080078125" x="28.3720703125" y="26.1328125">Employees::HourlyPayroll
16
+ </y:NodeLabel>
17
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
18
+ <y:AttributeLabel></y:AttributeLabel>
19
+ <y:MethodLabel></y:MethodLabel>
20
+ </y:UML>
21
+ </y:UMLClassNode>
22
+ </data>
23
+ <data key="d1">UMLClass</data>
24
+ </node>
25
+ <node id="n1">
26
+ <data key="d0">
27
+ <y:UMLClassNode>
28
+ <y:Geometry height="44.62109375" width="229.4521484375" x="663.6310686383929" y="308.484375"/>
29
+ <y:Fill color="#CCFFCC" transparent="false"/>
30
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
31
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="131.3974609375" x="49.02734375" y="26.1328125">Employees::Payrole
32
+ </y:NodeLabel>
33
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="empty" use3DEffect="false">
34
+ <y:AttributeLabel></y:AttributeLabel>
35
+ <y:MethodLabel></y:MethodLabel>
36
+ </y:UML>
37
+ </y:UMLClassNode>
38
+ </data>
39
+ <data key="d1">UMLClass</data>
40
+ </node>
41
+ <node id="n2">
42
+ <data key="d0">
43
+ <y:UMLClassNode>
44
+ <y:Geometry height="44.62109375" width="229.4521484375" x="720.9941638764881" y="129.2421875"/>
45
+ <y:Fill color="#FFCC99" transparent="false"/>
46
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
47
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="131.3974609375" x="49.02734375" y="26.1328125">Employees::Payrole
48
+ </y:NodeLabel>
49
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="mixin" use3DEffect="false">
50
+ <y:AttributeLabel></y:AttributeLabel>
51
+ <y:MethodLabel></y:MethodLabel>
52
+ </y:UML>
53
+ </y:UMLClassNode>
54
+ </data>
55
+ <data key="d1">UMLClass</data>
56
+ </node>
57
+ <node id="n3">
58
+ <data key="d0">
59
+ <y:UMLClassNode>
60
+ <y:Geometry height="44.62109375" width="229.4521484375" x="793.3572591145834" y="233.86328125"/>
61
+ <y:Fill color="#99CCFF" transparent="false"/>
62
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
63
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="181.3154296875" x="24.068359375" y="26.1328125">Employees::SalariedPayroll
64
+ </y:NodeLabel>
65
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
66
+ <y:AttributeLabel></y:AttributeLabel>
67
+ <y:MethodLabel></y:MethodLabel>
68
+ </y:UML>
69
+ </y:UMLClassNode>
70
+ </data>
71
+ <data key="d1">UMLClass</data>
72
+ </node>
73
+ <node id="n4">
74
+ <data key="d0">
75
+ <y:UMLClassNode>
76
+ <y:Geometry height="44.62109375" width="229.4521484375" x="15.000116257440482" y="233.86328125"/>
77
+ <y:Fill color="#99CCFF" transparent="false"/>
78
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
79
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="219.4521484375" x="5.0" y="26.1328125">Employees::DefinedContribution
80
+ </y:NodeLabel>
81
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
82
+ <y:AttributeLabel></y:AttributeLabel>
83
+ <y:MethodLabel></y:MethodLabel>
84
+ </y:UML>
85
+ </y:UMLClassNode>
86
+ </data>
87
+ <data key="d1">UMLClass</data>
88
+ </node>
89
+ <node id="n5">
90
+ <data key="d0">
91
+ <y:UMLClassNode>
92
+ <y:Geometry height="44.62109375" width="229.4521484375" x="144.72630673363096" y="308.484375"/>
93
+ <y:Fill color="#CCFFCC" transparent="false"/>
94
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
95
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="184.16552734375" x="22.643310546875" y="26.1328125">Employees::RetirementPlan
96
+ </y:NodeLabel>
97
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="empty" use3DEffect="false">
98
+ <y:AttributeLabel></y:AttributeLabel>
99
+ <y:MethodLabel></y:MethodLabel>
100
+ </y:UML>
101
+ </y:UMLClassNode>
102
+ </data>
103
+ <data key="d1">UMLClass</data>
104
+ </node>
105
+ <node id="n6">
106
+ <data key="d0">
107
+ <y:UMLClassNode>
108
+ <y:Geometry height="44.62109375" width="229.4521484375" x="87.36321149553572" y="129.2421875"/>
109
+ <y:Fill color="#FFCC99" transparent="false"/>
110
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
111
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="184.16552734375" x="22.643310546875" y="26.1328125">Employees::RetirementPlan
112
+ </y:NodeLabel>
113
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="mixin" use3DEffect="false">
114
+ <y:AttributeLabel></y:AttributeLabel>
115
+ <y:MethodLabel></y:MethodLabel>
116
+ </y:UML>
117
+ </y:UMLClassNode>
118
+ </data>
119
+ <data key="d1">UMLClass</data>
120
+ </node>
121
+ <node id="n7">
122
+ <data key="d0">
123
+ <y:UMLClassNode>
124
+ <y:Geometry height="44.62109375" width="229.4521484375" x="274.45249720982144" y="233.86328125"/>
125
+ <y:Fill color="#99CCFF" transparent="false"/>
126
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
127
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="181.302734375" x="24.07470703125" y="26.1328125">Employees::DefinedBenefit
128
+ </y:NodeLabel>
129
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
130
+ <y:AttributeLabel></y:AttributeLabel>
131
+ <y:MethodLabel></y:MethodLabel>
132
+ </y:UML>
133
+ </y:UMLClassNode>
134
+ </data>
135
+ <data key="d1">UMLClass</data>
136
+ </node>
137
+ <node id="n8">
138
+ <data key="d0">
139
+ <y:UMLClassNode>
140
+ <y:Geometry height="44.62109375" width="229.4521484375" x="404.1786876860119" y="129.2421875"/>
141
+ <y:Fill color="#99CCFF" transparent="false"/>
142
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
143
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="179.296875" x="25.07763671875" y="26.1328125">Employees::EmployeeType
144
+ </y:NodeLabel>
145
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
146
+ <y:AttributeLabel></y:AttributeLabel>
147
+ <y:MethodLabel></y:MethodLabel>
148
+ </y:UML>
149
+ </y:UMLClassNode>
150
+ </data>
151
+ <data key="d1">UMLClass</data>
152
+ </node>
153
+ <node id="n9">
154
+ <data key="d0">
155
+ <y:UMLClassNode>
156
+ <y:Geometry height="44.62109375" width="229.4521484375" x="404.1786876860119" y="0.0"/>
157
+ <y:Fill color="#99CCFF" transparent="false"/>
158
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
159
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="161.5361328125" x="33.9580078125" y="26.1328125">Employees::Department
160
+ </y:NodeLabel>
161
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
162
+ <y:AttributeLabel></y:AttributeLabel>
163
+ <y:MethodLabel></y:MethodLabel>
164
+ </y:UML>
165
+ </y:UMLClassNode>
166
+ </data>
167
+ <data key="d1">UMLClass</data>
168
+ </node>
169
+ <node id="n10">
170
+ <data key="d0">
171
+ <y:UMLClassNode>
172
+ <y:Geometry height="44.62109375" width="229.4521484375" x="404.1786876860119" y="64.62109375"/>
173
+ <y:Fill color="#99CCFF" transparent="false"/>
174
+ <y:BorderStyle color="#000000" type="line" width="2.0"/>
175
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="34.62109375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="146.517578125" x="41.46728515625" y="26.1328125">Employees::Employee
176
+ </y:NodeLabel>
177
+ <y:UML clipContent="true" constraint="" omitDetails="false" stereotype="data" use3DEffect="false">
178
+ <y:AttributeLabel></y:AttributeLabel>
179
+ <y:MethodLabel></y:MethodLabel>
180
+ </y:UML>
181
+ </y:UMLClassNode>
182
+ </data>
183
+ <data key="d1">UMLClass</data>
184
+ </node>
185
+ <edge id="e0" source="n0" target="n1">
186
+ <data key="d2">
187
+ <y:PolyLineEdge>
188
+ <y:Path sx="0.0" sy="22.310546875" tx="-57.363037109375" ty="-22.310546875">
189
+ <y:Point x="648.6309523809524" y="293.484375"/>
190
+ <y:Point x="720.9941057477679" y="293.484375"/>
191
+ </y:Path>
192
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
193
+ <y:Arrows source="none" target="short"/>
194
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="34.181547619047706" y="16.970703125"></y:EdgeLabel>
195
+ <y:BendStyle smoothed="false"/>
196
+ </y:PolyLineEdge>
197
+ </data>
198
+ <data key="d3">UMLuses</data>
199
+ </edge>
200
+ <edge id="e1" source="n2" target="n0">
201
+ <data key="d2">
202
+ <y:PolyLineEdge>
203
+ <y:Path sx="-57.363037109375" sy="22.310546875" tx="57.363037109375" ty="-22.310546875">
204
+ <y:Point x="778.3572009858631" y="188.86328125"/>
205
+ <y:Point x="705.9939894903274" y="188.86328125"/>
206
+ </y:Path>
207
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
208
+ <y:Arrows source="white_delta" target="none"/>
209
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-38.181582496279816" y="16.970703125"></y:EdgeLabel>
210
+ <y:BendStyle smoothed="false"/>
211
+ </y:PolyLineEdge>
212
+ </data>
213
+ <data key="d3">UMLinherits</data>
214
+ </edge>
215
+ <edge id="e2" source="n3" target="n1">
216
+ <data key="d2">
217
+ <y:PolyLineEdge>
218
+ <y:Path sx="0.0" sy="22.310546875" tx="57.363037109375" ty="-22.310546875">
219
+ <y:Point x="908.0833333333334" y="293.484375"/>
220
+ <y:Point x="835.7201799665179" y="293.484375"/>
221
+ </y:Path>
222
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
223
+ <y:Arrows source="none" target="short"/>
224
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-38.181556338355676" y="16.970703125"></y:EdgeLabel>
225
+ <y:BendStyle smoothed="false"/>
226
+ </y:PolyLineEdge>
227
+ </data>
228
+ <data key="d3">UMLuses</data>
229
+ </edge>
230
+ <edge id="e3" source="n2" target="n3">
231
+ <data key="d2">
232
+ <y:PolyLineEdge>
233
+ <y:Path sx="57.363037109375" sy="22.310546875" tx="57.363037109375" ty="-22.310546875">
234
+ <y:Point x="893.0832752046131" y="188.86328125"/>
235
+ <y:Point x="965.4463704427084" y="188.86328125"/>
236
+ </y:Path>
237
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
238
+ <y:Arrows source="white_delta" target="none"/>
239
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="34.18157087053578" y="16.970703125"></y:EdgeLabel>
240
+ <y:BendStyle smoothed="false"/>
241
+ </y:PolyLineEdge>
242
+ </data>
243
+ <data key="d3">UMLinherits</data>
244
+ </edge>
245
+ <edge id="e4" source="n4" target="n5">
246
+ <data key="d2">
247
+ <y:PolyLineEdge>
248
+ <y:Path sx="0.0" sy="22.310546875" tx="-57.363037109375" ty="-22.310546875">
249
+ <y:Point x="129.72619047619048" y="293.484375"/>
250
+ <y:Point x="202.08934384300596" y="293.484375"/>
251
+ </y:Path>
252
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
253
+ <y:Arrows source="none" target="short"/>
254
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="34.18157087053572" y="16.970703125"></y:EdgeLabel>
255
+ <y:BendStyle smoothed="false"/>
256
+ </y:PolyLineEdge>
257
+ </data>
258
+ <data key="d3">UMLuses</data>
259
+ </edge>
260
+ <edge id="e5" source="n6" target="n4">
261
+ <data key="d2">
262
+ <y:PolyLineEdge>
263
+ <y:Path sx="-57.363037109375" sy="22.310546875" tx="-57.363037109375" ty="-22.310546875">
264
+ <y:Point x="144.72624860491072" y="188.86328125"/>
265
+ <y:Point x="72.36315336681548" y="188.86328125"/>
266
+ </y:Path>
267
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
268
+ <y:Arrows source="white_delta" target="none"/>
269
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-38.181541079566585" y="16.970703125"></y:EdgeLabel>
270
+ <y:BendStyle smoothed="false"/>
271
+ </y:PolyLineEdge>
272
+ </data>
273
+ <data key="d3">UMLinherits</data>
274
+ </edge>
275
+ <edge id="e6" source="n7" target="n5">
276
+ <data key="d2">
277
+ <y:PolyLineEdge>
278
+ <y:Path sx="0.0" sy="22.310546875" tx="57.363037109375" ty="-22.310546875">
279
+ <y:Point x="389.17857142857144" y="293.484375"/>
280
+ <y:Point x="316.81541806175596" y="293.484375"/>
281
+ </y:Path>
282
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
283
+ <y:Arrows source="none" target="short"/>
284
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-38.18156360444567" y="16.970703125"></y:EdgeLabel>
285
+ <y:BendStyle smoothed="false"/>
286
+ </y:PolyLineEdge>
287
+ </data>
288
+ <data key="d3">UMLuses</data>
289
+ </edge>
290
+ <edge id="e7" source="n6" target="n7">
291
+ <data key="d2">
292
+ <y:PolyLineEdge>
293
+ <y:Path sx="57.363037109375" sy="22.310546875" tx="-57.363037109375" ty="-22.310546875">
294
+ <y:Point x="259.4523228236607" y="188.86328125"/>
295
+ <y:Point x="331.81553431919644" y="188.86328125"/>
296
+ </y:Path>
297
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
298
+ <y:Arrows source="white_delta" target="none"/>
299
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="34.181597028459805" y="16.970703125"></y:EdgeLabel>
300
+ <y:BendStyle smoothed="false"/>
301
+ </y:PolyLineEdge>
302
+ </data>
303
+ <data key="d3">UMLinherits</data>
304
+ </edge>
305
+ <edge id="e8" source="n8" target="n4">
306
+ <data key="d2">
307
+ <y:PolyLineEdge>
308
+ <y:Path sx="-86.0445556640625" sy="22.310546875" tx="57.363037109375" ty="-22.310546875">
309
+ <y:Point x="432.8602062406994" y="203.86328125"/>
310
+ <y:Point x="187.08922758556548" y="203.86328125"/>
311
+ </y:Path>
312
+ <y:LineStyle color="#000000" type="line" width="2.0"/>
313
+ <y:Arrows source="none" target="short"/>
314
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-124.88548206147692" y="31.970703125"></y:EdgeLabel>
315
+ <y:BendStyle smoothed="false"/>
316
+ </y:PolyLineEdge>
317
+ </data>
318
+ <data key="d3">UMLuses</data>
319
+ </edge>
320
+ <edge id="e9" source="n8" target="n0">
321
+ <data key="d2">
322
+ <y:PolyLineEdge>
323
+ <y:Path sx="28.6815185546875" sy="22.310546875" tx="-57.363037109375" ty="-22.310546875">
324
+ <y:Point x="547.5862804594494" y="218.86328125"/>
325
+ <y:Point x="591.2679152715774" y="218.86328125"/>
326
+ </y:Path>
327
+ <y:LineStyle color="#000000" type="line" width="2.0"/>
328
+ <y:Arrows source="none" target="short"/>
329
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="19.84079415457586" y="46.9560546875"></y:EdgeLabel>
330
+ <y:BendStyle smoothed="false"/>
331
+ </y:PolyLineEdge>
332
+ </data>
333
+ <data key="d3">UMLuses</data>
334
+ </edge>
335
+ <edge id="e10" source="n8" target="n3">
336
+ <data key="d2">
337
+ <y:PolyLineEdge>
338
+ <y:Path sx="86.0445556640625" sy="22.310546875" tx="-57.363037109375" ty="-22.310546875">
339
+ <y:Point x="604.9493175688244" y="203.86328125"/>
340
+ <y:Point x="850.7202962239584" y="203.86328125"/>
341
+ </y:Path>
342
+ <y:LineStyle color="#000000" type="line" width="2.0"/>
343
+ <y:Arrows source="none" target="short"/>
344
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="120.88546607607896" y="31.970703125"></y:EdgeLabel>
345
+ <y:BendStyle smoothed="false"/>
346
+ </y:PolyLineEdge>
347
+ </data>
348
+ <data key="d3">UMLuses</data>
349
+ </edge>
350
+ <edge id="e11" source="n8" target="n7">
351
+ <data key="d2">
352
+ <y:PolyLineEdge>
353
+ <y:Path sx="-28.6815185546875" sy="22.310546875" tx="57.363037109375" ty="-22.310546875">
354
+ <y:Point x="490.2232433500744" y="218.86328125"/>
355
+ <y:Point x="446.54160853794644" y="218.86328125"/>
356
+ </y:Path>
357
+ <y:LineStyle color="#000000" type="line" width="2.0"/>
358
+ <y:Arrows source="none" target="short"/>
359
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="-23.84081013997394" y="46.9560546875"></y:EdgeLabel>
360
+ <y:BendStyle smoothed="false"/>
361
+ </y:PolyLineEdge>
362
+ </data>
363
+ <data key="d3">UMLuses</data>
364
+ </edge>
365
+ <edge id="e12" source="n9" target="n10">
366
+ <data key="d2">
367
+ <y:PolyLineEdge>
368
+ <y:Path sx="0.0" sy="22.310546875" tx="0.0" ty="-22.310546875"/>
369
+ <y:LineStyle color="#000000" type="line" width="2.0"/>
370
+ <y:Arrows source="none" target="short"/>
371
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.9999767485119264" y="7.9609375"></y:EdgeLabel>
372
+ <y:BendStyle smoothed="false"/>
373
+ </y:PolyLineEdge>
374
+ </data>
375
+ <data key="d3">UMLuses</data>
376
+ </edge>
377
+ <edge id="e13" source="n10" target="n8">
378
+ <data key="d2">
379
+ <y:PolyLineEdge>
380
+ <y:Path sx="0.0" sy="22.310546875" tx="0.0" ty="-22.310546875"/>
381
+ <y:LineStyle color="#000000" type="line" width="2.0"/>
382
+ <y:Arrows source="none" target="short"/>
383
+ <y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.9999767485119264" y="7.9609375"></y:EdgeLabel>
384
+ <y:BendStyle smoothed="false"/>
385
+ </y:PolyLineEdge>
386
+ </data>
387
+ <data key="d3">UMLuses</data>
388
+ </edge>
389
+ </graph>
390
+ <data key="d4">
391
+ <y:Resources/>
392
+ </data>
393
+ </graphml>