schemacop 1.0.2 → 2.0.0

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