schemacop 1.0.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.rubocop.yml +59 -1
  4. data/CHANGELOG.md +10 -0
  5. data/README.md +389 -199
  6. data/Rakefile +2 -0
  7. data/VERSION +1 -1
  8. data/doc/Schemacop.html +41 -130
  9. data/doc/Schemacop/ArrayValidator.html +329 -0
  10. data/doc/Schemacop/BooleanValidator.html +145 -0
  11. data/doc/Schemacop/Collector.html +535 -0
  12. data/doc/Schemacop/Exceptions.html +39 -39
  13. data/doc/Schemacop/Exceptions/InvalidSchemaError.html +124 -0
  14. data/doc/Schemacop/Exceptions/ValidationError.html +124 -0
  15. data/doc/Schemacop/FieldNode.html +409 -0
  16. data/doc/Schemacop/FloatValidator.html +158 -0
  17. data/doc/Schemacop/HashValidator.html +263 -0
  18. data/doc/Schemacop/IntegerValidator.html +158 -0
  19. data/doc/Schemacop/NilValidator.html +145 -0
  20. data/doc/Schemacop/Node.html +1426 -0
  21. data/doc/Schemacop/NodeResolver.html +242 -0
  22. data/doc/Schemacop/NodeSupportingField.html +590 -0
  23. data/doc/Schemacop/NodeSupportingType.html +614 -0
  24. data/doc/Schemacop/NodeWithBlock.html +289 -0
  25. data/doc/Schemacop/NumberValidator.html +232 -0
  26. data/doc/Schemacop/ObjectValidator.html +288 -0
  27. data/doc/Schemacop/RootNode.html +171 -0
  28. data/doc/Schemacop/Schema.html +697 -0
  29. data/doc/Schemacop/StringValidator.html +295 -0
  30. data/doc/ScopedEnv.html +351 -0
  31. data/doc/_index.html +190 -47
  32. data/doc/class_list.html +24 -31
  33. data/doc/css/full_list.css +32 -31
  34. data/doc/css/style.css +244 -91
  35. data/doc/file.README.html +428 -232
  36. data/doc/file_list.html +26 -30
  37. data/doc/frames.html +7 -16
  38. data/doc/index.html +428 -232
  39. data/doc/inheritance.graphml +524 -0
  40. data/doc/inheritance.pdf +825 -0
  41. data/doc/js/app.js +106 -77
  42. data/doc/js/full_list.js +170 -135
  43. data/doc/method_list.html +494 -38
  44. data/doc/top-level-namespace.html +36 -36
  45. data/lib/schemacop.rb +22 -7
  46. data/lib/schemacop/collector.rb +34 -0
  47. data/lib/schemacop/exceptions.rb +2 -8
  48. data/lib/schemacop/field_node.rb +26 -0
  49. data/lib/schemacop/node.rb +127 -0
  50. data/lib/schemacop/node_resolver.rb +14 -0
  51. data/lib/schemacop/node_supporting_field.rb +62 -0
  52. data/lib/schemacop/node_supporting_type.rb +112 -0
  53. data/lib/schemacop/node_with_block.rb +16 -0
  54. data/lib/schemacop/root_node.rb +4 -0
  55. data/lib/schemacop/schema.rb +61 -0
  56. data/lib/schemacop/scoped_env.rb +18 -0
  57. data/lib/schemacop/validator/array_validator.rb +30 -0
  58. data/lib/schemacop/validator/boolean_validator.rb +5 -0
  59. data/lib/schemacop/validator/float_validator.rb +5 -0
  60. data/lib/schemacop/validator/hash_validator.rb +18 -0
  61. data/lib/schemacop/validator/integer_validator.rb +5 -0
  62. data/lib/schemacop/validator/nil_validator.rb +5 -0
  63. data/lib/schemacop/validator/number_validator.rb +19 -0
  64. data/lib/schemacop/validator/object_validator.rb +21 -0
  65. data/lib/schemacop/validator/string_validator.rb +37 -0
  66. data/schemacop.gemspec +7 -5
  67. data/test/custom_check_test.rb +86 -0
  68. data/test/custom_if_test.rb +95 -0
  69. data/test/nil_dis_allow_test.rb +41 -0
  70. data/test/short_forms_test.rb +316 -0
  71. data/test/test_helper.rb +6 -0
  72. data/test/types_test.rb +83 -0
  73. data/test/validator_array_test.rb +97 -0
  74. data/test/validator_boolean_test.rb +15 -0
  75. data/test/validator_float_test.rb +57 -0
  76. data/test/validator_hash_test.rb +71 -0
  77. data/test/validator_integer_test.rb +46 -0
  78. data/test/validator_nil_test.rb +13 -0
  79. data/test/validator_number_test.rb +60 -0
  80. data/test/validator_object_test.rb +87 -0
  81. data/test/validator_string_test.rb +76 -0
  82. metadata +78 -14
  83. data/doc/Schemacop/Exceptions/Base.html +0 -127
  84. data/doc/Schemacop/Exceptions/InvalidSchema.html +0 -141
  85. data/doc/Schemacop/Exceptions/Validation.html +0 -142
  86. data/doc/Schemacop/MethodValidation.html +0 -120
  87. data/doc/Schemacop/MethodValidation/ClassMethods.html +0 -196
  88. data/doc/Schemacop/Validator.html +0 -254
  89. data/lib/schemacop/validator.rb +0 -145
  90. data/test/schemacop_validator_test.rb +0 -257
