001/*
002// This java file was automatically generated
003// from XOM model 'meta'
004// on Fri Mar 21 16:55:44 UTC 2014
005// Do not edit this file by hand.
006*/
007
008package 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 Fri Mar 21 16:55:44 UTC 2014
013 */
014public 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}