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    }