@@ -0,0 +1,524 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
3
+ <!--Created by yEd 3.16.2.1-->
4
+ <key attr.name="Description" attr.type="string" for="graph" id="d0"/>
5
+ <key for="port" id="d1" yfiles.type="portgraphics"/>
6
+ <key for="port" id="d2" yfiles.type="portgeometry"/>
7
+ <key for="port" id="d3" yfiles.type="portuserdata"/>
8
+ <key attr.name="url" attr.type="string" for="node" id="d4"/>
9
+ <key attr.name="description" attr.type="string" for="node" id="d5"/>
10
+ <key for="node" id="d6" yfiles.type="nodegraphics"/>
11
+ <key for="graphml" id="d7" yfiles.type="resources"/>
12
+ <key attr.name="url" attr.type="string" for="edge" id="d8"/>
13
+ <key attr.name="description" attr.type="string" for="edge" id="d9"/>
14
+ <key for="edge" id="d10" yfiles.type="edgegraphics"/>
15
+ <graph edgedefault="directed" id="G">
16
+ <data key="d0"/>
17
+ <node id="n0">
18
+ <data key="d6">
19
+ <y:ShapeNode>
20
+ <y:Geometry height="30.0" width="45.318359375" x="554.048955233135" y="-245.0"/>
21
+ <y:Fill color="#FFCC00" transparent="false"/>
22
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
23
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="35.318359375" x="5.0" y="6.015625">Node<y:LabelModel>
24
+ <y:SmartNodeLabelModel distance="4.0"/>
25
+ </y:LabelModel>
26
+ <y:ModelParameter>
27
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
28
+ </y:ModelParameter>
29
+ </y:NodeLabel>
30
+ <y:Shape type="rectangle"/>
31
+ </y:ShapeNode>
32
+ </data>
33
+ </node>
34
+ <node id="n1">
35
+ <data key="d6">
36
+ <y:ShapeNode>
37
+ <y:Geometry height="30.0" width="140.744140625" x="116.8636439732143" y="-91.0"/>
38
+ <y:Fill color="#FFCC00" transparent="false"/>
39
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
40
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="130.744140625" x="5.0" y="6.015625">NodeSupportingType<y:LabelModel>
41
+ <y:SmartNodeLabelModel distance="4.0"/>
42
+ </y:LabelModel>
43
+ <y:ModelParameter>
44
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
45
+ </y:ModelParameter>
46
+ </y:NodeLabel>
47
+ <y:Shape type="rectangle"/>
48
+ </y:ShapeNode>
49
+ </data>
50
+ </node>
51
+ <node id="n2">
52
+ <data key="d6">
53
+ <y:ShapeNode>
54
+ <y:Geometry height="30.0" width="100.712890625" x="20.000300719246027" y="-30.0"/>
55
+ <y:Fill color="#FFCC00" transparent="false"/>
56
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
57
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="90.712890625" x="5.0" y="6.015625">ArrayValidator<y:LabelModel>
58
+ <y:SmartNodeLabelModel distance="4.0"/>
59
+ </y:LabelModel>
60
+ <y:ModelParameter>
61
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
62
+ </y:ModelParameter>
63
+ </y:NodeLabel>
64
+ <y:Shape type="rectangle"/>
65
+ </y:ShapeNode>
66
+ </data>
67
+ </node>
68
+ <node id="n3">
69
+ <data key="d6">
70
+ <y:ShapeNode>
71
+ <y:Geometry height="30.0" width="116.7734375" x="734.9968129960317" y="-152.0"/>
72
+ <y:Fill color="#FFCC00" transparent="false"/>
73
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
74
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="106.7734375" x="5.0" y="6.015625">BooleanValidator<y:LabelModel>
75
+ <y:SmartNodeLabelModel distance="4.0"/>
76
+ </y:LabelModel>
77
+ <y:ModelParameter>
78
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
79
+ </y:ModelParameter>
80
+ </y:NodeLabel>
81
+ <y:Shape type="rectangle"/>
82
+ </y:ShapeNode>
83
+ </data>
84
+ </node>
85
+ <node id="n4">
86
+ <data key="d6">
87
+ <y:ShapeNode>
88
+ <y:Geometry height="30.0" width="97.818359375" x="665.1858599950397" y="-91.0"/>
89
+ <y:Fill color="#FFCC00" transparent="false"/>
90
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
91
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="87.818359375" x="5.0" y="6.015625">FloatValidator<y:LabelModel>
92
+ <y:SmartNodeLabelModel distance="4.0"/>
93
+ </y:LabelModel>
94
+ <y:ModelParameter>
95
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
96
+ </y:ModelParameter>
97
+ </y:NodeLabel>
98
+ <y:Shape type="rectangle"/>
99
+ </y:ShapeNode>
100
+ </data>
101
+ </node>
102
+ <node id="n5">
103
+ <data key="d6">
104
+ <y:ShapeNode>
105
+ <y:Geometry height="30.0" width="116.38671875" x="588.610013640873" y="-152.0"/>
106
+ <y:Fill color="#FFCC00" transparent="false"/>
107
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
108
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="106.38671875" x="5.0" y="6.015625">NumberValidator<y:LabelModel>
109
+ <y:SmartNodeLabelModel distance="4.0"/>
110
+ </y:LabelModel>
111
+ <y:ModelParameter>
112
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
113
+ </y:ModelParameter>
114
+ </y:NodeLabel>
115
+ <y:Shape type="rectangle"/>
116
+ </y:ShapeNode>
117
+ </data>
118
+ </node>
119
+ <node id="n6">
120
+ <data key="d6">
121
+ <y:ShapeNode>
122
+ <y:Geometry height="30.0" width="139.8828125" x="336.91375248015873" y="-91.0"/>
123
+ <y:Fill color="#FFCC00" transparent="false"/>
124
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
125
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="129.8828125" x="5.0" y="6.015625">NodeSupportingField<y:LabelModel>
126
+ <y:SmartNodeLabelModel distance="4.0"/>
127
+ </y:LabelModel>
128
+ <y:ModelParameter>
129
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
130
+ </y:ModelParameter>
131
+ </y:NodeLabel>
132
+ <y:Shape type="rectangle"/>
133
+ </y:ShapeNode>
134
+ </data>
135
+ </node>
136
+ <node id="n7">
137
+ <data key="d6">
138
+ <y:ShapeNode>
139
+ <y:Geometry height="30.0" width="98.416015625" x="357.64715091765873" y="-30.0"/>
140
+ <y:Fill color="#FFCC00" transparent="false"/>
141
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
142
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="88.416015625" x="5.0" y="6.015625">HashValidator<y:LabelModel>
143
+ <y:SmartNodeLabelModel distance="4.0"/>
144
+ </y:LabelModel>
145
+ <y:ModelParameter>
146
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
147
+ </y:ModelParameter>
148
+ </y:NodeLabel>
149
+ <y:Shape type="rectangle"/>
150
+ </y:ShapeNode>
151
+ </data>
152
+ </node>
153
+ <node id="n8">
154
+ <data key="d6">
155
+ <y:ShapeNode>
156
+ <y:Geometry height="30.0" width="111.34765625" x="523.8378782242063" y="-91.0"/>
157
+ <y:Fill color="#FFCC00" transparent="false"/>
158
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
159
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="101.34765625" x="5.0" y="6.015625">IntegerValidator<y:LabelModel>
160
+ <y:SmartNodeLabelModel distance="4.0"/>
161
+ </y:LabelModel>
162
+ <y:ModelParameter>
163
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
164
+ </y:ModelParameter>
165
+ </y:NodeLabel>
166
+ <y:Shape type="rectangle"/>
167
+ </y:ShapeNode>
168
+ </data>
169
+ </node>
170
+ <node id="n9">
171
+ <data key="d6">
172
+ <y:ShapeNode>
173
+ <y:Geometry height="30.0" width="103.994140625" x="454.61582651289683" y="-152.0"/>
174
+ <y:Fill color="#FFCC00" transparent="false"/>
175
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
176
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="93.994140625" x="5.0" y="6.015625">StringValidator<y:LabelModel>
177
+ <y:SmartNodeLabelModel distance="4.0"/>
178
+ </y:LabelModel>
179
+ <y:ModelParameter>
180
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
181
+ </y:ModelParameter>
182
+ </y:NodeLabel>
183
+ <y:Shape type="rectangle"/>
184
+ </y:ShapeNode>
185
+ </data>
186
+ </node>
187
+ <node id="n10">
188
+ <data key="d6">
189
+ <y:ShapeNode>
190
+ <y:Geometry height="30.0" width="73.888671875" x="253.75844184027778" y="-30.0"/>
191
+ <y:Fill color="#FFCC00" transparent="false"/>
192
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
193
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.888671875" x="5.0" y="6.015625">FieldNode<y:LabelModel>
194
+ <y:SmartNodeLabelModel distance="4.0"/>
195
+ </y:LabelModel>
196
+ <y:ModelParameter>
197
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
198
+ </y:ModelParameter>
199
+ </y:NodeLabel>
200
+ <y:Shape type="rectangle"/>
201
+ </y:ShapeNode>
202
+ </data>
203
+ </node>
204
+ <node id="n11">
205
+ <data key="d6">
206
+ <y:ShapeNode>
207
+ <y:Geometry height="30.0" width="105.28320312499997" x="182.06851748511906" y="-152.0"/>
208
+ <y:Fill color="#FFCC00" transparent="false"/>
209
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
210
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="95.283203125" x="5.0" y="6.015625">NodeWithBlock<y:LabelModel>
211
+ <y:SmartNodeLabelModel distance="4.0"/>
212
+ </y:LabelModel>
213
+ <y:ModelParameter>
214
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
215
+ </y:ModelParameter>
216
+ </y:NodeLabel>
217
+ <y:Shape type="rectangle"/>
218
+ </y:ShapeNode>
219
+ </data>
220
+ </node>
221
+ <node id="n12">
222
+ <data key="d6">
223
+ <y:ShapeNode>
224
+ <y:Geometry height="30.0" width="73.044921875" x="150.7132533482143" y="-30.0"/>
225
+ <y:Fill color="#FFCC00" transparent="false"/>
226
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
227
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="63.044921875" x="5.0" y="6.015625">RootNode<y:LabelModel>
228
+ <y:SmartNodeLabelModel distance="4.0"/>
229
+ </y:LabelModel>
230
+ <y:ModelParameter>
231
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
232
+ </y:ModelParameter>
233
+ </y:NodeLabel>
234
+ <y:Shape type="rectangle"/>
235
+ </y:ShapeNode>
236
+ </data>
237
+ </node>
238
+ <node id="n13">
239
+ <data key="d6">
240
+ <y:ShapeNode>
241
+ <y:Geometry height="30.0" width="62.24609375" x="739.8307229662698" y="-245.0"/>
242
+ <y:Fill color="#FFCC00" transparent="false"/>
243
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
244
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="52.24609375" x="5.0" y="6.015625">Schema<y:LabelModel>
245
+ <y:SmartNodeLabelModel distance="4.0"/>
246
+ </y:LabelModel>
247
+ <y:ModelParameter>
248
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
249
+ </y:ModelParameter>
250
+ </y:NodeLabel>
251
+ <y:Shape type="rectangle"/>
252
+ </y:ShapeNode>
253
+ </data>
254
+ </node>
255
+ <node id="n14">
256
+ <data key="d6">
257
+ <y:ShapeNode>
258
+ <y:Geometry height="30.0" width="80.462890625" x="629.367562624008" y="-245.0"/>
259
+ <y:Fill color="#FFCC00" transparent="false"/>
260
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
261
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="70.462890625" x="5.0" y="6.015625">ScopedEnv<y:LabelModel>
262
+ <y:SmartNodeLabelModel distance="4.0"/>
263
+ </y:LabelModel>
264
+ <y:ModelParameter>
265
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
266
+ </y:ModelParameter>
267
+ </y:NodeLabel>
268
+ <y:Shape type="rectangle"/>
269
+ </y:ShapeNode>
270
+ </data>
271
+ </node>
272
+ <node id="n15">
273
+ <data key="d6">
274
+ <y:ShapeNode>
275
+ <y:Geometry height="30.0" width="97.384765625" x="426.6641648065476" y="-245.0"/>
276
+ <y:Fill color="#FFCC00" transparent="false"/>
277
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
278
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="87.384765625" x="5.0" y="6.015625">NodeResolver<y:LabelModel>
279
+ <y:SmartNodeLabelModel distance="4.0"/>
280
+ </y:LabelModel>
281
+ <y:ModelParameter>
282
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
283
+ </y:ModelParameter>
284
+ </y:NodeLabel>
285
+ <y:Shape type="rectangle"/>
286
+ </y:ShapeNode>
287
+ </data>
288
+ </node>
289
+ <node id="n16">
290
+ <data key="d6">
291
+ <y:ShapeNode>
292
+ <y:Geometry height="30.0" width="67.349609375" x="329.3142826140873" y="-245.0"/>
293
+ <y:Fill color="#FFCC00" transparent="false"/>
294
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
295
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="57.349609375" x="5.0" y="6.015625">Collector<y:LabelModel>
296
+ <y:SmartNodeLabelModel distance="4.0"/>
297
+ </y:LabelModel>
298
+ <y:ModelParameter>
299
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
300
+ </y:ModelParameter>
301
+ </y:NodeLabel>
302
+ <y:Shape type="rectangle"/>
303
+ </y:ShapeNode>
304
+ </data>
305
+ </node>
306
+ <node id="n17">
307
+ <data key="d5"/>
308
+ <data key="d6">
309
+ <y:ShapeNode>
310
+ <y:Geometry height="30.0" width="107.263671875" x="317.3520926339286" y="-152.0"/>
311
+ <y:Fill color="#FFCC00" transparent="false"/>
312
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
313
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="97.263671875" x="5.0" y="6.015625">ObjectValidator<y:LabelModel>
314
+ <y:SmartNodeLabelModel distance="4.0"/>
315
+ </y:LabelModel>
316
+ <y:ModelParameter>
317
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
318
+ </y:ModelParameter>
319
+ </y:NodeLabel>
320
+ <y:Shape type="rectangle"/>
321
+ </y:ShapeNode>
322
+ </data>
323
+ </node>
324
+ <node id="n18">
325
+ <data key="d5"/>
326
+ <data key="d6">
327
+ <y:ShapeNode>
328
+ <y:Geometry height="30.0" width="83.826171875" x="881.7704458085317" y="-152.0"/>
329
+ <y:Fill color="#FFCC00" transparent="false"/>
330
+ <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
331
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="73.826171875" x="5.0" y="6.015625">NilValidator<y:LabelModel>
332
+ <y:SmartNodeLabelModel distance="4.0"/>
333
+ </y:LabelModel>
334
+ <y:ModelParameter>
335
+ <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
336
+ </y:ModelParameter>
337
+ </y:NodeLabel>
338
+ <y:Shape type="rectangle"/>
339
+ </y:ShapeNode>
340
+ </data>
341
+ </node>
342
+ <edge id="e0" source="n2" target="n1">
343
+ <data key="d10">
344
+ <y:PolyLineEdge>
345
+ <y:Path sx="0.0" sy="-15.0" tx="-46.91471354166667" ty="15.0">
346
+ <y:Point x="70.35674603174603" y="-45.5"/>
347
+ <y:Point x="140.32100074404764" y="-45.5"/>
348
+ </y:Path>
349
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
350
+ <y:Arrows source="none" target="standard"/>
351
+ <y:BendStyle smoothed="false"/>
352
+ </y:PolyLineEdge>
353
+ </data>
354
+ </edge>
355
+ <edge id="e1" source="n3" target="n0">
356
+ <data key="d10">
357
+ <y:PolyLineEdge>
358
+ <y:Path sx="0.0" sy="-15.0" tx="11.32958984375" ty="15.0">
359
+ <y:Point x="793.3835317460317" y="-183.5"/>
360
+ <y:Point x="588.037724764385" y="-183.5"/>
361
+ </y:Path>
362
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
363
+ <y:Arrows source="none" target="standard"/>
364
+ <y:BendStyle smoothed="false"/>
365
+ </y:PolyLineEdge>
366
+ </data>
367
+ </edge>
368
+ <edge id="e2" source="n4" target="n5">
369
+ <data key="d10">
370
+ <y:PolyLineEdge>
371
+ <y:Path sx="0.0" sy="-15.0" tx="29.0966796875" ty="15.0">
372
+ <y:Point x="714.0950396825397" y="-106.5"/>
373
+ <y:Point x="675.900052703373" y="-106.5"/>
374
+ </y:Path>
375
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
376
+ <y:Arrows source="none" target="standard"/>
377
+ <y:BendStyle smoothed="false"/>
378
+ </y:PolyLineEdge>
379
+ </data>
380
+ </edge>
381
+ <edge id="e3" source="n7" target="n6">
382
+ <data key="d10">
383
+ <y:PolyLineEdge>
384
+ <y:Path sx="0.0" sy="-15.0" tx="0.0" ty="15.0"/>
385
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
386
+ <y:Arrows source="none" target="standard"/>
387
+ <y:BendStyle smoothed="false"/>
388
+ </y:PolyLineEdge>
389
+ </data>
390
+ </edge>
391
+ <edge id="e4" source="n8" target="n5">
392
+ <data key="d10">
393
+ <y:PolyLineEdge>
394
+ <y:Path sx="0.0" sy="-15.0" tx="-29.0966796875" ty="15.0">
395
+ <y:Point x="579.5117063492063" y="-106.5"/>
396
+ <y:Point x="617.706693328373" y="-106.5"/>
397
+ </y:Path>
398
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
399
+ <y:Arrows source="none" target="standard"/>
400
+ <y:BendStyle smoothed="false"/>
401
+ </y:PolyLineEdge>
402
+ </data>
403
+ </edge>
404
+ <edge id="e5" source="n5" target="n0">
405
+ <data key="d10">
406
+ <y:PolyLineEdge>
407
+ <y:Path sx="0.0" sy="-15.0" tx="3.7765299479166643" ty="15.0">
408
+ <y:Point x="646.803373015873" y="-167.5"/>
409
+ <y:Point x="580.4846648685516" y="-167.5"/>
410
+ </y:Path>
411
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
412
+ <y:Arrows source="none" target="standard"/>
413
+ <y:BendStyle smoothed="false"/>
414
+ </y:PolyLineEdge>
415
+ </data>
416
+ </edge>
417
+ <edge id="e6" source="n9" target="n0">
418
+ <data key="d10">
419
+ <y:PolyLineEdge>
420
+ <y:Path sx="0.0" sy="-15.0" tx="-3.776529947916668" ty="15.0">
421
+ <y:Point x="506.61289682539683" y="-167.5"/>
422
+ <y:Point x="572.9316049727183" y="-167.5"/>
423
+ </y:Path>
424
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
425
+ <y:Arrows source="none" target="standard"/>
426
+ <y:BendStyle smoothed="false"/>
427
+ </y:PolyLineEdge>
428
+ </data>
429
+ </edge>
430
+ <edge id="e7" source="n10" target="n1">
431
+ <data key="d10">
432
+ <y:PolyLineEdge>
433
+ <y:Path sx="0.0" sy="-15.0" tx="46.91471354166667" ty="15.0">
434
+ <y:Point x="290.7027777777778" y="-45.5"/>
435
+ <y:Point x="234.15042782738095" y="-45.5"/>
436
+ </y:Path>
437
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
438
+ <y:Arrows source="none" target="standard"/>
439
+ <y:BendStyle smoothed="false"/>
440
+ </y:PolyLineEdge>
441
+ </data>
442
+ </edge>
443
+ <edge id="e8" source="n6" target="n11">
444
+ <data key="d10">
445
+ <y:PolyLineEdge>
446
+ <y:Path sx="0.0" sy="-15.0" tx="26.320800781249986" ty="15.0">
447
+ <y:Point x="406.85515873015873" y="-106.5"/>
448
+ <y:Point x="261.03091982886906" y="-106.5"/>
449
+ </y:Path>
450
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
451
+ <y:Arrows source="none" target="standard"/>
452
+ <y:BendStyle smoothed="false"/>
453
+ </y:PolyLineEdge>
454
+ </data>
455
+ </edge>
456
+ <edge id="e9" source="n1" target="n11">
457
+ <data key="d10">
458
+ <y:PolyLineEdge>
459
+ <y:Path sx="0.0" sy="-15.0" tx="-26.320800781249993" ty="15.0">
460
+ <y:Point x="187.2357142857143" y="-106.5"/>
461
+ <y:Point x="208.38931826636906" y="-106.5"/>
462
+ </y:Path>
463
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
464
+ <y:Arrows source="none" target="standard"/>
465
+ <y:BendStyle smoothed="false"/>
466
+ </y:PolyLineEdge>
467
+ </data>
468
+ </edge>
469
+ <edge id="e10" source="n11" target="n0">
470
+ <data key="d10">
471
+ <y:PolyLineEdge>
472
+ <y:Path sx="0.0" sy="-15.0" tx="-18.882649739583332" ty="15.0">
473
+ <y:Point x="234.71011904761906" y="-199.5"/>
474
+ <y:Point x="557.8254851810516" y="-199.5"/>
475
+ </y:Path>
476
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
477
+ <y:Arrows source="none" target="standard"/>
478
+ <y:BendStyle smoothed="false"/>
479
+ </y:PolyLineEdge>
480
+ </data>
481
+ </edge>
482
+ <edge id="e11" source="n12" target="n1">
483
+ <data key="d10">
484
+ <y:PolyLineEdge>
485
+ <y:Path sx="0.0" sy="-15.0" tx="0.0" ty="15.0"/>
486
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
487
+ <y:Arrows source="none" target="standard"/>
488
+ <y:BendStyle smoothed="false"/>
489
+ </y:PolyLineEdge>
490
+ </data>
491
+ </edge>
492
+ <edge id="e12" source="n17" target="n0">
493
+ <data key="d9"/>
494
+ <data key="d10">
495
+ <y:PolyLineEdge>
496
+ <y:Path sx="0.0" sy="-15.0" tx="-11.32958984375" ty="15.0">
497
+ <y:Point x="370.9839285714286" y="-183.5"/>
498
+ <y:Point x="565.378545076885" y="-183.5"/>
499
+ </y:Path>
500
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
501
+ <y:Arrows source="none" target="standard"/>
502
+ <y:BendStyle smoothed="false"/>
503
+ </y:PolyLineEdge>
504
+ </data>
505
+ </edge>
506
+ <edge id="e13" source="n18" target="n0">
507
+ <data key="d9"/>
508
+ <data key="d10">
509
+ <y:PolyLineEdge>
510
+ <y:Path sx="0.0" sy="-15.0" tx="18.882649739583336" ty="15.0">
511
+ <y:Point x="923.6835317460317" y="-199.5"/>
512
+ <y:Point x="595.5907846602183" y="-199.5"/>
513
+ </y:Path>
514
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
515
+ <y:Arrows source="none" target="standard"/>
516
+ <y:BendStyle smoothed="false"/>
517
+ </y:PolyLineEdge>
518
+ </data>
519
+ </edge>
520
+ </graph>
521
+ <data key="d7">
522
+ <y:Resources/>
523
+ </data>
524
+ </graphml>