001 /*
002 // This java file was automatically generated
003 // from XOM model 'meta'
004 // on Thu Jun 28 23:30:01 UTC 2012
005 // Do not edit this file by hand.
006 */
007
008 package org.eigenbase.xom;
009 /**
010 * This model is the XOM Meta Model. It is the specification of the model used
011 * to define new XML-based models. It is also an instance of itself.
012 * <p>This class was generated from XOM model 'meta' on Thu Jun 28 23:30:01 UTC 2012
013 */
014 public class MetaDef {
015
016 public static java.lang.Class getXMLDefClass()
017 {
018 return MetaDef.class;
019 }
020
021 public static String[] _elements = {
022 "Model",
023 "Definition",
024 "FullDefinition",
025 "Element",
026 "Class",
027 "StringElement",
028 "Plugin",
029 "Import",
030 "Doc",
031 "Code",
032 "Attribute",
033 "Value",
034 "Content",
035 "Object",
036 "Array",
037 "Any",
038 "CData"
039 };
040
041 /**
042 * Model is the top-level element for a model description. The model element
043 * contains all other elements in the model and also defines the model's
044 * basic attributes, such as its name and version number.
045 */
046 public static class Model extends org.eigenbase.xom.ElementDef
047 {
048 public Model()
049 {
050 }
051
052 public Model(org.eigenbase.xom.DOMWrapper _def)
053 throws org.eigenbase.xom.XOMException
054 {
055 this._def = _def;
056 try {
057 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
058 org.eigenbase.xom.NodeDef[] _tempArray;
059 name = (String)_parser.getAttribute("name", "String", null, null, true);
060 dtdName = (String)_parser.getAttribute("dtdName", "String", null, null, false);
061 className = (String)_parser.getAttribute("className", "String", null, null, false);
062 packageName = (String)_parser.getAttribute("packageName", "String", null, null, false);
063 importName = (String)_parser.getAttribute("importName", "String", null, null, false);
064 root = (String)_parser.getAttribute("root", "String", null, null, true);
065 prefix = (String)_parser.getAttribute("prefix", "String", null, null, false);
066 version = (Double)_parser.getAttribute("version", "Double", null, null, true);
067 defaultKeepDef = (Boolean)_parser.getAttribute("defaultKeepDef", "Boolean", "false", null, false);
068 doc = _parser.getString(Doc, false);
069 _tempArray = _parser.getArray(Definition.class, 1, 0);
070 elements = new Definition[_tempArray.length];
071 for (int _i = 0; _i < elements.length; _i++)
072 elements[_i] = (Definition)_tempArray[_i];
073 } catch(org.eigenbase.xom.XOMException _ex) {
074 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
075 }
076 }
077
078 public String name; // required attribute
079 public String dtdName; // optional attribute
080 public String className; // optional attribute
081 public String packageName; // optional attribute
082 public String importName; // optional attribute
083 public String root; // required attribute
084 public String prefix; // optional attribute
085 public Double version; // required attribute
086 public Boolean defaultKeepDef; // attribute default: false
087 public org.eigenbase.xom.DOMWrapper _def;
088
089 public String doc; //optional element
090 /**
091 * The elements array contains a definition for each element within the
092 * model. Elements include Class, Element, and String definitions.
093 */
094 public Definition[] elements; //min 1
095
096 public String getName()
097 {
098 return "Model";
099 }
100
101 public void display(java.io.PrintWriter _out, int _indent)
102 {
103 _out.println(getName());
104 displayAttribute(_out, "name", name, _indent+1);
105 displayAttribute(_out, "dtdName", dtdName, _indent+1);
106 displayAttribute(_out, "className", className, _indent+1);
107 displayAttribute(_out, "packageName", packageName, _indent+1);
108 displayAttribute(_out, "importName", importName, _indent+1);
109 displayAttribute(_out, "root", root, _indent+1);
110 displayAttribute(_out, "prefix", prefix, _indent+1);
111 displayAttribute(_out, "version", version, _indent+1);
112 displayAttribute(_out, "defaultKeepDef", defaultKeepDef, _indent+1);
113 displayString(_out, "doc", doc, _indent+1);
114 displayElementArray(_out, "elements", elements, _indent+1);
115 }
116 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
117 {
118 _out.beginTag("Model", new org.eigenbase.xom.XMLAttrVector()
119 .add("name", name)
120 .add("dtdName", dtdName)
121 .add("className", className)
122 .add("packageName", packageName)
123 .add("importName", importName)
124 .add("root", root)
125 .add("prefix", prefix)
126 .add("version", version)
127 .add("defaultKeepDef", defaultKeepDef)
128 );
129 displayXMLString(_out, "Doc", doc);
130 displayXMLElementArray(_out, elements);
131 _out.endTag("Model");
132 }
133 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
134 {
135 Model _cother = (Model)_other;
136 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
137 _diff = _diff && displayAttributeDiff("dtdName", dtdName, _cother.dtdName, _out, _indent+1);
138 _diff = _diff && displayAttributeDiff("className", className, _cother.className, _out, _indent+1);
139 _diff = _diff && displayAttributeDiff("packageName", packageName, _cother.packageName, _out, _indent+1);
140 _diff = _diff && displayAttributeDiff("importName", importName, _cother.importName, _out, _indent+1);
141 _diff = _diff && displayAttributeDiff("root", root, _cother.root, _out, _indent+1);
142 _diff = _diff && displayAttributeDiff("prefix", prefix, _cother.prefix, _out, _indent+1);
143 _diff = _diff && displayAttributeDiff("version", version, _cother.version, _out, _indent+1);
144 _diff = _diff && displayAttributeDiff("defaultKeepDef", defaultKeepDef, _cother.defaultKeepDef, _out, _indent+1);
145 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
146 _diff = _diff && displayElementArrayDiff("elements", elements, _cother.elements, _out, _indent+1);
147 return _diff;
148 }
149 }
150
151 /**
152 * The Definition class represents a generic type of element definition.
153 * The actual definition may be of a Class, Element, or String.
154 * Definitions are the basic building blocks of a model.
155 */
156 public interface Definition extends org.eigenbase.xom.NodeDef
157 {
158 }
159
160 /**
161 * The FullDefinition class represents a fully-specified definition
162 * that may include content.
163 */
164 public interface FullDefinition extends Definition
165 {
166 }
167
168 /**
169 * An Element Definition defines a basic entity of the meta model. Elements
170 * are containers for two types of data: attributes and content. Attributes
171 * are simple name/value pairs which may take on the full range of Java
172 * types. Content consists of other Elements and Strings, either
173 * appearing alone or as arrays.
174 */
175 public static class Element extends org.eigenbase.xom.ElementDef implements FullDefinition
176 {
177 public Element()
178 {
179 }
180
181 public Element(org.eigenbase.xom.DOMWrapper _def)
182 throws org.eigenbase.xom.XOMException
183 {
184 this._def = _def;
185 try {
186 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
187 org.eigenbase.xom.NodeDef[] _tempArray;
188 type = (String)_parser.getAttribute("type", "String", null, null, true);
189 _class = (String)_parser.getAttribute("class", "String", null, null, false);
190 dtdName = (String)_parser.getAttribute("dtdName", "String", null, null, false);
191 _abstract = (Boolean)_parser.getAttribute("abstract", "Boolean", "false", null, false);
192 contentModel = (String)_parser.getAttribute("contentModel", "String", "sequential", _contentModel_values, false);
193 keepDef = (Boolean)_parser.getAttribute("keepDef", "Boolean", null, null, false);
194 doc = _parser.getString(Doc, false);
195 _tempArray = _parser.getArray(Attribute.class, 0, 0);
196 attributes = new Attribute[_tempArray.length];
197 for (int _i = 0; _i < attributes.length; _i++)
198 attributes[_i] = (Attribute)_tempArray[_i];
199 _tempArray = _parser.getArray(Content.class, 0, 0);
200 content = new Content[_tempArray.length];
201 for (int _i = 0; _i < content.length; _i++)
202 content[_i] = (Content)_tempArray[_i];
203 any = (Any)_parser.getElement(Any.class, false);
204 cdata = (CData)_parser.getElement(CData.class, false);
205 code = _parser.getString(Code, false);
206 } catch(org.eigenbase.xom.XOMException _ex) {
207 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
208 }
209 }
210
211 /** Allowable values for {@link #contentModel}. */
212 public static final String[] _contentModel_values = {"sequential", "random", "mixed", "any", "cdata"};
213 public String contentModel; // attribute default: sequential
214 public Boolean keepDef; // optional attribute
215 public String type; // required attribute
216 public String _class; // optional attribute
217 public String dtdName; // optional attribute
218 public Boolean _abstract; // attribute default: false
219 public org.eigenbase.xom.DOMWrapper _def;
220
221 /**
222 * Doc tags allow documentation to be added to any definition. The
223 * documentation will automatically appear in all physical forms
224 * of this model, including dtds, java classes, and the xsl
225 * transformation.
226 */
227 public String doc; //optional element
228 /**
229 * This array defines all attributes to appear within this class or
230 * element.
231 */
232 public Attribute[] attributes; //optional array
233 /**
234 * This array defines all content (objects and arrays) to appear within
235 * this class or element. The interpretation of this array depends
236 * on the element's defined content model.
237 */
238 public Content[] content; //optional array
239 public Any any; //optional element
240 public CData cdata; //optional element
241 /**
242 * This element allows arbitrary Java Code to be attached to any
243 * class or element. Code sections are not verified until the final
244 * .java class is compiled and should be used sparingly.
245 */
246 public String code; //optional element
247
248 public String getName()
249 {
250 return "Element";
251 }
252
253 public void display(java.io.PrintWriter _out, int _indent)
254 {
255 _out.println(getName());
256 displayAttribute(_out, "type", type, _indent+1);
257 displayAttribute(_out, "class", _class, _indent+1);
258 displayAttribute(_out, "dtdName", dtdName, _indent+1);
259 displayAttribute(_out, "abstract", _abstract, _indent+1);
260 displayAttribute(_out, "contentModel", contentModel, _indent+1);
261 displayAttribute(_out, "keepDef", keepDef, _indent+1);
262 displayString(_out, "doc", doc, _indent+1);
263 displayElementArray(_out, "attributes", attributes, _indent+1);
264 displayElementArray(_out, "content", content, _indent+1);
265 displayElement(_out, "any", (org.eigenbase.xom.ElementDef) any, _indent+1);
266 displayElement(_out, "cdata", (org.eigenbase.xom.ElementDef) cdata, _indent+1);
267 displayString(_out, "code", code, _indent+1);
268 }
269 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
270 {
271 _out.beginTag("Element", new org.eigenbase.xom.XMLAttrVector()
272 .add("type", type)
273 .add("class", _class)
274 .add("dtdName", dtdName)
275 .add("abstract", _abstract)
276 .add("contentModel", contentModel)
277 .add("keepDef", keepDef)
278 );
279 displayXMLString(_out, "Doc", doc);
280 displayXMLElementArray(_out, attributes);
281 displayXMLElementArray(_out, content);
282 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) any);
283 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) cdata);
284 displayXMLString(_out, "Code", code);
285 _out.endTag("Element");
286 }
287 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
288 {
289 Element _cother = (Element)_other;
290 boolean _diff = displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
291 _diff = _diff && displayAttributeDiff("class", _class, _cother._class, _out, _indent+1);
292 _diff = _diff && displayAttributeDiff("dtdName", dtdName, _cother.dtdName, _out, _indent+1);
293 _diff = _diff && displayAttributeDiff("abstract", _abstract, _cother._abstract, _out, _indent+1);
294 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
295 _diff = _diff && displayElementArrayDiff("attributes", attributes, _cother.attributes, _out, _indent+1);
296 _diff = _diff && displayElementArrayDiff("content", content, _cother.content, _out, _indent+1);
297 _diff = _diff && displayElementDiff("any", any, _cother.any, _out, _indent+1);
298 _diff = _diff && displayElementDiff("cdata", cdata, _cother.cdata, _out, _indent+1);
299 _diff = _diff && displayStringDiff("code", code, _cother.code, _out, _indent+1);
300 return _diff;
301 }
302 }
303
304 /**
305 * A Class Definition defines a class of entities. A class specifies a group
306 * of entities with similar properties. Full inheritence is supported,
307 * although there are limits on what can be overridden.
308 */
309 public static class Class extends org.eigenbase.xom.ElementDef implements FullDefinition
310 {
311 public Class()
312 {
313 }
314
315 public Class(org.eigenbase.xom.DOMWrapper _def)
316 throws org.eigenbase.xom.XOMException
317 {
318 this._def = _def;
319 try {
320 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
321 org.eigenbase.xom.NodeDef[] _tempArray;
322 _class = (String)_parser.getAttribute("class", "String", null, null, true);
323 superclass = (String)_parser.getAttribute("superclass", "String", null, null, false);
324 contentModel = (String)_parser.getAttribute("contentModel", "String", "sequential", _contentModel_values, false);
325 keepDef = (Boolean)_parser.getAttribute("keepDef", "Boolean", null, null, false);
326 doc = _parser.getString(Doc, false);
327 _tempArray = _parser.getArray(Attribute.class, 0, 0);
328 attributes = new Attribute[_tempArray.length];
329 for (int _i = 0; _i < attributes.length; _i++)
330 attributes[_i] = (Attribute)_tempArray[_i];
331 _tempArray = _parser.getArray(Content.class, 0, 0);
332 content = new Content[_tempArray.length];
333 for (int _i = 0; _i < content.length; _i++)
334 content[_i] = (Content)_tempArray[_i];
335 any = (Any)_parser.getElement(Any.class, false);
336 cdata = (CData)_parser.getElement(CData.class, false);
337 code = _parser.getString(Code, false);
338 } catch(org.eigenbase.xom.XOMException _ex) {
339 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
340 }
341 }
342
343 /** Allowable values for {@link #contentModel}. */
344 public static final String[] _contentModel_values = {"sequential", "random", "mixed", "any", "cdata"};
345 public String contentModel; // attribute default: sequential
346 public Boolean keepDef; // optional attribute
347 public String _class; // required attribute
348 public String superclass; // optional attribute
349 public org.eigenbase.xom.DOMWrapper _def;
350
351 /**
352 * Doc tags allow documentation to be added to any definition. The
353 * documentation will automatically appear in all physical forms
354 * of this model, including dtds, java classes, and the xsl
355 * transformation.
356 */
357 public String doc; //optional element
358 /**
359 * This array defines all attributes to appear within this class or
360 * element.
361 */
362 public Attribute[] attributes; //optional array
363 /**
364 * This array defines all content (objects and arrays) to appear within
365 * this class or element. The interpretation of this array depends
366 * on the element's defined content model.
367 */
368 public Content[] content; //optional array
369 public Any any; //optional element
370 public CData cdata; //optional element
371 /**
372 * This element allows arbitrary Java Code to be attached to any
373 * class or element. Code sections are not verified until the final
374 * .java class is compiled and should be used sparingly.
375 */
376 public String code; //optional element
377
378 public String getName()
379 {
380 return "Class";
381 }
382
383 public void display(java.io.PrintWriter _out, int _indent)
384 {
385 _out.println(getName());
386 displayAttribute(_out, "class", _class, _indent+1);
387 displayAttribute(_out, "superclass", superclass, _indent+1);
388 displayAttribute(_out, "contentModel", contentModel, _indent+1);
389 displayAttribute(_out, "keepDef", keepDef, _indent+1);
390 displayString(_out, "doc", doc, _indent+1);
391 displayElementArray(_out, "attributes", attributes, _indent+1);
392 displayElementArray(_out, "content", content, _indent+1);
393 displayElement(_out, "any", (org.eigenbase.xom.ElementDef) any, _indent+1);
394 displayElement(_out, "cdata", (org.eigenbase.xom.ElementDef) cdata, _indent+1);
395 displayString(_out, "code", code, _indent+1);
396 }
397 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
398 {
399 _out.beginTag("Class", new org.eigenbase.xom.XMLAttrVector()
400 .add("class", _class)
401 .add("superclass", superclass)
402 .add("contentModel", contentModel)
403 .add("keepDef", keepDef)
404 );
405 displayXMLString(_out, "Doc", doc);
406 displayXMLElementArray(_out, attributes);
407 displayXMLElementArray(_out, content);
408 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) any);
409 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) cdata);
410 displayXMLString(_out, "Code", code);
411 _out.endTag("Class");
412 }
413 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
414 {
415 Class _cother = (Class)_other;
416 boolean _diff = displayAttributeDiff("class", _class, _cother._class, _out, _indent+1);
417 _diff = _diff && displayAttributeDiff("superclass", superclass, _cother.superclass, _out, _indent+1);
418 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
419 _diff = _diff && displayElementArrayDiff("attributes", attributes, _cother.attributes, _out, _indent+1);
420 _diff = _diff && displayElementArrayDiff("content", content, _cother.content, _out, _indent+1);
421 _diff = _diff && displayElementDiff("any", any, _cother.any, _out, _indent+1);
422 _diff = _diff && displayElementDiff("cdata", cdata, _cother.cdata, _out, _indent+1);
423 _diff = _diff && displayStringDiff("code", code, _cother.code, _out, _indent+1);
424 return _diff;
425 }
426 }
427
428 /**
429 * A StringElement is a simple type of element which has no attributes and
430 * whose content is a single String (usually represented as a CDATA section).
431 * StringElements are used when raw text must be included in a model, such
432 * as raw Java code, or SQL statements, or HTML documentation.
433 */
434 public static class StringElement extends org.eigenbase.xom.ElementDef implements Definition
435 {
436 public StringElement()
437 {
438 }
439
440 public StringElement(org.eigenbase.xom.DOMWrapper _def)
441 throws org.eigenbase.xom.XOMException
442 {
443 this._def = _def;
444 try {
445 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
446 type = (String)_parser.getAttribute("type", "String", null, null, true);
447 doc = _parser.getString(Doc, false);
448 } catch(org.eigenbase.xom.XOMException _ex) {
449 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
450 }
451 }
452
453 public String type; // required attribute
454 public org.eigenbase.xom.DOMWrapper _def;
455
456 /**
457 * Doc tags allow documentation to be added to any definition. The
458 * documentation will automatically appear in all physical forms
459 * of this model, including dtds, java classes, and the xsl
460 * transformation.
461 */
462 public String doc; //optional element
463
464 public String getName()
465 {
466 return "StringElement";
467 }
468
469 public void display(java.io.PrintWriter _out, int _indent)
470 {
471 _out.println(getName());
472 displayAttribute(_out, "type", type, _indent+1);
473 displayString(_out, "doc", doc, _indent+1);
474 }
475 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
476 {
477 _out.beginTag("StringElement", new org.eigenbase.xom.XMLAttrVector()
478 .add("type", type)
479 );
480 displayXMLString(_out, "Doc", doc);
481 _out.endTag("StringElement");
482 }
483 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
484 {
485 StringElement _cother = (StringElement)_other;
486 boolean _diff = displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
487 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
488 return _diff;
489 }
490 }
491
492 /**
493 * A Plugin in a special type of element whose content may be derived from
494 * a different model. The exact model to use is specified by the
495 * individual XML file, allowing a Plugin element to link to another
496 * model dynamically. The Plugin element automatically defines the
497 * defPackage and defClass attributes. Other attributes may be added
498 * as needed. Code and documentation sections are supported as well.
499 */
500 public static class Plugin extends org.eigenbase.xom.ElementDef implements Definition
501 {
502 public Plugin()
503 {
504 }
505
506 public Plugin(org.eigenbase.xom.DOMWrapper _def)
507 throws org.eigenbase.xom.XOMException
508 {
509 this._def = _def;
510 try {
511 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
512 org.eigenbase.xom.NodeDef[] _tempArray;
513 type = (String)_parser.getAttribute("type", "String", null, null, true);
514 _class = (String)_parser.getAttribute("class", "String", null, null, false);
515 doc = _parser.getString(Doc, false);
516 _tempArray = _parser.getArray(Attribute.class, 0, 0);
517 attributes = new Attribute[_tempArray.length];
518 for (int _i = 0; _i < attributes.length; _i++)
519 attributes[_i] = (Attribute)_tempArray[_i];
520 code = _parser.getString(Code, false);
521 } catch(org.eigenbase.xom.XOMException _ex) {
522 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
523 }
524 }
525
526 public String type; // required attribute
527 public String _class; // optional attribute
528 public org.eigenbase.xom.DOMWrapper _def;
529
530 public Attribute[] attributes; //optional array
531 public String code; //optional element
532 /**
533 * Doc tags allow documentation to be added to any definition. The
534 * documentation will automatically appear in all physical forms
535 * of this model, including dtds, java classes, and the xsl
536 * transformation.
537 */
538 public String doc; //optional element
539
540 public String getName()
541 {
542 return "Plugin";
543 }
544
545 public void display(java.io.PrintWriter _out, int _indent)
546 {
547 _out.println(getName());
548 displayAttribute(_out, "type", type, _indent+1);
549 displayAttribute(_out, "class", _class, _indent+1);
550 displayString(_out, "doc", doc, _indent+1);
551 displayElementArray(_out, "attributes", attributes, _indent+1);
552 displayString(_out, "code", code, _indent+1);
553 }
554 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
555 {
556 _out.beginTag("Plugin", new org.eigenbase.xom.XMLAttrVector()
557 .add("type", type)
558 .add("class", _class)
559 );
560 displayXMLString(_out, "Doc", doc);
561 displayXMLElementArray(_out, attributes);
562 displayXMLString(_out, "Code", code);
563 _out.endTag("Plugin");
564 }
565 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
566 {
567 Plugin _cother = (Plugin)_other;
568 boolean _diff = displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
569 _diff = _diff && displayAttributeDiff("class", _class, _cother._class, _out, _indent+1);
570 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
571 _diff = _diff && displayElementArrayDiff("attributes", attributes, _cother.attributes, _out, _indent+1);
572 _diff = _diff && displayStringDiff("code", code, _cother.code, _out, _indent+1);
573 return _diff;
574 }
575 }
576
577 /**
578 * An Import as a special type of element that represents another element
579 * stored in an external model. The model to use is specified by the
580 * defPackage and defClass attributes of the import.
581 * An Import may not be derived from any class.
582 */
583 public static class Import extends org.eigenbase.xom.ElementDef implements Definition
584 {
585 public Import()
586 {
587 }
588
589 public Import(org.eigenbase.xom.DOMWrapper _def)
590 throws org.eigenbase.xom.XOMException
591 {
592 this._def = _def;
593 try {
594 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
595 type = (String)_parser.getAttribute("type", "String", null, null, true);
596 defPackage = (String)_parser.getAttribute("defPackage", "String", null, null, true);
597 defClass = (String)_parser.getAttribute("defClass", "String", null, null, true);
598 dtdName = (String)_parser.getAttribute("dtdName", "String", null, null, false);
599 doc = _parser.getString(Doc, false);
600 } catch(org.eigenbase.xom.XOMException _ex) {
601 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
602 }
603 }
604
605 public String type; // required attribute
606 public String defPackage; // required attribute
607 public String defClass; // required attribute
608 public String dtdName; // optional attribute
609 public org.eigenbase.xom.DOMWrapper _def;
610
611 /**
612 * Doc tags allow documentation to be added to any definition. The
613 * documentation will automatically appear in all physical forms
614 * of this model, including dtds, java classes, and the xsl
615 * transformation.
616 */
617 public String doc; //optional element
618
619 public String getName()
620 {
621 return "Import";
622 }
623
624 public void display(java.io.PrintWriter _out, int _indent)
625 {
626 _out.println(getName());
627 displayAttribute(_out, "type", type, _indent+1);
628 displayAttribute(_out, "defPackage", defPackage, _indent+1);
629 displayAttribute(_out, "defClass", defClass, _indent+1);
630 displayAttribute(_out, "dtdName", dtdName, _indent+1);
631 displayString(_out, "doc", doc, _indent+1);
632 }
633 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
634 {
635 _out.beginTag("Import", new org.eigenbase.xom.XMLAttrVector()
636 .add("type", type)
637 .add("defPackage", defPackage)
638 .add("defClass", defClass)
639 .add("dtdName", dtdName)
640 );
641 displayXMLString(_out, "Doc", doc);
642 _out.endTag("Import");
643 }
644 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
645 {
646 Import _cother = (Import)_other;
647 boolean _diff = displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
648 _diff = _diff && displayAttributeDiff("defPackage", defPackage, _cother.defPackage, _out, _indent+1);
649 _diff = _diff && displayAttributeDiff("defClass", defClass, _cother.defClass, _out, _indent+1);
650 _diff = _diff && displayAttributeDiff("dtdName", dtdName, _cother.dtdName, _out, _indent+1);
651 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
652 return _diff;
653 }
654 }
655
656 /**
657 * The Doc entity specifies a documentation section. The text contained
658 * in this element should be raw text or HTML used to document the object
659 * in which the Doc section appears.
660 */
661 public static final String Doc = "Doc";
662
663 /**
664 * The Code entity specifies a raw block of Java code. Each Class/Element
665 * becomes represented by a Java Class. Including a Code block inside
666 * a Class or Element will insert the code directly into the corresponding
667 * class. No checking is done on the code until it is complied later.
668 */
669 public static final String Code = "Code";
670
671 /**
672 * The Attribute entity appears within any Element definition. It defines
673 * an Attribute, which is a name/value pair used to hold data inside of an
674 * Element. The Attribute's definition includes its name, type, and
675 * usage information (default value and whether or not it is required).
676 * An Attribute definition may limit its values by specifying Value
677 * objects.
678 */
679 public static class Attribute extends org.eigenbase.xom.ElementDef
680 {
681 public Attribute()
682 {
683 }
684
685 public Attribute(org.eigenbase.xom.DOMWrapper _def)
686 throws org.eigenbase.xom.XOMException
687 {
688 this._def = _def;
689 try {
690 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
691 org.eigenbase.xom.NodeDef[] _tempArray;
692 name = (String)_parser.getAttribute("name", "String", null, null, true);
693 type = (String)_parser.getAttribute("type", "String", "String", null, false);
694 required = (Boolean)_parser.getAttribute("required", "Boolean", "false", null, false);
695 _default = (String)_parser.getAttribute("default", "String", null, null, false);
696 doc = _parser.getString(Doc, false);
697 values = _parser.getStringArray("Value", 0, 0);
698 } catch(org.eigenbase.xom.XOMException _ex) {
699 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
700 }
701 }
702
703 public String name; // required attribute
704 public String type; // attribute default: String
705 public Boolean required; // attribute default: false
706 public String _default; // optional attribute
707 public org.eigenbase.xom.DOMWrapper _def;
708
709 public String doc; //optional element
710 public String[] values; //optional array
711
712 public String getName()
713 {
714 return "Attribute";
715 }
716
717 public void display(java.io.PrintWriter _out, int _indent)
718 {
719 _out.println(getName());
720 displayAttribute(_out, "name", name, _indent+1);
721 displayAttribute(_out, "type", type, _indent+1);
722 displayAttribute(_out, "required", required, _indent+1);
723 displayAttribute(_out, "default", _default, _indent+1);
724 displayString(_out, "doc", doc, _indent+1);
725 displayStringArray(_out, "values", values, _indent+1);
726 }
727 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
728 {
729 _out.beginTag("Attribute", new org.eigenbase.xom.XMLAttrVector()
730 .add("name", name)
731 .add("type", type)
732 .add("required", required)
733 .add("default", _default)
734 );
735 displayXMLString(_out, "Doc", doc);
736 displayXMLStringArray(_out, "Value", values);
737 _out.endTag("Attribute");
738 }
739 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
740 {
741 Attribute _cother = (Attribute)_other;
742 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
743 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
744 _diff = _diff && displayAttributeDiff("required", required, _cother.required, _out, _indent+1);
745 _diff = _diff && displayAttributeDiff("default", _default, _cother._default, _out, _indent+1);
746 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
747 _diff = _diff && displayStringArrayDiff("values", values, _cother.values, _out, _indent+1);
748 return _diff;
749 }
750 }
751
752 /**
753 * The Value entity specifies a single value in the set of allowed values
754 * for an Attribute. The value is specifies as text so that any special
755 * characters may appear.
756 */
757 public static final String Value = "Value";
758
759 /**
760 * The Content class contains all entities which represent types of
761 * content which may appear within an Element. Content includes
762 * Objects, Arrays, Strings, and special markers such as Any.
763 */
764 public interface Content extends org.eigenbase.xom.NodeDef
765 {
766 }
767
768 /**
769 * An Object is a single instance of an Element type. Objects have an
770 * identifying name and a type. The name identifies the object within
771 * its Element and must be unique within the Element. The object is itself
772 * an instance of an Element, and this Element is identified by the type.
773 * The type may be the type name of an Element or the class name of a Class.
774 */
775 public static class Object extends org.eigenbase.xom.ElementDef implements Content
776 {
777 public Object()
778 {
779 }
780
781 public Object(org.eigenbase.xom.DOMWrapper _def)
782 throws org.eigenbase.xom.XOMException
783 {
784 this._def = _def;
785 try {
786 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
787 name = (String)_parser.getAttribute("name", "String", null, null, true);
788 type = (String)_parser.getAttribute("type", "String", null, null, true);
789 required = (Boolean)_parser.getAttribute("required", "Boolean", "false", null, false);
790 doc = _parser.getString(Doc, false);
791 } catch(org.eigenbase.xom.XOMException _ex) {
792 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
793 }
794 }
795
796 public String name; // required attribute
797 public String type; // required attribute
798 public Boolean required; // attribute default: false
799 public org.eigenbase.xom.DOMWrapper _def;
800
801 public String doc; //optional element
802
803 public String getName()
804 {
805 return "Object";
806 }
807
808 public void display(java.io.PrintWriter _out, int _indent)
809 {
810 _out.println(getName());
811 displayAttribute(_out, "name", name, _indent+1);
812 displayAttribute(_out, "type", type, _indent+1);
813 displayAttribute(_out, "required", required, _indent+1);
814 displayString(_out, "doc", doc, _indent+1);
815 }
816 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
817 {
818 _out.beginTag("Object", new org.eigenbase.xom.XMLAttrVector()
819 .add("name", name)
820 .add("type", type)
821 .add("required", required)
822 );
823 displayXMLString(_out, "Doc", doc);
824 _out.endTag("Object");
825 }
826 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
827 {
828 Object _cother = (Object)_other;
829 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
830 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
831 _diff = _diff && displayAttributeDiff("required", required, _cother.required, _out, _indent+1);
832 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
833 return _diff;
834 }
835 }
836
837 /**
838 * An Array is a set of multiple instances of Elements. The Array
839 * has an identifying name and a base type. The name identifies the array
840 * within its Element and must be unique within the Element. Each object
841 * in the array is an instance of the Element identified by the type.
842 * The type may be the type name of an Element or the class name of a Class.
843 */
844 public static class Array extends org.eigenbase.xom.ElementDef implements Content
845 {
846 public Array()
847 {
848 }
849
850 public Array(org.eigenbase.xom.DOMWrapper _def)
851 throws org.eigenbase.xom.XOMException
852 {
853 this._def = _def;
854 try {
855 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MetaDef.class);
856 name = (String)_parser.getAttribute("name", "String", null, null, true);
857 type = (String)_parser.getAttribute("type", "String", null, null, true);
858 min = (Integer)_parser.getAttribute("min", "Integer", "0", null, false);
859 max = (Integer)_parser.getAttribute("max", "Integer", "0", null, false);
860 doc = _parser.getString(Doc, false);
861 } catch(org.eigenbase.xom.XOMException _ex) {
862 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
863 }
864 }
865
866 public String name; // required attribute
867 public String type; // required attribute
868 public Integer min; // attribute default: 0
869 public Integer max; // attribute default: 0
870 public org.eigenbase.xom.DOMWrapper _def;
871
872 public String doc; //optional element
873
874 public String getName()
875 {
876 return "Array";
877 }
878
879 public void display(java.io.PrintWriter _out, int _indent)
880 {
881 _out.println(getName());
882 displayAttribute(_out, "name", name, _indent+1);
883 displayAttribute(_out, "type", type, _indent+1);
884 displayAttribute(_out, "min", min, _indent+1);
885 displayAttribute(_out, "max", max, _indent+1);
886 displayString(_out, "doc", doc, _indent+1);
887 }
888 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
889 {
890 _out.beginTag("Array", new org.eigenbase.xom.XMLAttrVector()
891 .add("name", name)
892 .add("type", type)
893 .add("min", min)
894 .add("max", max)
895 );
896 displayXMLString(_out, "Doc", doc);
897 _out.endTag("Array");
898 }
899 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
900 {
901 Array _cother = (Array)_other;
902 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
903 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
904 _diff = _diff && displayAttributeDiff("min", min, _cother.min, _out, _indent+1);
905 _diff = _diff && displayAttributeDiff("max", max, _cother.max, _out, _indent+1);
906 _diff = _diff && displayStringDiff("doc", doc, _cother.doc, _out, _indent+1);
907 return _diff;
908 }
909 }
910
911 /**
912 * The Any content is a special marker which allows an Element to
913 * contain any type of data. The data will appear in a single
914 * array called "children". The data will contain all kinds of
915 * node (elements, comments, text) if the content model is
916 * "mixed", otherwise just elements. If an Any marker appears, no other
917 * content may appear in the element.
918 */
919 public static class Any extends org.eigenbase.xom.ElementDef implements Content
920 {
921 public Any()
922 {
923 }
924
925 public Any(org.eigenbase.xom.DOMWrapper _def)
926 throws org.eigenbase.xom.XOMException
927 {
928 }
929
930 public org.eigenbase.xom.DOMWrapper _def;
931
932
933 public String getName()
934 {
935 return "Any";
936 }
937
938 public void display(java.io.PrintWriter _out, int _indent)
939 {
940 _out.println(getName());
941 }
942 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
943 {
944 _out.beginTag("Any", new org.eigenbase.xom.XMLAttrVector()
945 );
946 _out.endTag("Any");
947 }
948 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
949 {
950 return true;
951 }
952 }
953
954 /**
955 * The CData content is a special marker which allows an Element to
956 * contain a single CDATA section as its only content, yet still
957 * have attributes. The data will appear in a single String
958 * called "cdata". If a CData marker appears, no other
959 * content may appear in the element.
960 */
961 public static class CData extends org.eigenbase.xom.ElementDef implements Content
962 {
963 public CData()
964 {
965 }
966
967 public CData(org.eigenbase.xom.DOMWrapper _def)
968 throws org.eigenbase.xom.XOMException
969 {
970 }
971
972 public org.eigenbase.xom.DOMWrapper _def;
973
974
975 public String getName()
976 {
977 return "CData";
978 }
979
980 public void display(java.io.PrintWriter _out, int _indent)
981 {
982 _out.println(getName());
983 }
984 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
985 {
986 _out.beginTag("CData", new org.eigenbase.xom.XMLAttrVector()
987 );
988 _out.endTag("CData");
989 }
990 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent)
991 {
992 return true;
993 }
994 }
995
996
997 }