xmlutils 0.0.2
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.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +77 -0
- data/bin/xmltogdl +88 -0
- data/docs/README.txt +20 -0
- data/lib/xmlutils/contextlistener.rb +432 -0
- data/lib/xmlutils/contextparser.rb +111 -0
- data/lib/xmlutils/dumplistener.rb +57 -0
- data/lib/xmlutils/gdlcontext.rb +305 -0
- data/lib/xmlutils/gdlcontextobjs.rb +286 -0
- data/lib/xmlutils/gdldoc.rb +547 -0
- data/lib/xmlutils/gdldocbuilder.rb +181 -0
- data/lib/xmlutils/gdllistener.rb +265 -0
- data/lib/xmlutils/gdltemplate.rb +488 -0
- data/lib/xmlutils/lineparser.rb +193 -0
- data/lib/xmlutils/listener.rb +459 -0
- data/lib/xmlutils/rulelistener.rb +414 -0
- data/lib/xmlutils/ruleparser.rb +112 -0
- data/lib/xmlutils/varlistener.rb +86 -0
- data/lib/xmlutils/version.rb +5 -0
- data/lib/xmlutils/xmlrulevisitor.rb +704 -0
- data/lib/xmlutils/xmltogdlcontroller.rb +93 -0
- data/lib/xmlutils/xmltogdltask.rb +23 -0
- data/lib/xmlutils/xmlvisitor.rb +690 -0
- data/lib/xmlutils.rb +40 -0
- data/rakefile.rb +34 -0
- data/unittests/2830.xml +1 -0
- data/unittests/chunks.rb +31 -0
- data/unittests/curDirTest.rb +2 -0
- data/unittests/data/2830-GENERATED.gdl +309 -0
- data/unittests/data/2830-GENERATED.xml +1 -0
- data/unittests/data/AUGuideline.xml +12 -0
- data/unittests/data/AUGuideline.xml.gdl +19190 -0
- data/unittests/data/BAKUP.DCTEST1.xml +1 -0
- data/unittests/data/DCTEST.xml +1 -0
- data/unittests/data/DCTEST1.xml +1 -0
- data/unittests/data/DCTEST1.xml.gdl +14890 -0
- data/unittests/data/DCTEST1.xml.rename.csv +180 -0
- data/unittests/data/DCTEST1wLookups.xml +174 -0
- data/unittests/data/DCTEST1wLookups.xml.gdl +127 -0
- data/unittests/data/GENERATED.gdl.xml +1 -0
- data/unittests/data/Message.xml +1 -0
- data/unittests/data/Message.xml.gdl +142 -0
- data/unittests/data/Pricing2ndGuideline.xml +1 -0
- data/unittests/data/Pricing2ndGuideline.xml.gdl +52670 -0
- data/unittests/data/Z-TEMP-Jeff.xml +1 -0
- data/unittests/data/Z-TEMP-Jeff.xml.gdl +288 -0
- data/unittests/tc_convert_xml_to_gdl.rb +23 -0
- data/unittests/ts_allTests.rb +2 -0
- data/xmlutils.gemspec +25 -0
- metadata +139 -0
@@ -0,0 +1,690 @@
|
|
1
|
+
#
|
2
|
+
# File: XmlVisitor.rb
|
3
|
+
#
|
4
|
+
# This class is used to visit XML guideline elements
|
5
|
+
#
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'rexml/document'
|
9
|
+
require 'rexml/streamlistener'
|
10
|
+
require 'logger'
|
11
|
+
|
12
|
+
#################################################
|
13
|
+
#
|
14
|
+
# class XmlVisitor
|
15
|
+
#
|
16
|
+
#################################################
|
17
|
+
class XmlVisitor
|
18
|
+
include REXML
|
19
|
+
|
20
|
+
@@log = Logger.new(STDOUT)
|
21
|
+
|
22
|
+
|
23
|
+
#-------------------------------------------------------------------------------------------------------------#
|
24
|
+
# initialize - Constructor
|
25
|
+
#
|
26
|
+
#
|
27
|
+
#------------------------------------------------------------------------------------------------------------#
|
28
|
+
def initialize()
|
29
|
+
@output = ""
|
30
|
+
# @@log.level = Logger::DEBUG
|
31
|
+
@@log.level = Logger::WARN
|
32
|
+
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
#-------------------------------------------------------------------------------------------------------------#
|
38
|
+
# visit - visit an element based on its name.
|
39
|
+
#
|
40
|
+
# @returns GDL output for Element
|
41
|
+
#
|
42
|
+
#------------------------------------------------------------------------------------------------------------#
|
43
|
+
def visit(elem, data)
|
44
|
+
@@log.debug("XmlVisitor::visit")
|
45
|
+
@@log.debug(elem.inspect)
|
46
|
+
|
47
|
+
case elem.name
|
48
|
+
when 'Compute'
|
49
|
+
data = visitCompute(elem, data)
|
50
|
+
|
51
|
+
when 'Operator'
|
52
|
+
data = visitOperator(elem, data)
|
53
|
+
|
54
|
+
when 'LeftOperand'
|
55
|
+
data = visitLeftOperand(elem, data)
|
56
|
+
|
57
|
+
when 'RightOperand'
|
58
|
+
data = visitRightOperand(elem, data)
|
59
|
+
|
60
|
+
when 'Brace'
|
61
|
+
data = visitBrace(elem, data)
|
62
|
+
|
63
|
+
when 'Constant'
|
64
|
+
data = visitConstant(elem, data)
|
65
|
+
|
66
|
+
when 'Rule'
|
67
|
+
data = visitRule(elem, data)
|
68
|
+
|
69
|
+
when 'Ruleset'
|
70
|
+
data = visitRuleset(elem, data)
|
71
|
+
|
72
|
+
when 'PPM'
|
73
|
+
data = visitPPM(elem, data)
|
74
|
+
|
75
|
+
when 'DPM'
|
76
|
+
data = visitDPM(elem, data)
|
77
|
+
|
78
|
+
when 'Condition'
|
79
|
+
data = visitCondition(elem, data)
|
80
|
+
|
81
|
+
when 'IfActions'
|
82
|
+
data = visitIfActions(elem, data)
|
83
|
+
|
84
|
+
when 'ElseActions'
|
85
|
+
data = visitElseActions(elem, data)
|
86
|
+
|
87
|
+
when 'Assign'
|
88
|
+
data = visitAssign(elem, data)
|
89
|
+
|
90
|
+
when 'AssignTo'
|
91
|
+
data = visitAssignTo(elem, data)
|
92
|
+
|
93
|
+
when 'AssignValue'
|
94
|
+
data = visitAssignValue(elem, data)
|
95
|
+
|
96
|
+
when 'Lookup'
|
97
|
+
data = visitLookup(elem, data)
|
98
|
+
|
99
|
+
when 'LOOKUP'
|
100
|
+
data = visitLookupData(elem, data)
|
101
|
+
|
102
|
+
when 'XParameter'
|
103
|
+
data = visitXParameter(elem, data)
|
104
|
+
|
105
|
+
when 'YParameter'
|
106
|
+
data = visitYParameter(elem, data)
|
107
|
+
|
108
|
+
when 'Function'
|
109
|
+
data = visitXmlFunction(elem, data)
|
110
|
+
|
111
|
+
when 'Args'
|
112
|
+
data = visitArgs(elem, data)
|
113
|
+
|
114
|
+
when 'Arg'
|
115
|
+
data = visitArg(elem, data)
|
116
|
+
|
117
|
+
else
|
118
|
+
data = visitDefault(elem, data)
|
119
|
+
end # case
|
120
|
+
|
121
|
+
return data
|
122
|
+
end # visit
|
123
|
+
|
124
|
+
|
125
|
+
#-------------------------------------------------------------------------------------------------------------#
|
126
|
+
# visitDefault - Handle default parsing
|
127
|
+
#
|
128
|
+
# elem - Element to visit
|
129
|
+
# data - output object to append GDL text to
|
130
|
+
#
|
131
|
+
# @returns GDL output
|
132
|
+
#
|
133
|
+
#------------------------------------------------------------------------------------------------------------#
|
134
|
+
def visitDefault(elem, data)
|
135
|
+
@@log.debug("XmlVisitor::visitDefault")
|
136
|
+
@@log.debug(elem.inspect)
|
137
|
+
|
138
|
+
elem.each_element do |child|
|
139
|
+
data = visit(child, data)
|
140
|
+
end
|
141
|
+
|
142
|
+
return data
|
143
|
+
end # visitDefault
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
#-------------------------------------------------------------------------------------------------------------#
|
148
|
+
# visitCompute - Handle default parsing
|
149
|
+
#
|
150
|
+
# elem - Element to visit
|
151
|
+
# data - output object to append GDL text to
|
152
|
+
#
|
153
|
+
# @returns GDL output
|
154
|
+
#
|
155
|
+
#------------------------------------------------------------------------------------------------------------#
|
156
|
+
def visitCompute(elem, data)
|
157
|
+
@@log.debug("XmlVisitor::visitCompute")
|
158
|
+
@@log.debug(elem.inspect)
|
159
|
+
|
160
|
+
elem.each_element do |child|
|
161
|
+
data = visit(child, data)
|
162
|
+
end
|
163
|
+
|
164
|
+
return data
|
165
|
+
end # visitCompute
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
#-------------------------------------------------------------------------------------------------------------#
|
170
|
+
# visitExpression - Handle default parsing
|
171
|
+
#
|
172
|
+
# elem - Element to visit
|
173
|
+
# data - output object to append GDL text to
|
174
|
+
#
|
175
|
+
# @returns GDL output
|
176
|
+
#
|
177
|
+
#------------------------------------------------------------------------------------------------------------#
|
178
|
+
def visitExpression(elem, data)
|
179
|
+
@@log.debug("XmlVisitor::visitExpression")
|
180
|
+
@@log.debug(elem.inspect)
|
181
|
+
|
182
|
+
elem.each_element do |child|
|
183
|
+
data = visit(child, data)
|
184
|
+
end
|
185
|
+
|
186
|
+
return data
|
187
|
+
end # visitExpression
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
#-------------------------------------------------------------------------------------------------------------#
|
192
|
+
# visitOperator - Handle default parsing
|
193
|
+
#
|
194
|
+
# elem - Element to visit
|
195
|
+
# data - output object to append GDL text to
|
196
|
+
#
|
197
|
+
# @returns GDL output
|
198
|
+
#
|
199
|
+
#------------------------------------------------------------------------------------------------------------#
|
200
|
+
def visitOperator(elem, data)
|
201
|
+
@@log.debug("XmlVisitor::visitOperator")
|
202
|
+
@@log.debug(elem.inspect)
|
203
|
+
|
204
|
+
elem.each_element do |child|
|
205
|
+
data = visit(child, data)
|
206
|
+
end
|
207
|
+
|
208
|
+
return data
|
209
|
+
end # visitOperator
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
#-------------------------------------------------------------------------------------------------------------#
|
214
|
+
# visitLeftOperand - Handle default parsing
|
215
|
+
#
|
216
|
+
# elem - Element to visit
|
217
|
+
# data - output object to append GDL text to
|
218
|
+
#
|
219
|
+
# @returns GDL output
|
220
|
+
#
|
221
|
+
#------------------------------------------------------------------------------------------------------------#
|
222
|
+
def visitLeftOperand(elem, data)
|
223
|
+
@@log.debug("XmlVisitor::visitLeftOperand")
|
224
|
+
@@log.debug(elem.inspect)
|
225
|
+
|
226
|
+
elem.each_element do |child|
|
227
|
+
data = visit(child, data)
|
228
|
+
end
|
229
|
+
|
230
|
+
return data
|
231
|
+
end # visitLeftOperand
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
#-------------------------------------------------------------------------------------------------------------#
|
236
|
+
# visitRightOperand - Handle default parsing
|
237
|
+
#
|
238
|
+
# elem - Element to visit
|
239
|
+
# data - output object to append GDL text to
|
240
|
+
#
|
241
|
+
# @returns GDL output
|
242
|
+
#
|
243
|
+
#------------------------------------------------------------------------------------------------------------#
|
244
|
+
def visitRightOperand(elem, data)
|
245
|
+
@@log.debug("XmlVisitor::visitRightOperand")
|
246
|
+
@@log.debug(elem.inspect)
|
247
|
+
|
248
|
+
elem.each_element do |child|
|
249
|
+
data = visit(child, data)
|
250
|
+
end
|
251
|
+
|
252
|
+
return data
|
253
|
+
end # visitRightOperand
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
#-------------------------------------------------------------------------------------------------------------#
|
258
|
+
# visitBrace - Handle default parsing
|
259
|
+
#
|
260
|
+
# elem - Element to visit
|
261
|
+
# data - output object to append GDL text to
|
262
|
+
#
|
263
|
+
# @returns GDL output
|
264
|
+
#
|
265
|
+
#------------------------------------------------------------------------------------------------------------#
|
266
|
+
def visitBrace(elem, data)
|
267
|
+
@@log.debug("XmlVisitor::visitBrace")
|
268
|
+
@@log.debug(elem.inspect)
|
269
|
+
|
270
|
+
elem.each_element do |child|
|
271
|
+
data = visit(child, data)
|
272
|
+
end
|
273
|
+
|
274
|
+
return data
|
275
|
+
end # visitBrace
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
#-------------------------------------------------------------------------------------------------------------#
|
280
|
+
# visitConstant - Handle default parsing
|
281
|
+
#
|
282
|
+
# elem - Element to visit
|
283
|
+
# data - output object to append GDL text to
|
284
|
+
#
|
285
|
+
# @returns GDL output
|
286
|
+
#
|
287
|
+
#------------------------------------------------------------------------------------------------------------#
|
288
|
+
def visitConstant(elem, data)
|
289
|
+
@@log.debug("XmlVisitor::visitConstant")
|
290
|
+
@@log.debug(elem.inspect)
|
291
|
+
|
292
|
+
elem.each_element do |child|
|
293
|
+
data = visit(child, data)
|
294
|
+
end
|
295
|
+
|
296
|
+
return data
|
297
|
+
end # visitConstant
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
#-------------------------------------------------------------------------------------------------------------#
|
302
|
+
# visitRule - Handle default parsing
|
303
|
+
#
|
304
|
+
# elem - Element to visit
|
305
|
+
# data - output object to append GDL text to
|
306
|
+
#
|
307
|
+
# @returns GDL output
|
308
|
+
#
|
309
|
+
#------------------------------------------------------------------------------------------------------------#
|
310
|
+
def visitRule(elem, data)
|
311
|
+
@@log.debug("XmlVisitor::visitRule")
|
312
|
+
@@log.debug(elem.inspect)
|
313
|
+
|
314
|
+
elem.each_element do |child|
|
315
|
+
data = visit(child, data)
|
316
|
+
end
|
317
|
+
|
318
|
+
return data
|
319
|
+
end # visitRule
|
320
|
+
|
321
|
+
|
322
|
+
#-------------------------------------------------------------------------------------------------------------#
|
323
|
+
# visitRuleset - Handle default parsing
|
324
|
+
#
|
325
|
+
# elem - Element to visit
|
326
|
+
# data - output object to append GDL text to
|
327
|
+
#
|
328
|
+
# @returns GDL output
|
329
|
+
#
|
330
|
+
#------------------------------------------------------------------------------------------------------------#
|
331
|
+
def visitRuleset(elem, data)
|
332
|
+
@@log.debug("XmlVisitor::visitRuleset")
|
333
|
+
@@log.debug(elem.inspect)
|
334
|
+
|
335
|
+
elem.each_element do |child|
|
336
|
+
data = visit(child, data)
|
337
|
+
end
|
338
|
+
|
339
|
+
return data
|
340
|
+
end # visitRuleset
|
341
|
+
|
342
|
+
|
343
|
+
#-------------------------------------------------------------------------------------------------------------#
|
344
|
+
# visitPPM - Handle default parsing
|
345
|
+
#
|
346
|
+
# elem - Element to visit
|
347
|
+
# data - output object to append GDL text to
|
348
|
+
#
|
349
|
+
# @returns GDL output
|
350
|
+
#
|
351
|
+
#------------------------------------------------------------------------------------------------------------#
|
352
|
+
def visitPPM(elem, data)
|
353
|
+
@@log.debug("XmlVisitor::visitPPM")
|
354
|
+
@@log.debug(elem.inspect)
|
355
|
+
|
356
|
+
elem.each_element do |child|
|
357
|
+
data = visit(child, data)
|
358
|
+
end
|
359
|
+
|
360
|
+
return data
|
361
|
+
end # visitPPM
|
362
|
+
|
363
|
+
|
364
|
+
#-------------------------------------------------------------------------------------------------------------#
|
365
|
+
# visitDPM - Handle default parsing
|
366
|
+
#
|
367
|
+
# elem - Element to visit
|
368
|
+
# data - output object to append GDL text to
|
369
|
+
#
|
370
|
+
# @returns GDL output
|
371
|
+
#
|
372
|
+
#------------------------------------------------------------------------------------------------------------#
|
373
|
+
def visitDPM(elem, data)
|
374
|
+
@@log.debug("XmlVisitor::visitDPM")
|
375
|
+
@@log.debug(elem.inspect)
|
376
|
+
|
377
|
+
elem.each_element do |child|
|
378
|
+
data = visit(child, data)
|
379
|
+
end
|
380
|
+
|
381
|
+
return data
|
382
|
+
end # visitDPM
|
383
|
+
|
384
|
+
|
385
|
+
#-------------------------------------------------------------------------------------------------------------#
|
386
|
+
# visitCondition - Handle default parsing
|
387
|
+
#
|
388
|
+
# elem - Element to visit
|
389
|
+
# data - output object to append GDL text to
|
390
|
+
#
|
391
|
+
# @returns GDL output
|
392
|
+
#
|
393
|
+
#------------------------------------------------------------------------------------------------------------#
|
394
|
+
def visitCondition(elem, data)
|
395
|
+
@@log.debug("XmlVisitor::visitCondition")
|
396
|
+
@@log.debug(elem.inspect)
|
397
|
+
|
398
|
+
if (elem.elements.size < 1)
|
399
|
+
@@log.error("*** Condition element has no children.")
|
400
|
+
end
|
401
|
+
|
402
|
+
elem.each_element do |child|
|
403
|
+
data = visit(child, data)
|
404
|
+
end
|
405
|
+
|
406
|
+
return data
|
407
|
+
end # visitCondition
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
#-------------------------------------------------------------------------------------------------------------#
|
412
|
+
# visitIfActions - Handle default parsing
|
413
|
+
#
|
414
|
+
# elem - Element to visit
|
415
|
+
# data - output object to append GDL text to
|
416
|
+
#
|
417
|
+
# @returns GDL output
|
418
|
+
#
|
419
|
+
#------------------------------------------------------------------------------------------------------------#
|
420
|
+
def visitIfActions(elem, data)
|
421
|
+
@@log.debug("XmlVisitor::visitIfActions")
|
422
|
+
@@log.debug(elem.inspect)
|
423
|
+
|
424
|
+
if (elem.elements.size < 1)
|
425
|
+
@@log.error("*** IfActions element has no children.")
|
426
|
+
end
|
427
|
+
|
428
|
+
elem.each_element do |child|
|
429
|
+
data = visit(child, data)
|
430
|
+
end
|
431
|
+
|
432
|
+
return data
|
433
|
+
end # visitIfActions
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
#-------------------------------------------------------------------------------------------------------------#
|
438
|
+
# visitElseActions - Handle default parsing
|
439
|
+
#
|
440
|
+
# elem - Element to visit
|
441
|
+
# data - output object to append GDL text to
|
442
|
+
#
|
443
|
+
# @returns GDL output
|
444
|
+
#
|
445
|
+
#------------------------------------------------------------------------------------------------------------#
|
446
|
+
def visitElseActions(elem, data)
|
447
|
+
@@log.debug("XmlVisitor::visitElseActions")
|
448
|
+
@@log.debug(elem.inspect)
|
449
|
+
|
450
|
+
if (elem.elements.size < 1)
|
451
|
+
@@log.error("*** ElseActions element has no children.")
|
452
|
+
end
|
453
|
+
|
454
|
+
elem.each_element do |child|
|
455
|
+
data = visit(child, data)
|
456
|
+
end
|
457
|
+
|
458
|
+
return data
|
459
|
+
end # visitElseActions
|
460
|
+
|
461
|
+
|
462
|
+
#-------------------------------------------------------------------------------------------------------------#
|
463
|
+
# visitAssign - Handle default parsing
|
464
|
+
#
|
465
|
+
# elem - Element to visit
|
466
|
+
# data - output object to append GDL text to
|
467
|
+
#
|
468
|
+
# @returns GDL output
|
469
|
+
#
|
470
|
+
#------------------------------------------------------------------------------------------------------------#
|
471
|
+
def visitAssign(elem, data)
|
472
|
+
@@log.debug("XmlVisitor::visitAssign")
|
473
|
+
@@log.debug(elem.inspect)
|
474
|
+
|
475
|
+
if (elem.elements.size < 1)
|
476
|
+
@@log.error("*** Assign element has no children.")
|
477
|
+
end
|
478
|
+
|
479
|
+
elem.each_element do |child|
|
480
|
+
data = visit(child, data)
|
481
|
+
end
|
482
|
+
|
483
|
+
return data
|
484
|
+
end # visitAssign
|
485
|
+
|
486
|
+
|
487
|
+
|
488
|
+
#-------------------------------------------------------------------------------------------------------------#
|
489
|
+
# visitAssignTo - Handle default parsing
|
490
|
+
#
|
491
|
+
# elem - Element to visit
|
492
|
+
# data - output object to append GDL text to
|
493
|
+
#
|
494
|
+
# @returns GDL output
|
495
|
+
#
|
496
|
+
#------------------------------------------------------------------------------------------------------------#
|
497
|
+
def visitAssignTo(elem, data)
|
498
|
+
@@log.debug("XmlVisitor::visitAssignTo")
|
499
|
+
@@log.debug(elem.inspect)
|
500
|
+
|
501
|
+
if (elem.elements.size < 1)
|
502
|
+
@@log.error("*** AssignTo element has no children.")
|
503
|
+
end
|
504
|
+
|
505
|
+
elem.each_element do |child|
|
506
|
+
data = visit(child, data)
|
507
|
+
end
|
508
|
+
|
509
|
+
return data
|
510
|
+
end # visitAssignTo
|
511
|
+
|
512
|
+
|
513
|
+
|
514
|
+
#-------------------------------------------------------------------------------------------------------------#
|
515
|
+
# visitAssignValue - Handle default parsing
|
516
|
+
#
|
517
|
+
# elem - Element to visit
|
518
|
+
# data - output object to append GDL text to
|
519
|
+
#
|
520
|
+
# @returns GDL output
|
521
|
+
#
|
522
|
+
#------------------------------------------------------------------------------------------------------------#
|
523
|
+
def visitAssignValue(elem, data)
|
524
|
+
@@log.debug("XmlVisitor::visitAssignValue")
|
525
|
+
@@log.debug(elem.inspect)
|
526
|
+
|
527
|
+
if (elem.elements.size < 1)
|
528
|
+
@@log.error("*** AssignValue element has no children.")
|
529
|
+
end
|
530
|
+
|
531
|
+
elem.each_element do |child|
|
532
|
+
data = visit(child, data)
|
533
|
+
end
|
534
|
+
|
535
|
+
return data
|
536
|
+
end # visitAssignValue
|
537
|
+
|
538
|
+
|
539
|
+
|
540
|
+
#-------------------------------------------------------------------------------------------------------------#
|
541
|
+
# visitLookup - Handle default parsing
|
542
|
+
#
|
543
|
+
# elem - Element to visit
|
544
|
+
# data - output object to append GDL text to
|
545
|
+
#
|
546
|
+
# @returns GDL output
|
547
|
+
#
|
548
|
+
#------------------------------------------------------------------------------------------------------------#
|
549
|
+
def visitLookup(elem, data)
|
550
|
+
@@log.debug("XmlVisitor::visitLookup")
|
551
|
+
@@log.debug(elem.inspect)
|
552
|
+
|
553
|
+
elem.each_element do |child|
|
554
|
+
data = visit(child, data)
|
555
|
+
end
|
556
|
+
|
557
|
+
return data
|
558
|
+
end # visitLookup
|
559
|
+
|
560
|
+
|
561
|
+
|
562
|
+
#-------------------------------------------------------------------------------------------------------------#
|
563
|
+
# visitLookupData - Handle default parsing
|
564
|
+
#
|
565
|
+
# elem - Element to visit
|
566
|
+
# data - output object to append GDL text to
|
567
|
+
#
|
568
|
+
# @returns GDL output
|
569
|
+
#
|
570
|
+
#------------------------------------------------------------------------------------------------------------#
|
571
|
+
def visitLookupData(elem, data)
|
572
|
+
@@log.debug("XmlVisitor::visitLookupData")
|
573
|
+
@@log.debug(elem.inspect)
|
574
|
+
|
575
|
+
elem.each_element do |child|
|
576
|
+
data = visit(child, data)
|
577
|
+
end
|
578
|
+
|
579
|
+
return data
|
580
|
+
end # visitLookupData
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
#-------------------------------------------------------------------------------------------------------------#
|
585
|
+
# visitXParameter - Handle default parsing
|
586
|
+
#
|
587
|
+
# elem - Element to visit
|
588
|
+
# data - output object to append GDL text to
|
589
|
+
#
|
590
|
+
# @returns GDL output
|
591
|
+
#
|
592
|
+
#------------------------------------------------------------------------------------------------------------#
|
593
|
+
def visitXParameter(elem, data)
|
594
|
+
@@log.debug("XmlVisitor::visitXParameter")
|
595
|
+
@@log.debug(elem.inspect)
|
596
|
+
|
597
|
+
elem.each_element do |child|
|
598
|
+
data = visit(child, data)
|
599
|
+
end
|
600
|
+
|
601
|
+
return data
|
602
|
+
end # visitXParameter
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
#-------------------------------------------------------------------------------------------------------------#
|
607
|
+
# visitYParameter - Handle default parsing
|
608
|
+
#
|
609
|
+
# elem - Element to visit
|
610
|
+
# data - output object to append GDL text to
|
611
|
+
#
|
612
|
+
# @returns GDL output
|
613
|
+
#
|
614
|
+
#------------------------------------------------------------------------------------------------------------#
|
615
|
+
def visitYParameter(elem, data)
|
616
|
+
@@log.debug("XmlVisitor::visitYParameter")
|
617
|
+
@@log.debug(elem.inspect)
|
618
|
+
|
619
|
+
elem.each_element do |child|
|
620
|
+
data = visit(child, data)
|
621
|
+
end
|
622
|
+
|
623
|
+
return data
|
624
|
+
end # visitYParameter
|
625
|
+
|
626
|
+
|
627
|
+
|
628
|
+
#-------------------------------------------------------------------------------------------------------------#
|
629
|
+
# visitXmlFunction - Handle default parsing
|
630
|
+
#
|
631
|
+
# elem - Element to visit
|
632
|
+
# data - output object to append GDL text to
|
633
|
+
#
|
634
|
+
# @returns GDL output
|
635
|
+
#
|
636
|
+
#------------------------------------------------------------------------------------------------------------#
|
637
|
+
def visitXmlFunction(elem, data)
|
638
|
+
@@log.debug("XmlVisitor::visitXmlFunction")
|
639
|
+
@@log.debug(elem.inspect)
|
640
|
+
|
641
|
+
elem.each_element do |child|
|
642
|
+
data = visit(child, data)
|
643
|
+
end
|
644
|
+
|
645
|
+
return data
|
646
|
+
end # visitXmlFunction
|
647
|
+
|
648
|
+
|
649
|
+
#-------------------------------------------------------------------------------------------------------------#
|
650
|
+
# visitArgs - Handle default parsing
|
651
|
+
#
|
652
|
+
# elem - Element to visit
|
653
|
+
# data - output object to append GDL text to
|
654
|
+
#
|
655
|
+
# @returns GDL output
|
656
|
+
#
|
657
|
+
#------------------------------------------------------------------------------------------------------------#
|
658
|
+
def visitArgs(elem, data)
|
659
|
+
@@log.debug("XmlVisitor::visitArgs")
|
660
|
+
@@log.debug(elem.inspect)
|
661
|
+
|
662
|
+
elem.each_element do |child|
|
663
|
+
data = visit(child, data)
|
664
|
+
end
|
665
|
+
|
666
|
+
return data
|
667
|
+
end # visitArgs
|
668
|
+
|
669
|
+
|
670
|
+
#-------------------------------------------------------------------------------------------------------------#
|
671
|
+
# visitArg - Handle default parsing
|
672
|
+
#
|
673
|
+
# elem - Element to visit
|
674
|
+
# data - output object to append GDL text to
|
675
|
+
#
|
676
|
+
# @returns GDL output
|
677
|
+
#
|
678
|
+
#------------------------------------------------------------------------------------------------------------#
|
679
|
+
def visitArg(elem, data)
|
680
|
+
@@log.debug("XmlVisitor::visitArg")
|
681
|
+
@@log.debug(elem.inspect)
|
682
|
+
|
683
|
+
elem.each_element do |child|
|
684
|
+
data = visit(child, data)
|
685
|
+
end
|
686
|
+
|
687
|
+
return data
|
688
|
+
end # visitArg
|
689
|
+
end # class XmlVisitor
|
690
|
+
|
data/lib/xmlutils.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#-------------------------------------------------------------------------------------------------------------#
|
2
|
+
# XmlUtils library
|
3
|
+
#
|
4
|
+
# XmlUtils scripts written by Jeff McAffee 11/03/07
|
5
|
+
# Purpose: XML Utility objects/classes
|
6
|
+
#
|
7
|
+
#------------------------------------------------------------------------------------------------------------#
|
8
|
+
|
9
|
+
require 'find'
|
10
|
+
require 'logger'
|
11
|
+
|
12
|
+
$LOGGING = true # TODO: Change this flag to false when releasing production build.
|
13
|
+
|
14
|
+
if(!$LOG)
|
15
|
+
if($LOGGING)
|
16
|
+
# Create a new log file each time:
|
17
|
+
file = File.open('xmlutils.log', File::WRONLY | File::APPEND | File::CREAT | File::TRUNC)
|
18
|
+
$LOG = Logger.new(file)
|
19
|
+
#$LOG = Logger.new('xmlutils.log', 2)
|
20
|
+
$LOG.level = Logger::DEBUG
|
21
|
+
#$LOG.level = Logger::INFO
|
22
|
+
else
|
23
|
+
$LOG = Logger.new(STDERR)
|
24
|
+
$LOG.level = Logger::ERROR
|
25
|
+
end
|
26
|
+
$LOG.info "**********************************************************************"
|
27
|
+
$LOG.info "Logging started for XmlUtils library."
|
28
|
+
$LOG.info "**********************************************************************"
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
require 'xmlutils/xmltogdlcontroller'
|
34
|
+
require 'xmlutils/xmltogdltask'
|
35
|
+
require 'xmlutils/xmlvisitor'
|
36
|
+
require 'xmlutils/ruleparser'
|
37
|
+
require 'xmlutils/contextparser'
|
38
|
+
require 'xmlutils/xmlrulevisitor'
|
39
|
+
require 'xmlutils/gdldocbuilder'
|
40
|
+
|