hutch-xamplr 1.3.3 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>