KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > gui > MondrianGuiDef


1 /*
2 // This java file was automatically generated
3 // from XOM model 'mondrian'
4 // on Mon Jan 29 14:26:40 EST 2007
5 // Do not edit this file by hand.
6 */

7
8 package mondrian.gui;
9 import mondrian.olap.*;
10 /**
11  * This is the XML model for Mondrian schemas.
12  * Revision is $Id: //open/mondrian/src/main/mondrian/gui/MondrianGuiDef.java#1 $
13  * <p>This class was generated from XOM model 'mondrian' on Mon Jan 29 14:26:40 EST 2007
14  */

15 public class MondrianGuiDef {
16
17     public static java.lang.Class JavaDoc getXMLDefClass()
18     {
19         return MondrianGuiDef.class;
20     }
21
22     public static String JavaDoc[] _elements = {
23         "Schema",
24         "CubeDimension",
25         "Cube",
26         "VirtualCube",
27         "VirtualCubeDimension",
28         "VirtualCubeMeasure",
29         "DimensionUsage",
30         "Dimension",
31         "Hierarchy",
32         "Level",
33         "Closure",
34         "Property",
35         "Measure",
36         "CalculatedMember",
37         "CalculatedMemberProperty",
38         "NamedSet",
39         "Formula",
40         "MemberReaderParameter",
41         "Relation",
42         "View",
43         "SQL",
44         "Join",
45         "Table",
46         "InlineTable",
47         "ColumnDefs",
48         "ColumnDef",
49         "Rows",
50         "Row",
51         "Value",
52         "AggTable",
53         "AggName",
54         "AggPattern",
55         "AggExclude",
56         "AggColumnName",
57         "AggFactCount",
58         "AggIgnoreColumn",
59         "AggForeignKey",
60         "AggLevel",
61         "AggMeasure",
62         "Expression",
63         "Column",
64         "ExpressionView",
65         "KeyExpression",
66         "ParentExpression",
67         "OrdinalExpression",
68         "NameExpression",
69         "CaptionExpression",
70         "MeasureExpression",
71         "Role",
72         "Grant",
73         "SchemaGrant",
74         "CubeGrant",
75         "DimensionGrant",
76         "HierarchyGrant",
77         "MemberGrant",
78         "UserDefinedFunction",
79         "Parameter"
80     };
81
82     /**
83      * A schema is a collection of cubes and virtual cubes.
84      * It can also contain shared dimensions (for use by those
85      * cubes), named sets, roles, and declarations of
86      * user-defined functions.
87      */

88     public static class Schema extends org.eigenbase.xom.ElementDef
89     {
90         public Schema()
91         {
92         }
93
94         public Schema(org.eigenbase.xom.DOMWrapper _def)
95             throws org.eigenbase.xom.XOMException
96         {
97             try {
98                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
99                 _parser = _parser;
100                 org.eigenbase.xom.NodeDef[] _tempArray = null;
101                 _tempArray = _tempArray;
102                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
103                 measuresCaption = (String JavaDoc)_parser.getAttribute("measuresCaption", "String", null, null, false);
104                 defaultRole = (String JavaDoc)_parser.getAttribute("defaultRole", "String", null, null, false);
105                 _tempArray = _parser.getArray(Parameter.class, 0, 0);
106                 parameters = new Parameter[_tempArray.length];
107                 for(int _i=0; _i<parameters.length; _i++)
108                     parameters[_i] = (Parameter)_tempArray[_i];
109                 _tempArray = _parser.getArray(Dimension.class, 0, 0);
110                 dimensions = new Dimension[_tempArray.length];
111                 for(int _i=0; _i<dimensions.length; _i++)
112                     dimensions[_i] = (Dimension)_tempArray[_i];
113                 _tempArray = _parser.getArray(Cube.class, 0, 0);
114                 cubes = new Cube[_tempArray.length];
115                 for(int _i=0; _i<cubes.length; _i++)
116                     cubes[_i] = (Cube)_tempArray[_i];
117                 _tempArray = _parser.getArray(VirtualCube.class, 0, 0);
118                 virtualCubes = new VirtualCube[_tempArray.length];
119                 for(int _i=0; _i<virtualCubes.length; _i++)
120                     virtualCubes[_i] = (VirtualCube)_tempArray[_i];
121                 _tempArray = _parser.getArray(NamedSet.class, 0, 0);
122                 namedSets = new NamedSet[_tempArray.length];
123                 for(int _i=0; _i<namedSets.length; _i++)
124                     namedSets[_i] = (NamedSet)_tempArray[_i];
125                 _tempArray = _parser.getArray(Role.class, 0, 0);
126                 roles = new Role[_tempArray.length];
127                 for(int _i=0; _i<roles.length; _i++)
128                     roles[_i] = (Role)_tempArray[_i];
129                 _tempArray = _parser.getArray(UserDefinedFunction.class, 0, 0);
130                 userDefinedFunctions = new UserDefinedFunction[_tempArray.length];
131                 for(int _i=0; _i<userDefinedFunctions.length; _i++)
132                     userDefinedFunctions[_i] = (UserDefinedFunction)_tempArray[_i];
133             } catch(org.eigenbase.xom.XOMException _ex) {
134                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
135             }
136         }
137
138         public String JavaDoc name; // optional attribute
139
public String JavaDoc measuresCaption; // optional attribute
140
public String JavaDoc defaultRole; // optional attribute
141

142         /**
143          * This schema's parameter definitions.
144          */

145         public Parameter[] parameters; //optional array
146
/**
147          * Shared dimensions in this schema.
148          */

149         public Dimension[] dimensions; //optional array
150
/**
151          * Cubes in this schema.
152          */

153         public Cube[] cubes; //optional array
154
/**
155          * Virtual cubes in this schema.
156          */

157         public VirtualCube[] virtualCubes; //optional array
158
/**
159          * Named sets in this schema.
160          */

161         public NamedSet[] namedSets; //optional array
162
/**
163          * Roles in this schema.
164          */

165         public Role[] roles; //optional array
166
/**
167          * Declarations of user-defined functions in this schema.
168          */

169         public UserDefinedFunction[] userDefinedFunctions; //optional array
170

171         public String JavaDoc getName()
172         {
173             return "Schema";
174         }
175
176         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
177         {
178             _out.println(getName());
179             displayAttribute(_out, "name", name, _indent+1);
180             displayAttribute(_out, "measuresCaption", measuresCaption, _indent+1);
181             displayAttribute(_out, "defaultRole", defaultRole, _indent+1);
182             displayElementArray(_out, "parameters", parameters, _indent+1);
183             displayElementArray(_out, "dimensions", dimensions, _indent+1);
184             displayElementArray(_out, "cubes", cubes, _indent+1);
185             displayElementArray(_out, "virtualCubes", virtualCubes, _indent+1);
186             displayElementArray(_out, "namedSets", namedSets, _indent+1);
187             displayElementArray(_out, "roles", roles, _indent+1);
188             displayElementArray(_out, "userDefinedFunctions", userDefinedFunctions, _indent+1);
189         }
190         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
191         {
192             _out.beginTag("Schema", new org.eigenbase.xom.XMLAttrVector()
193                 .add("name", name)
194                 .add("measuresCaption", measuresCaption)
195                 .add("defaultRole", defaultRole)
196             );
197             displayXMLElementArray(_out, parameters);
198             displayXMLElementArray(_out, dimensions);
199             displayXMLElementArray(_out, cubes);
200             displayXMLElementArray(_out, virtualCubes);
201             displayXMLElementArray(_out, namedSets);
202             displayXMLElementArray(_out, roles);
203             displayXMLElementArray(_out, userDefinedFunctions);
204             _out.endTag("Schema");
205         }
206         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
207         {
208             boolean _diff = true;
209             Schema _cother = (Schema)_other;
210             _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
211             _diff = _diff && displayAttributeDiff("measuresCaption", measuresCaption, _cother.measuresCaption, _out, _indent+1);
212             _diff = _diff && displayAttributeDiff("defaultRole", defaultRole, _cother.defaultRole, _out, _indent+1);
213             _diff = _diff && displayElementArrayDiff("parameters", parameters, _cother.parameters, _out, _indent+1);
214             _diff = _diff && displayElementArrayDiff("dimensions", dimensions, _cother.dimensions, _out, _indent+1);
215             _diff = _diff && displayElementArrayDiff("cubes", cubes, _cother.cubes, _out, _indent+1);
216             _diff = _diff && displayElementArrayDiff("virtualCubes", virtualCubes, _cother.virtualCubes, _out, _indent+1);
217             _diff = _diff && displayElementArrayDiff("namedSets", namedSets, _cother.namedSets, _out, _indent+1);
218             _diff = _diff && displayElementArrayDiff("roles", roles, _cother.roles, _out, _indent+1);
219             _diff = _diff && displayElementArrayDiff("userDefinedFunctions", userDefinedFunctions, _cother.userDefinedFunctions, _out, _indent+1);
220             return _diff;
221         }
222         // BEGIN pass-through code block ---
223
Cube getCube(String JavaDoc cubeName) {
224             for (int i = 0; i < cubes.length; i++) {
225                 if (cubes[i].name.equals(cubeName)) {
226                     return cubes[i];
227                 }
228             }
229             throw Util.newInternal("Cannot find cube '" + cubeName + "'");
230         }
231         Dimension getPublicDimension(String JavaDoc dimensionName) {
232             for (int i = 0; i < dimensions.length; i++) {
233                 if (dimensions[i].name.equals(dimensionName)) {
234                     return dimensions[i];
235                 }
236             }
237             throw Util.newInternal(
238                 "Cannot find public dimension '" + dimensionName + "'");
239         }
240         // END pass-through code block ---
241
}
242
243     /**
244      * A CubeDimension is either a usage of a Dimension ('shared
245      * dimension', in MSOLAP parlance), or a 'private dimension'.
246      */

247     public static abstract class CubeDimension extends org.eigenbase.xom.ElementDef
248     {
249         public CubeDimension()
250         {
251         }
252
253         public CubeDimension(org.eigenbase.xom.DOMWrapper _def)
254             throws org.eigenbase.xom.XOMException
255         {
256             try {
257                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
258                 _parser = _parser;
259                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
260                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
261                 foreignKey = (String JavaDoc)_parser.getAttribute("foreignKey", "String", null, null, false);
262             } catch(org.eigenbase.xom.XOMException _ex) {
263                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
264             }
265         }
266
267         public String JavaDoc name; // optional attribute
268
public String JavaDoc caption; // optional attribute
269
public String JavaDoc foreignKey; // optional attribute
270

271
272         public String JavaDoc getName()
273         {
274             return "CubeDimension";
275         }
276
277         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
278         {
279             _out.println(getName());
280             displayAttribute(_out, "name", name, _indent+1);
281             displayAttribute(_out, "caption", caption, _indent+1);
282             displayAttribute(_out, "foreignKey", foreignKey, _indent+1);
283         }
284         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
285         {
286             _out.beginTag("(%CubeDimension;)", new org.eigenbase.xom.XMLAttrVector()
287                 .add("name", name)
288                 .add("caption", caption)
289                 .add("foreignKey", foreignKey)
290             );
291             _out.endTag("(%CubeDimension;)");
292         }
293         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
294         {
295             boolean _diff = true;
296             CubeDimension _cother = (CubeDimension)_other;
297             _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
298             _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
299             _diff = _diff && displayAttributeDiff("foreignKey", foreignKey, _cother.foreignKey, _out, _indent+1);
300             return _diff;
301         }
302         // BEGIN pass-through code block ---
303
/**
304  * Looks up the base dimension of this dimension. If this is a
305  * usage of a shared dimension, returns the referenced dimension;
306  * otherwise returns the dimension itself.
307  *
308  * <p>Never returns null; if the dimension cannot be
309  * found, throws an error.
310  *
311  * @param schema Schema, never null
312  * @pre schema != null
313  * @post return != null
314  */

315         public abstract Dimension getDimension(Schema schema);
316         // END pass-through code block ---
317
}
318
319     /**
320      * Definition of a cube.
321      */

322     public static class Cube extends org.eigenbase.xom.ElementDef
323     {
324         public Cube()
325         {
326         }
327
328         public Cube(org.eigenbase.xom.DOMWrapper _def)
329             throws org.eigenbase.xom.XOMException
330         {
331             try {
332                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
333                 _parser = _parser;
334                 org.eigenbase.xom.NodeDef[] _tempArray = null;
335                 _tempArray = _tempArray;
336                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
337                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
338                 cache = (Boolean JavaDoc)_parser.getAttribute("cache", "Boolean", "true", null, false);
339                 enabled = (Boolean JavaDoc)_parser.getAttribute("enabled", "Boolean", "true", null, false);
340                 fact = (Relation)_parser.getElement(Relation.class, false);
341                 _tempArray = _parser.getArray(CubeDimension.class, 0, 0);
342                 dimensions = new CubeDimension[_tempArray.length];
343                 for(int _i=0; _i<dimensions.length; _i++)
344                     dimensions[_i] = (CubeDimension)_tempArray[_i];
345                 _tempArray = _parser.getArray(Measure.class, 0, 0);
346                 measures = new Measure[_tempArray.length];
347                 for(int _i=0; _i<measures.length; _i++)
348                     measures[_i] = (Measure)_tempArray[_i];
349                 _tempArray = _parser.getArray(CalculatedMember.class, 0, 0);
350                 calculatedMembers = new CalculatedMember[_tempArray.length];
351                 for(int _i=0; _i<calculatedMembers.length; _i++)
352                     calculatedMembers[_i] = (CalculatedMember)_tempArray[_i];
353                 _tempArray = _parser.getArray(NamedSet.class, 0, 0);
354                 namedSets = new NamedSet[_tempArray.length];
355                 for(int _i=0; _i<namedSets.length; _i++)
356                     namedSets[_i] = (NamedSet)_tempArray[_i];
357             } catch(org.eigenbase.xom.XOMException _ex) {
358                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
359             }
360         }
361
362         public String JavaDoc name; // optional attribute
363
public String JavaDoc caption; // optional attribute
364
public Boolean JavaDoc cache; // attribute default: true
365
public Boolean JavaDoc enabled; // attribute default: true
366

367         /**
368          * The fact table is the source of all measures in this cube. If
369          * this is a Table and the schema name is not
370          * present, table name is left unqualified.
371          */

372         public Relation fact; //optional element
373
/**
374          */

375         public CubeDimension[] dimensions; //optional array
376
/**
377          */

378         public Measure[] measures; //optional array
379
/**
380          * Calculated members in this cube.
381          */

382         public CalculatedMember[] calculatedMembers; //optional array
383
/**
384          * Named sets in this cube.
385          */

386         public NamedSet[] namedSets; //optional array
387

388         public String JavaDoc getName()
389         {
390             return "Cube";
391         }
392
393         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
394         {
395             _out.println(getName());
396             displayAttribute(_out, "name", name, _indent+1);
397             displayAttribute(_out, "caption", caption, _indent+1);
398             displayAttribute(_out, "cache", cache, _indent+1);
399             displayAttribute(_out, "enabled", enabled, _indent+1);
400             displayElement(_out, "fact", fact, _indent+1);
401             displayElementArray(_out, "dimensions", dimensions, _indent+1);
402             displayElementArray(_out, "measures", measures, _indent+1);
403             displayElementArray(_out, "calculatedMembers", calculatedMembers, _indent+1);
404             displayElementArray(_out, "namedSets", namedSets, _indent+1);
405         }
406         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
407         {
408             _out.beginTag("Cube", new org.eigenbase.xom.XMLAttrVector()
409                 .add("name", name)
410                 .add("caption", caption)
411                 .add("cache", cache)
412                 .add("enabled", enabled)
413             );
414             displayXMLElement(_out, fact);
415             displayXMLElementArray(_out, dimensions);
416             displayXMLElementArray(_out, measures);
417             displayXMLElementArray(_out, calculatedMembers);
418             displayXMLElementArray(_out, namedSets);
419             _out.endTag("Cube");
420         }
421         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
422         {
423             boolean _diff = true;
424             Cube _cother = (Cube)_other;
425             _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
426             _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
427             _diff = _diff && displayAttributeDiff("cache", cache, _cother.cache, _out, _indent+1);
428             _diff = _diff && displayAttributeDiff("enabled", enabled, _cother.enabled, _out, _indent+1);
429             _diff = _diff && displayElementDiff("fact", fact, _cother.fact, _out, _indent+1);
430             _diff = _diff && displayElementArrayDiff("dimensions", dimensions, _cother.dimensions, _out, _indent+1);
431             _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1);
432             _diff = _diff && displayElementArrayDiff("calculatedMembers", calculatedMembers, _cother.calculatedMembers, _out, _indent+1);
433             _diff = _diff && displayElementArrayDiff("namedSets", namedSets, _cother.namedSets, _out, _indent+1);
434             return _diff;
435         }
436         // BEGIN pass-through code block ---
437
public boolean isEnabled() {
438             return enabled.booleanValue();
439         }
440         Dimension getDimension(Schema xmlSchema, String JavaDoc dimensionName) {
441             for (int i = 0; i < dimensions.length; i++) {
442                 if (dimensions[i].name.equals(dimensionName)) {
443                     return dimensions[i].getDimension(xmlSchema);
444                 }
445             }
446             throw Util.newInternal(
447                 "Cannot find dimension '" + dimensionName + "' in cube '" +
448                     name + "'");
449         }
450         public boolean equals(Object JavaDoc o) {
451             return (this == o);
452         }
453         // END pass-through code block ---
454
}
455
456     /**
457      * A VirtualCube is a set of dimensions and
458      * measures gleaned from other cubes.
459      */

460     public static class VirtualCube extends org.eigenbase.xom.ElementDef
461     {
462         public VirtualCube()
463         {
464         }
465
466         public VirtualCube(org.eigenbase.xom.DOMWrapper _def)
467             throws org.eigenbase.xom.XOMException
468         {
469             try {
470                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
471                 _parser = _parser;
472                 org.eigenbase.xom.NodeDef[] _tempArray = null;
473                 _tempArray = _tempArray;
474                 enabled = (Boolean JavaDoc)_parser.getAttribute("enabled", "Boolean", "true", null, false);
475                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
476                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
477                 _tempArray = _parser.getArray(VirtualCubeDimension.class, 0, 0);
478                 dimensions = new VirtualCubeDimension[_tempArray.length];
479                 for(int _i=0; _i<dimensions.length; _i++)
480                     dimensions[_i] = (VirtualCubeDimension)_tempArray[_i];
481                 _tempArray = _parser.getArray(VirtualCubeMeasure.class, 0, 0);
482                 measures = new VirtualCubeMeasure[_tempArray.length];
483                 for(int _i=0; _i<measures.length; _i++)
484                     measures[_i] = (VirtualCubeMeasure)_tempArray[_i];
485                 _tempArray = _parser.getArray(CalculatedMember.class, 0, 0);
486                 calculatedMembers = new CalculatedMember[_tempArray.length];
487                 for(int _i=0; _i<calculatedMembers.length; _i++)
488                     calculatedMembers[_i] = (CalculatedMember)_tempArray[_i];
489             } catch(org.eigenbase.xom.XOMException _ex) {
490                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
491             }
492         }
493
494         public Boolean JavaDoc enabled; // attribute default: true
495
public String JavaDoc name; // optional attribute
496
public String JavaDoc caption; // optional attribute
497

498         /**
499          */

500         public VirtualCubeDimension[] dimensions; //optional array
501
/**
502          */

503         public VirtualCubeMeasure[] measures; //optional array
504
/**
505          * Calculated members that belong to this virtual cube.
506          * (Calculated members inherited from other cubes should not be
507          * in this list.)
508          */

509         public CalculatedMember[] calculatedMembers; //optional array
510

511         public String JavaDoc getName()
512         {
513             return "VirtualCube";
514         }
515
516         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
517         {
518             _out.println(getName());
519             displayAttribute(_out, "enabled", enabled, _indent+1);
520             displayAttribute(_out, "name", name, _indent+1);
521             displayAttribute(_out, "caption", caption, _indent+1);
522             displayElementArray(_out, "dimensions", dimensions, _indent+1);
523             displayElementArray(_out, "measures", measures, _indent+1);
524             displayElementArray(_out, "calculatedMembers", calculatedMembers, _indent+1);
525         }
526         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
527         {
528             _out.beginTag("VirtualCube", new org.eigenbase.xom.XMLAttrVector()
529                 .add("enabled", enabled)
530                 .add("name", name)
531                 .add("caption", caption)
532             );
533             displayXMLElementArray(_out, dimensions);
534             displayXMLElementArray(_out, measures);
535             displayXMLElementArray(_out, calculatedMembers);
536             _out.endTag("VirtualCube");
537         }
538         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
539         {
540             boolean _diff = true;
541             VirtualCube _cother = (VirtualCube)_other;
542             _diff = _diff && displayAttributeDiff("enabled", enabled, _cother.enabled, _out, _indent+1);
543             _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
544             _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
545             _diff = _diff && displayElementArrayDiff("dimensions", dimensions, _cother.dimensions, _out, _indent+1);
546             _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1);
547             _diff = _diff && displayElementArrayDiff("calculatedMembers", calculatedMembers, _cother.calculatedMembers, _out, _indent+1);
548             return _diff;
549         }
550         // BEGIN pass-through code block ---
551
public boolean isEnabled() {
552             return enabled.booleanValue();
553         }
554         // END pass-through code block ---
555
}
556
557     /**
558      * A VirtualCubeDimension is a usage of a Dimension in a VirtualCube.
559      */

560     public static class VirtualCubeDimension extends CubeDimension
561     {
562         public VirtualCubeDimension()
563         {
564         }
565
566         public VirtualCubeDimension(org.eigenbase.xom.DOMWrapper _def)
567             throws org.eigenbase.xom.XOMException
568         {
569             try {
570                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
571                 _parser = _parser;
572                 cubeName = (String JavaDoc)_parser.getAttribute("cubeName", "String", null, null, false);
573                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
574                 foreignKey = (String JavaDoc)_parser.getAttribute("foreignKey", "String", null, null, false);
575                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
576             } catch(org.eigenbase.xom.XOMException _ex) {
577                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
578             }
579         }
580
581         public String JavaDoc cubeName; // optional attribute
582

583
584         public String JavaDoc getName()
585         {
586             return "VirtualCubeDimension";
587         }
588
589         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
590         {
591             _out.println(getName());
592             displayAttribute(_out, "cubeName", cubeName, _indent+1);
593             displayAttribute(_out, "caption", caption, _indent+1);
594             displayAttribute(_out, "foreignKey", foreignKey, _indent+1);
595             displayAttribute(_out, "name", name, _indent+1);
596         }
597         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
598         {
599             _out.beginTag("VirtualCubeDimension", new org.eigenbase.xom.XMLAttrVector()
600                 .add("cubeName", cubeName)
601                 .add("caption", caption)
602                 .add("foreignKey", foreignKey)
603                 .add("name", name)
604             );
605             _out.endTag("VirtualCubeDimension");
606         }
607         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
608         {
609             boolean _diff = true;
610             VirtualCubeDimension _cother = (VirtualCubeDimension)_other;
611             _diff = _diff && displayAttributeDiff("cubeName", cubeName, _cother.cubeName, _out, _indent+1);
612             return _diff;
613         }
614         // BEGIN pass-through code block ---
615
// implement CubeDimension
616
public Dimension getDimension(Schema schema) {
617             Util.assertPrecondition(schema != null, "schema != null");
618             if (cubeName == null) {
619                 return schema.getPublicDimension(name);
620             } else {
621                 Cube cube = schema.getCube(cubeName);
622                 return cube.getDimension(schema, name);
623             }
624         }
625         // END pass-through code block ---
626
}
627
628     /**
629      * A VirtualCubeMeasure is a usage of a Measure in a VirtualCube.
630      */

631     public static class VirtualCubeMeasure extends org.eigenbase.xom.ElementDef
632     {
633         public VirtualCubeMeasure()
634         {
635         }
636
637         public VirtualCubeMeasure(org.eigenbase.xom.DOMWrapper _def)
638             throws org.eigenbase.xom.XOMException
639         {
640             try {
641                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
642                 _parser = _parser;
643                 cubeName = (String JavaDoc)_parser.getAttribute("cubeName", "String", null, null, false);
644                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
645                 visible = (Boolean JavaDoc)_parser.getAttribute("visible", "Boolean", "true", null, false);
646             } catch(org.eigenbase.xom.XOMException _ex) {
647                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
648             }
649         }
650
651         public String JavaDoc cubeName; // optional attribute
652
public String JavaDoc name; // optional attribute
653
public Boolean JavaDoc visible; // attribute default: true
654

655
656         public String JavaDoc getName()
657         {
658             return "VirtualCubeMeasure";
659         }
660
661         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
662         {
663             _out.println(getName());
664             displayAttribute(_out, "cubeName", cubeName, _indent+1);
665             displayAttribute(_out, "name", name, _indent+1);
666             displayAttribute(_out, "visible", visible, _indent+1);
667         }
668         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
669         {
670             _out.beginTag("VirtualCubeMeasure", new org.eigenbase.xom.XMLAttrVector()
671                 .add("cubeName", cubeName)
672                 .add("name", name)
673                 .add("visible", visible)
674             );
675             _out.endTag("VirtualCubeMeasure");
676         }
677         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
678         {
679             boolean _diff = true;
680             VirtualCubeMeasure _cother = (VirtualCubeMeasure)_other;
681             _diff = _diff && displayAttributeDiff("cubeName", cubeName, _cother.cubeName, _out, _indent+1);
682             _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
683             _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1);
684             return _diff;
685         }
686     }
687
688     /**
689      * A DimensionUsage is usage of a shared
690      * Dimension within the context of a cube.
691      */

692     public static class DimensionUsage extends CubeDimension
693     {
694         public DimensionUsage()
695         {
696         }
697
698         public DimensionUsage(org.eigenbase.xom.DOMWrapper _def)
699             throws org.eigenbase.xom.XOMException
700         {
701             try {
702                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
703                 _parser = _parser;
704                 source = (String JavaDoc)_parser.getAttribute("source", "String", null, null, false);
705                 level = (String JavaDoc)_parser.getAttribute("level", "String", null, null, false);
706                 usagePrefix = (String JavaDoc)_parser.getAttribute("usagePrefix", "String", null, null, false);
707                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
708                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
709                 foreignKey = (String JavaDoc)_parser.getAttribute("foreignKey", "String", null, null, false);
710             } catch(org.eigenbase.xom.XOMException _ex) {
711                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
712             }
713         }
714
715         public String JavaDoc source; // optional attribute
716
public String JavaDoc level; // optional attribute
717
public String JavaDoc usagePrefix; // optional attribute
718

719
720         public String JavaDoc getName()
721         {
722             return "DimensionUsage";
723         }
724
725         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
726         {
727             _out.println(getName());
728             displayAttribute(_out, "source", source, _indent+1);
729             displayAttribute(_out, "level", level, _indent+1);
730             displayAttribute(_out, "usagePrefix", usagePrefix, _indent+1);
731             displayAttribute(_out, "name", name, _indent+1);
732             displayAttribute(_out, "caption", caption, _indent+1);
733             displayAttribute(_out, "foreignKey", foreignKey, _indent+1);
734         }
735         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
736         {
737             _out.beginTag("DimensionUsage", new org.eigenbase.xom.XMLAttrVector()
738                 .add("source", source)
739                 .add("level", level)
740                 .add("usagePrefix", usagePrefix)
741                 .add("name", name)
742                 .add("caption", caption)
743                 .add("foreignKey", foreignKey)
744             );
745             _out.endTag("DimensionUsage");
746         }
747         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
748         {
749             boolean _diff = true;
750             DimensionUsage _cother = (DimensionUsage)_other;
751             _diff = _diff && displayAttributeDiff("source", source, _cother.source, _out, _indent+1);
752             _diff = _diff && displayAttributeDiff("level", level, _cother.level, _out, _indent+1);
753             _diff = _diff && displayAttributeDiff("usagePrefix", usagePrefix, _cother.usagePrefix, _out, _indent+1);
754             return _diff;
755         }
756         // BEGIN pass-through code block ---
757
// implement CubeDimension
758
public Dimension getDimension(Schema schema) {
759             Util.assertPrecondition(schema != null, "schema != null");
760             for (int i = 0; i < schema.dimensions.length; i++) {
761                 if (schema.dimensions[i].name.equals(source)) {
762                     return schema.dimensions[i];
763                 }
764             }
765             throw Util.newInternal(
766                 "Cannot find shared dimension '" + source + "'");
767         }
768         // END pass-through code block ---
769
}
770
771     /**
772      * A Dimension is a collection of hierarchies. There are
773      * two kinds: a public dimension belongs to a
774      * Schema, and be used by several cubes; a
775      * private dimension belongs to a
776      * Cube. The foreignKey field is only
777      * applicable to private dimensions.
778      */

779     public static class Dimension extends CubeDimension
780     {
781         public Dimension()
782         {
783         }
784
785         public Dimension(org.eigenbase.xom.DOMWrapper _def)
786             throws org.eigenbase.xom.XOMException
787         {
788             try {
789                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
790                 _parser = _parser;
791                 org.eigenbase.xom.NodeDef[] _tempArray = null;
792                 _tempArray = _tempArray;
793                 type = (String JavaDoc)_parser.getAttribute("type", "String", "StandardDimension", _type_values, false);
794                 usagePrefix = (String JavaDoc)_parser.getAttribute("usagePrefix", "String", null, null, false);
795                 foreignKey = (String JavaDoc)_parser.getAttribute("foreignKey", "String", null, null, false);
796                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
797                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
798                 _tempArray = _parser.getArray(Hierarchy.class, 0, 0);
799                 hierarchies = new Hierarchy[_tempArray.length];
800                 for(int _i=0; _i<hierarchies.length; _i++)
801                     hierarchies[_i] = (Hierarchy)_tempArray[_i];
802             } catch(org.eigenbase.xom.XOMException _ex) {
803                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
804             }
805         }
806
807         /** Allowable values for {@link #type}. */
808         public static final String JavaDoc[] _type_values = {"StandardDimension", "TimeDimension"};
809         public String JavaDoc type; // attribute default: StandardDimension
810
public String JavaDoc usagePrefix; // optional attribute
811

812         /**
813          */

814         public Hierarchy[] hierarchies; //optional array
815

816         public String JavaDoc getName()
817         {
818             return "Dimension";
819         }
820
821         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
822         {
823             _out.println(getName());
824             displayAttribute(_out, "type", type, _indent+1);
825             displayAttribute(_out, "usagePrefix", usagePrefix, _indent+1);
826             displayAttribute(_out, "foreignKey", foreignKey, _indent+1);
827             displayAttribute(_out, "name", name, _indent+1);
828             displayAttribute(_out, "caption", caption, _indent+1);
829             displayElementArray(_out, "hierarchies", hierarchies, _indent+1);
830         }
831         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
832         {
833             _out.beginTag("Dimension", new org.eigenbase.xom.XMLAttrVector()
834                 .add("type", type)
835                 .add("usagePrefix", usagePrefix)
836                 .add("foreignKey", foreignKey)
837                 .add("name", name)
838                 .add("caption", caption)
839             );
840             displayXMLElementArray(_out, hierarchies);
841             _out.endTag("Dimension");
842         }
843         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
844         {
845             boolean _diff = true;
846             Dimension _cother = (Dimension)_other;
847             _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
848             _diff = _diff && displayAttributeDiff("usagePrefix", usagePrefix, _cother.usagePrefix, _out, _indent+1);
849             _diff = _diff && displayElementArrayDiff("hierarchies", hierarchies, _cother.hierarchies, _out, _indent+1);
850             return _diff;
851         }
852         // BEGIN pass-through code block ---
853
// implement CubeDimension
854
public Dimension getDimension(Schema schema) {
855             Util.assertPrecondition(schema != null, "schema != null");
856             return this;
857         }
858
859         // Return the dimension's enumerated type.
860
public DimensionType getDimensionType() {
861             if (type == null) {
862                 return null; //DimensionType.StandardDimension;
863
} else {
864                 return DimensionType.valueOf(type);
865             }
866         }
867         public boolean equals(Object JavaDoc o) {
868             return (this == o);
869         }
870         // END pass-through code block ---
871
}
872
873     /**
874      * Defines a hierarchy.
875      * You must specify at most one <Relation>
876      * or memberReaderClass. If you specify none, the
877      * hierarchy is assumed to come from the same fact table of the
878      * current cube.
879      */

880     public static class Hierarchy extends org.eigenbase.xom.ElementDef
881     {
882         public Hierarchy()
883         {
884         }
885
886         public Hierarchy(org.eigenbase.xom.DOMWrapper _def)
887             throws org.eigenbase.xom.XOMException
888         {
889             try {
890                 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
891                 _parser = _parser;
892                 org.eigenbase.xom.NodeDef[] _tempArray = null;
893                 _tempArray = _tempArray;
894                 name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
895                 hasAll = (Boolean JavaDoc)_parser.getAttribute("hasAll", "Boolean", null, null, false);
896                 allMemberName = (String JavaDoc)_parser.getAttribute("allMemberName", "String", null, null, false);
897                 allMemberCaption = (String JavaDoc)_parser.getAttribute("allMemberCaption", "String", null, null, false);
898                 allLevelName = (String JavaDoc)_parser.getAttribute("allLevelName", "String", null, null, false);
899                 primaryKey = (String JavaDoc)_parser.getAttribute("primaryKey", "String", null, null, false);
900                 primaryKeyTable = (String JavaDoc)_parser.getAttribute("primaryKeyTable", "String", null, null, false);
901                 defaultMember = (String JavaDoc)_parser.getAttribute("defaultMember", "String", null, null, false);
902                 memberReaderClass = (String JavaDoc)_parser.getAttribute("memberReaderClass", "String", null, null, false);
903                 caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
904                 relation = (Relation)_parser.getElement(Relation.class, false);
905                 _tempArray = _parser.getArray(Level.class, 0, 0);
906                 levels = new Level[_tempArray.length];
907                 for(int _i=0; _i<levels.length; _i++)
908                     levels[_i] = (Level)_tempArray[_i];
909                 _tempArray = _parser.getArray(MemberReaderParameter.class, 0, 0);
910                 memberReaderParameters = new MemberReaderParameter[_tempArray.length];
911                 for(int _i=0; _i<memberReaderParameters.length; _i++)
912                     memberReaderParameters[_i] = (MemberReaderParameter)_tempArray[_i];
913             } catch(org.eigenbase.xom.XOMException _ex) {
914                 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
915             }
916         }
917
918         public String JavaDoc name; // optional attribute
919
public Boolean JavaDoc hasAll; // optional attribute
920
public String JavaDoc allMemberName; // optional attribute
921
public String JavaDoc allMemberCaption; // optional attribute
922
public String JavaDoc allLevelName; // optional attribute
923
public String JavaDoc primaryKey; // optional attribute
924
public String JavaDoc primaryKeyTable; // optional attribute
925
public String JavaDoc defaultMember; // optional attribute
926
public String JavaDoc memberReaderClass; // optional attribute
927
public String JavaDoc caption; // optional attribute
928

929         /**
930          * The {@link MondrianGuiDef.Table table},
931          * {@link MondrianGuiDef.Join set of tables}, or
932          * {@link MondrianGuiDef.View SQL statement} which populates this
933          * hierarchy.
934          */

935         public Relation relation; //optional element
936
/**
937          */

938         public Level[] levels; //optional array
939
public MemberReaderParameter[] memberReaderParameters; //optional array
940

941         public String JavaDoc getName()
942         {
943             return "Hierarchy";
944         }
945
946         public void display(java.io.PrintWriter JavaDoc _out, int _indent)
947         {
948             _out.println(getName());
949             displayAttribute(_out, "name", name, _indent+1);
950             displayAttribute(_out, "hasAll", hasAll, _indent+1);
951             displayAttribute(_out, "allMemberName", allMemberName, _indent+1);
952             displayAttribute(_out, "allMemberCaption", allMemberCaption, _indent+1);
953             displayAttribute(_out, "allLevelName", allLevelName, _indent+1);
954             displayAttribute(_out, "primaryKey", primaryKey, _indent+1);
955             displayAttribute(_out, "primaryKeyTable", primaryKeyTable, _indent+1);
956             displayAttribute(_out, "defaultMember", defaultMember, _indent+1);
957             displayAttribute(_out, "memberReaderClass", memberReaderClass, _indent+1);
958             displayAttribute(_out, "caption", caption, _indent+1);
959             displayElement(_out, "relation", relation, _indent+1);
960             displayElementArray(_out, "levels", levels, _indent+1);
961             displayElementArray(_out, "memberReaderParameters", memberReaderParameters, _indent+1);
962         }
963         public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
964         {
965             _out.beginTag("Hierarchy", new org.eigenbase.xom.XMLAttrVector()
966                 .add("name", name)
967                 .add("hasAll", hasAll)
968                 .add("allMemberName", allMemberName)
969                 .add("allMemberCaption", allMemberCaption)
970                 .add("allLevelName", allLevelName)
971                 .add("primaryKey", primaryKey)
972                 .add("primaryKeyTable", primaryKeyTable)
973                 .add("defaultMember", defaultMember)
974                 .add("memberReaderClass", memberReaderClass)
975                 .add("caption", caption)
976             );
977             displayXMLElement(_out, relation);
978             displayXMLElementArray(_out, levels);
979             displayXMLElementArray(_out, memberReaderParameters);
980             _out.endTag("Hierarchy");
981         }
982         public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
983         {
984             boolean _diff = true;
985             Hierarchy _cother = (Hierarchy)_other;
986             _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
987             _diff = _diff && displayAttributeDiff("hasAll", hasAll, _cother.hasAll, _out, _indent+1);
988             _diff = _diff && displayAttributeDiff("allMemberName", allMemberName, _cother.allMemberName, _out, _indent+1);
989             _diff = _diff && displayAttributeDiff("allMemberCaption", allMemberCaption, _cother.allMemberCaption, _out, _indent+1);
990             _diff = _diff && displayAttributeDiff("allLevelName", allLevelName, _cother.allLevelName, _out, _indent+1);
991             _diff = _diff && displayAttributeDiff("primaryKey", primaryKey, _cother.primaryKey, _out, _indent+1);
992             _diff = _diff && displayAttributeDiff("primaryKeyTable", primaryKeyTable, _cother.primaryKeyTable, _out, _indent+1);
993             _diff = _diff && displayAttributeDiff("defaultMember", defaultMember, _cother.defaultMember, _out, _indent+1);
994             _diff = _diff && displayAttributeDiff("memberReaderClass", memberReaderClass, _cother.memberReaderClass, _out, _indent+1);
995             _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
996             _diff = _diff && displayElementDiff("relation", relation, _cother.relation, _out, _indent+1);
997             _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1);
998             _diff = _diff && displayElementArrayDiff("memberReaderParameters", memberReaderParameters, _cother.memberReaderParameters, _out, _indent+1);
999             return _diff;
1000        }
1001        // BEGIN pass-through code block ---
1002
/* implement equals required to handle cases where two different
1003            hierarchy objects have equal contents.
1004            Resolves problem : of Hierarchy tree disappears when expanded
1005            if there are two (or more) exactly similar Hierarchy objects
1006            within a dimension. We can say two hierarchy objects are different
1007            if their references are different.
1008        */

1009        public boolean equals(Object JavaDoc o) {
1010            return (this == o);
1011        }
1012        // END pass-through code block ---
1013
}
1014
1015    public static class Level extends org.eigenbase.xom.ElementDef
1016    {
1017        public Level()
1018        {
1019        }
1020
1021        public Level(org.eigenbase.xom.DOMWrapper _def)
1022            throws org.eigenbase.xom.XOMException
1023        {
1024            try {
1025                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1026                _parser = _parser;
1027                org.eigenbase.xom.NodeDef[] _tempArray = null;
1028                _tempArray = _tempArray;
1029                approxRowCount = (String JavaDoc)_parser.getAttribute("approxRowCount", "String", null, null, false);
1030                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1031                table = (String JavaDoc)_parser.getAttribute("table", "String", null, null, false);
1032                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
1033                nameColumn = (String JavaDoc)_parser.getAttribute("nameColumn", "String", null, null, false);
1034                ordinalColumn = (String JavaDoc)_parser.getAttribute("ordinalColumn", "String", null, null, false);
1035                parentColumn = (String JavaDoc)_parser.getAttribute("parentColumn", "String", null, null, false);
1036                nullParentValue = (String JavaDoc)_parser.getAttribute("nullParentValue", "String", null, null, false);
1037                type = (String JavaDoc)_parser.getAttribute("type", "String", "String", _type_values, false);
1038                uniqueMembers = (Boolean JavaDoc)_parser.getAttribute("uniqueMembers", "Boolean", "false", null, false);
1039                levelType = (String JavaDoc)_parser.getAttribute("levelType", "String", "Regular", _levelType_values, false);
1040                hideMemberIf = (String JavaDoc)_parser.getAttribute("hideMemberIf", "String", "Never", _hideMemberIf_values, false);
1041                formatter = (String JavaDoc)_parser.getAttribute("formatter", "String", null, null, false);
1042                caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
1043                captionColumn = (String JavaDoc)_parser.getAttribute("captionColumn", "String", null, null, false);
1044                keyExp = (KeyExpression)_parser.getElement(KeyExpression.class, false);
1045                nameExp = (NameExpression)_parser.getElement(NameExpression.class, false);
1046                ordinalExp = (OrdinalExpression)_parser.getElement(OrdinalExpression.class, false);
1047                parentExp = (ParentExpression)_parser.getElement(ParentExpression.class, false);
1048                closure = (Closure)_parser.getElement(Closure.class, false);
1049                _tempArray = _parser.getArray(Property.class, 0, 0);
1050                properties = new Property[_tempArray.length];
1051                for(int _i=0; _i<properties.length; _i++)
1052                    properties[_i] = (Property)_tempArray[_i];
1053            } catch(org.eigenbase.xom.XOMException _ex) {
1054                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1055            }
1056        }
1057
1058        public String JavaDoc approxRowCount; // optional attribute
1059
public String JavaDoc name; // optional attribute
1060
public String JavaDoc table; // optional attribute
1061
public String JavaDoc column; // optional attribute
1062
public String JavaDoc nameColumn; // optional attribute
1063
public String JavaDoc ordinalColumn; // optional attribute
1064
public String JavaDoc parentColumn; // optional attribute
1065
public String JavaDoc nullParentValue; // optional attribute
1066
/** Allowable values for {@link #type}. */
1067        public static final String JavaDoc[] _type_values = {"String", "Numeric"};
1068        public String JavaDoc type; // attribute default: String
1069
public Boolean JavaDoc uniqueMembers; // attribute default: false
1070
/** Allowable values for {@link #levelType}. */
1071        public static final String JavaDoc[] _levelType_values = {"Regular", "TimeYears", "TimeQuarters", "TimeMonths", "TimeWeeks", "TimeDays"};
1072        public String JavaDoc levelType; // attribute default: Regular
1073
/** Allowable values for {@link #hideMemberIf}. */
1074        public static final String JavaDoc[] _hideMemberIf_values = {"Never", "IfBlankName", "IfParentsName"};
1075        public String JavaDoc hideMemberIf; // attribute default: Never
1076
public String JavaDoc formatter; // optional attribute
1077
public String JavaDoc caption; // optional attribute
1078
public String JavaDoc captionColumn; // optional attribute
1079

1080        /**
1081         * The SQL expression used to populate this level's key.
1082         */

1083        public KeyExpression keyExp; //optional element
1084
/**
1085         * The SQL expression used to populate this level's name. If not
1086         * specified, the level's key is used.
1087         */

1088        public NameExpression nameExp; //optional element
1089
/**
1090         * The SQL expression used to populate this level's ordinal.
1091         */

1092        public OrdinalExpression ordinalExp; //optional element
1093
/**
1094         * The SQL expression used to join to the parent member in a
1095         * parent-child hierarchy.
1096         */

1097        public ParentExpression parentExp; //optional element
1098
public Closure closure; //optional element
1099
public Property[] properties; //optional array
1100

1101        public String JavaDoc getName()
1102        {
1103            return "Level";
1104        }
1105
1106        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1107        {
1108            _out.println(getName());
1109            displayAttribute(_out, "approxRowCount", approxRowCount, _indent+1);
1110            displayAttribute(_out, "name", name, _indent+1);
1111            displayAttribute(_out, "table", table, _indent+1);
1112            displayAttribute(_out, "column", column, _indent+1);
1113            displayAttribute(_out, "nameColumn", nameColumn, _indent+1);
1114            displayAttribute(_out, "ordinalColumn", ordinalColumn, _indent+1);
1115            displayAttribute(_out, "parentColumn", parentColumn, _indent+1);
1116            displayAttribute(_out, "nullParentValue", nullParentValue, _indent+1);
1117            displayAttribute(_out, "type", type, _indent+1);
1118            displayAttribute(_out, "uniqueMembers", uniqueMembers, _indent+1);
1119            displayAttribute(_out, "levelType", levelType, _indent+1);
1120            displayAttribute(_out, "hideMemberIf", hideMemberIf, _indent+1);
1121            displayAttribute(_out, "formatter", formatter, _indent+1);
1122            displayAttribute(_out, "caption", caption, _indent+1);
1123            displayAttribute(_out, "captionColumn", captionColumn, _indent+1);
1124            displayElement(_out, "keyExp", keyExp, _indent+1);
1125            displayElement(_out, "nameExp", nameExp, _indent+1);
1126            displayElement(_out, "ordinalExp", ordinalExp, _indent+1);
1127            displayElement(_out, "parentExp", parentExp, _indent+1);
1128            displayElement(_out, "closure", closure, _indent+1);
1129            displayElementArray(_out, "properties", properties, _indent+1);
1130        }
1131        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1132        {
1133            _out.beginTag("Level", new org.eigenbase.xom.XMLAttrVector()
1134                .add("approxRowCount", approxRowCount)
1135                .add("name", name)
1136                .add("table", table)
1137                .add("column", column)
1138                .add("nameColumn", nameColumn)
1139                .add("ordinalColumn", ordinalColumn)
1140                .add("parentColumn", parentColumn)
1141                .add("nullParentValue", nullParentValue)
1142                .add("type", type)
1143                .add("uniqueMembers", uniqueMembers)
1144                .add("levelType", levelType)
1145                .add("hideMemberIf", hideMemberIf)
1146                .add("formatter", formatter)
1147                .add("caption", caption)
1148                .add("captionColumn", captionColumn)
1149            );
1150            displayXMLElement(_out, keyExp);
1151            displayXMLElement(_out, nameExp);
1152            displayXMLElement(_out, ordinalExp);
1153            displayXMLElement(_out, parentExp);
1154            displayXMLElement(_out, closure);
1155            displayXMLElementArray(_out, properties);
1156            _out.endTag("Level");
1157        }
1158        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1159        {
1160            boolean _diff = true;
1161            Level _cother = (Level)_other;
1162            _diff = _diff && displayAttributeDiff("approxRowCount", approxRowCount, _cother.approxRowCount, _out, _indent+1);
1163            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1164            _diff = _diff && displayAttributeDiff("table", table, _cother.table, _out, _indent+1);
1165            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
1166            _diff = _diff && displayAttributeDiff("nameColumn", nameColumn, _cother.nameColumn, _out, _indent+1);
1167            _diff = _diff && displayAttributeDiff("ordinalColumn", ordinalColumn, _cother.ordinalColumn, _out, _indent+1);
1168            _diff = _diff && displayAttributeDiff("parentColumn", parentColumn, _cother.parentColumn, _out, _indent+1);
1169            _diff = _diff && displayAttributeDiff("nullParentValue", nullParentValue, _cother.nullParentValue, _out, _indent+1);
1170            _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
1171            _diff = _diff && displayAttributeDiff("uniqueMembers", uniqueMembers, _cother.uniqueMembers, _out, _indent+1);
1172            _diff = _diff && displayAttributeDiff("levelType", levelType, _cother.levelType, _out, _indent+1);
1173            _diff = _diff && displayAttributeDiff("hideMemberIf", hideMemberIf, _cother.hideMemberIf, _out, _indent+1);
1174            _diff = _diff && displayAttributeDiff("formatter", formatter, _cother.formatter, _out, _indent+1);
1175            _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
1176            _diff = _diff && displayAttributeDiff("captionColumn", captionColumn, _cother.captionColumn, _out, _indent+1);
1177            _diff = _diff && displayElementDiff("keyExp", keyExp, _cother.keyExp, _out, _indent+1);
1178            _diff = _diff && displayElementDiff("nameExp", nameExp, _cother.nameExp, _out, _indent+1);
1179            _diff = _diff && displayElementDiff("ordinalExp", ordinalExp, _cother.ordinalExp, _out, _indent+1);
1180            _diff = _diff && displayElementDiff("parentExp", parentExp, _cother.parentExp, _out, _indent+1);
1181            _diff = _diff && displayElementDiff("closure", closure, _cother.closure, _out, _indent+1);
1182            _diff = _diff && displayElementArrayDiff("properties", properties, _cother.properties, _out, _indent+1);
1183            return _diff;
1184        }
1185        // BEGIN pass-through code block ---
1186
public Expression getKeyExp() {
1187            if (keyExp != null) {
1188                return keyExp;
1189            } else if (column != null) {
1190                return new Column(table, column);
1191            } else {
1192                return null;
1193            }
1194        }
1195        public Expression getNameExp() {
1196            if (nameExp != null) {
1197                return nameExp;
1198            } else if (nameColumn != null) {
1199                return new Column(table, nameColumn);
1200            } else {
1201                return null;
1202            }
1203        }
1204        public Expression getCaptionExp() {
1205            if (captionColumn != null) {
1206                return new Column(table, captionColumn);
1207            } else {
1208                return null;
1209            }
1210        }
1211        public Expression getOrdinalExp() {
1212            if (ordinalExp != null) {
1213                return ordinalExp;
1214            } else if (ordinalColumn != null) {
1215                return new Column(table, ordinalColumn);
1216            } else {
1217                return null;
1218            }
1219        }
1220        public Expression getParentExp() {
1221            if (parentExp != null) {
1222                return parentExp;
1223            } else if (parentColumn != null) {
1224                return new Column(table, parentColumn);
1225            } else {
1226                return null;
1227            }
1228        }
1229        public Expression getPropertyExp(int i) {
1230            return new Column(table, properties[i].column);
1231        }
1232        // END pass-through code block ---
1233
}
1234
1235    /**
1236     * Specifies the transitive closure of a parent-child hierarchy.
1237     * Optional, but recommended for better performance.
1238     * The closure is provided as a set of (parent/child) pairs:
1239     * since it is the transitive closure these are actually (ancestor/descendant) pairs.
1240     */

1241    public static class Closure extends org.eigenbase.xom.ElementDef
1242    {
1243        public Closure()
1244        {
1245        }
1246
1247        public Closure(org.eigenbase.xom.DOMWrapper _def)
1248            throws org.eigenbase.xom.XOMException
1249        {
1250            try {
1251                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1252                _parser = _parser;
1253                parentColumn = (String JavaDoc)_parser.getAttribute("parentColumn", "String", null, null, false);
1254                childColumn = (String JavaDoc)_parser.getAttribute("childColumn", "String", null, null, false);
1255                table = (Table)_parser.getElement(Table.class, false);
1256            } catch(org.eigenbase.xom.XOMException _ex) {
1257                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1258            }
1259        }
1260
1261        public String JavaDoc parentColumn; // optional attribute
1262
public String JavaDoc childColumn; // optional attribute
1263

1264        public Table table; //optional element
1265

1266        public String JavaDoc getName()
1267        {
1268            return "Closure";
1269        }
1270
1271        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1272        {
1273            _out.println(getName());
1274            displayAttribute(_out, "parentColumn", parentColumn, _indent+1);
1275            displayAttribute(_out, "childColumn", childColumn, _indent+1);
1276            displayElement(_out, "table", table, _indent+1);
1277        }
1278        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1279        {
1280            _out.beginTag("Closure", new org.eigenbase.xom.XMLAttrVector()
1281                .add("parentColumn", parentColumn)
1282                .add("childColumn", childColumn)
1283            );
1284            displayXMLElement(_out, table);
1285            _out.endTag("Closure");
1286        }
1287        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1288        {
1289            boolean _diff = true;
1290            Closure _cother = (Closure)_other;
1291            _diff = _diff && displayAttributeDiff("parentColumn", parentColumn, _cother.parentColumn, _out, _indent+1);
1292            _diff = _diff && displayAttributeDiff("childColumn", childColumn, _cother.childColumn, _out, _indent+1);
1293            _diff = _diff && displayElementDiff("table", table, _cother.table, _out, _indent+1);
1294            return _diff;
1295        }
1296    }
1297
1298    /**
1299     * Member property.
1300     */

1301    public static class Property extends org.eigenbase.xom.ElementDef
1302    {
1303        public Property()
1304        {
1305        }
1306
1307        public Property(org.eigenbase.xom.DOMWrapper _def)
1308            throws org.eigenbase.xom.XOMException
1309        {
1310            try {
1311                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1312                _parser = _parser;
1313                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1314                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
1315                type = (String JavaDoc)_parser.getAttribute("type", "String", "String", _type_values, false);
1316                formatter = (String JavaDoc)_parser.getAttribute("formatter", "String", null, null, false);
1317                caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
1318            } catch(org.eigenbase.xom.XOMException _ex) {
1319                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1320            }
1321        }
1322
1323        public String JavaDoc name; // optional attribute
1324
public String JavaDoc column; // optional attribute
1325
/** Allowable values for {@link #type}. */
1326        public static final String JavaDoc[] _type_values = {"String", "Numeric", "Boolean"};
1327        public String JavaDoc type; // attribute default: String
1328
public String JavaDoc formatter; // optional attribute
1329
public String JavaDoc caption; // optional attribute
1330

1331
1332        public String JavaDoc getName()
1333        {
1334            return "Property";
1335        }
1336
1337        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1338        {
1339            _out.println(getName());
1340            displayAttribute(_out, "name", name, _indent+1);
1341            displayAttribute(_out, "column", column, _indent+1);
1342            displayAttribute(_out, "type", type, _indent+1);
1343            displayAttribute(_out, "formatter", formatter, _indent+1);
1344            displayAttribute(_out, "caption", caption, _indent+1);
1345        }
1346        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1347        {
1348            _out.beginTag("Property", new org.eigenbase.xom.XMLAttrVector()
1349                .add("name", name)
1350                .add("column", column)
1351                .add("type", type)
1352                .add("formatter", formatter)
1353                .add("caption", caption)
1354            );
1355            _out.endTag("Property");
1356        }
1357        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1358        {
1359            boolean _diff = true;
1360            Property _cother = (Property)_other;
1361            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1362            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
1363            _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
1364            _diff = _diff && displayAttributeDiff("formatter", formatter, _cother.formatter, _out, _indent+1);
1365            _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
1366            return _diff;
1367        }
1368    }
1369
1370    public static class Measure extends org.eigenbase.xom.ElementDef
1371    {
1372        public Measure()
1373        {
1374        }
1375
1376        public Measure(org.eigenbase.xom.DOMWrapper _def)
1377            throws org.eigenbase.xom.XOMException
1378        {
1379            try {
1380                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1381                _parser = _parser;
1382                org.eigenbase.xom.NodeDef[] _tempArray = null;
1383                _tempArray = _tempArray;
1384                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1385                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
1386                datatype = (String JavaDoc)_parser.getAttribute("datatype", "String", null, _datatype_values, false);
1387                formatString = (String JavaDoc)_parser.getAttribute("formatString", "String", null, null, false);
1388                aggregator = (String JavaDoc)_parser.getAttribute("aggregator", "String", null, _aggregator_values, false);
1389                formatter = (String JavaDoc)_parser.getAttribute("formatter", "String", null, null, false);
1390                caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
1391                visible = (Boolean JavaDoc)_parser.getAttribute("visible", "Boolean", "true", null, false);
1392                measureExp = (MeasureExpression)_parser.getElement(MeasureExpression.class, false);
1393                _tempArray = _parser.getArray(CalculatedMemberProperty.class, 0, 0);
1394                memberProperties = new CalculatedMemberProperty[_tempArray.length];
1395                for(int _i=0; _i<memberProperties.length; _i++)
1396                    memberProperties[_i] = (CalculatedMemberProperty)_tempArray[_i];
1397            } catch(org.eigenbase.xom.XOMException _ex) {
1398                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1399            }
1400        }
1401
1402        public String JavaDoc name; // optional attribute
1403
public String JavaDoc column; // optional attribute
1404
/** Allowable values for {@link #datatype}. */
1405        public static final String JavaDoc[] _datatype_values = {"Numeric", "Integer", "String"};
1406        public String JavaDoc datatype; // optional attribute
1407
public String JavaDoc formatString; // optional attribute
1408
/** Allowable values for {@link #aggregator}. */
1409        public static final String JavaDoc[] _aggregator_values = {"sum", "count", "min", "max", "avg", "distinct count"};
1410        public String JavaDoc aggregator; // optional attribute
1411
public String JavaDoc formatter; // optional attribute
1412
public String JavaDoc caption; // optional attribute
1413
public Boolean JavaDoc visible; // attribute default: true
1414

1415        /**
1416         * The SQL expression used to calculate a measure.
1417         * Must be specified if a source column is not specified.
1418         */

1419        public MeasureExpression measureExp; //optional element
1420
public CalculatedMemberProperty[] memberProperties; //optional array
1421

1422        public String JavaDoc getName()
1423        {
1424            return "Measure";
1425        }
1426
1427        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1428        {
1429            _out.println(getName());
1430            displayAttribute(_out, "name", name, _indent+1);
1431            displayAttribute(_out, "column", column, _indent+1);
1432            displayAttribute(_out, "datatype", datatype, _indent+1);
1433            displayAttribute(_out, "formatString", formatString, _indent+1);
1434            displayAttribute(_out, "aggregator", aggregator, _indent+1);
1435            displayAttribute(_out, "formatter", formatter, _indent+1);
1436            displayAttribute(_out, "caption", caption, _indent+1);
1437            displayAttribute(_out, "visible", visible, _indent+1);
1438            displayElement(_out, "measureExp", measureExp, _indent+1);
1439            displayElementArray(_out, "memberProperties", memberProperties, _indent+1);
1440        }
1441        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1442        {
1443            _out.beginTag("Measure", new org.eigenbase.xom.XMLAttrVector()
1444                .add("name", name)
1445                .add("column", column)
1446                .add("datatype", datatype)
1447                .add("formatString", formatString)
1448                .add("aggregator", aggregator)
1449                .add("formatter", formatter)
1450                .add("caption", caption)
1451                .add("visible", visible)
1452            );
1453            displayXMLElement(_out, measureExp);
1454            displayXMLElementArray(_out, memberProperties);
1455            _out.endTag("Measure");
1456        }
1457        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1458        {
1459            boolean _diff = true;
1460            Measure _cother = (Measure)_other;
1461            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1462            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
1463            _diff = _diff && displayAttributeDiff("datatype", datatype, _cother.datatype, _out, _indent+1);
1464            _diff = _diff && displayAttributeDiff("formatString", formatString, _cother.formatString, _out, _indent+1);
1465            _diff = _diff && displayAttributeDiff("aggregator", aggregator, _cother.aggregator, _out, _indent+1);
1466            _diff = _diff && displayAttributeDiff("formatter", formatter, _cother.formatter, _out, _indent+1);
1467            _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
1468            _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1);
1469            _diff = _diff && displayElementDiff("measureExp", measureExp, _cother.measureExp, _out, _indent+1);
1470            _diff = _diff && displayElementArrayDiff("memberProperties", memberProperties, _cother.memberProperties, _out, _indent+1);
1471            return _diff;
1472        }
1473    }
1474
1475    public static class CalculatedMember extends org.eigenbase.xom.ElementDef
1476    {
1477        public CalculatedMember()
1478        {
1479        }
1480
1481        public CalculatedMember(org.eigenbase.xom.DOMWrapper _def)
1482            throws org.eigenbase.xom.XOMException
1483        {
1484            try {
1485                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1486                _parser = _parser;
1487                org.eigenbase.xom.NodeDef[] _tempArray = null;
1488                _tempArray = _tempArray;
1489                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1490                formatString = (String JavaDoc)_parser.getAttribute("formatString", "String", null, null, false);
1491                caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
1492                formula = (String JavaDoc)_parser.getAttribute("formula", "String", null, null, false);
1493                dimension = (String JavaDoc)_parser.getAttribute("dimension", "String", null, null, false);
1494                visible = (Boolean JavaDoc)_parser.getAttribute("visible", "Boolean", "true", null, false);
1495                formulaElement = (Formula)_parser.getElement(Formula.class, false);
1496                _tempArray = _parser.getArray(CalculatedMemberProperty.class, 0, 0);
1497                memberProperties = new CalculatedMemberProperty[_tempArray.length];
1498                for(int _i=0; _i<memberProperties.length; _i++)
1499                    memberProperties[_i] = (CalculatedMemberProperty)_tempArray[_i];
1500            } catch(org.eigenbase.xom.XOMException _ex) {
1501                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1502            }
1503        }
1504
1505        public String JavaDoc name; // optional attribute
1506
public String JavaDoc formatString; // optional attribute
1507
public String JavaDoc caption; // optional attribute
1508
public String JavaDoc formula; // optional attribute
1509
public String JavaDoc dimension; // optional attribute
1510
public Boolean JavaDoc visible; // attribute default: true
1511

1512        /**
1513         * MDX expression which gives the value of this member.
1514         */

1515        public Formula formulaElement; //optional element
1516
public CalculatedMemberProperty[] memberProperties; //optional array
1517

1518        public String JavaDoc getName()
1519        {
1520            return "CalculatedMember";
1521        }
1522
1523        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1524        {
1525            _out.println(getName());
1526            displayAttribute(_out, "name", name, _indent+1);
1527            displayAttribute(_out, "formatString", formatString, _indent+1);
1528            displayAttribute(_out, "caption", caption, _indent+1);
1529            displayAttribute(_out, "formula", formula, _indent+1);
1530            displayAttribute(_out, "dimension", dimension, _indent+1);
1531            displayAttribute(_out, "visible", visible, _indent+1);
1532            displayElement(_out, "formulaElement", formulaElement, _indent+1);
1533            displayElementArray(_out, "memberProperties", memberProperties, _indent+1);
1534        }
1535        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1536        {
1537            _out.beginTag("CalculatedMember", new org.eigenbase.xom.XMLAttrVector()
1538                .add("name", name)
1539                .add("formatString", formatString)
1540                .add("caption", caption)
1541                .add("formula", formula)
1542                .add("dimension", dimension)
1543                .add("visible", visible)
1544            );
1545            displayXMLElement(_out, formulaElement);
1546            displayXMLElementArray(_out, memberProperties);
1547            _out.endTag("CalculatedMember");
1548        }
1549        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1550        {
1551            boolean _diff = true;
1552            CalculatedMember _cother = (CalculatedMember)_other;
1553            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1554            _diff = _diff && displayAttributeDiff("formatString", formatString, _cother.formatString, _out, _indent+1);
1555            _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
1556            _diff = _diff && displayAttributeDiff("formula", formula, _cother.formula, _out, _indent+1);
1557            _diff = _diff && displayAttributeDiff("dimension", dimension, _cother.dimension, _out, _indent+1);
1558            _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1);
1559            _diff = _diff && displayElementDiff("formulaElement", formulaElement, _cother.formulaElement, _out, _indent+1);
1560            _diff = _diff && displayElementArrayDiff("memberProperties", memberProperties, _cother.memberProperties, _out, _indent+1);
1561            return _diff;
1562        }
1563        // BEGIN pass-through code block ---
1564
/**
1565 * Returns the formula, looking for a sub-element called
1566 * "Formula" first, then looking for an attribute called
1567 * "formula".
1568 */

1569        public String JavaDoc getFormula() {
1570            if (formulaElement != null) {
1571                return formulaElement.cdata;
1572            } else {
1573                return formula;
1574            }
1575        }
1576        // END pass-through code block ---
1577
}
1578
1579    /**
1580     * Property of a calculated member defined against a cube.
1581     * It must have either an expression or a value.
1582     */

1583    public static class CalculatedMemberProperty extends org.eigenbase.xom.ElementDef
1584    {
1585        public CalculatedMemberProperty()
1586        {
1587        }
1588
1589        public CalculatedMemberProperty(org.eigenbase.xom.DOMWrapper _def)
1590            throws org.eigenbase.xom.XOMException
1591        {
1592            try {
1593                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1594                _parser = _parser;
1595                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1596                caption = (String JavaDoc)_parser.getAttribute("caption", "String", null, null, false);
1597                expression = (String JavaDoc)_parser.getAttribute("expression", "String", null, null, false);
1598                value = (String JavaDoc)_parser.getAttribute("value", "String", null, null, false);
1599            } catch(org.eigenbase.xom.XOMException _ex) {
1600                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1601            }
1602        }
1603
1604        public String JavaDoc name; // optional attribute
1605
public String JavaDoc caption; // optional attribute
1606
public String JavaDoc expression; // optional attribute
1607
public String JavaDoc value; // optional attribute
1608

1609
1610        public String JavaDoc getName()
1611        {
1612            return "CalculatedMemberProperty";
1613        }
1614
1615        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1616        {
1617            _out.println(getName());
1618            displayAttribute(_out, "name", name, _indent+1);
1619            displayAttribute(_out, "caption", caption, _indent+1);
1620            displayAttribute(_out, "expression", expression, _indent+1);
1621            displayAttribute(_out, "value", value, _indent+1);
1622        }
1623        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1624        {
1625            _out.beginTag("CalculatedMemberProperty", new org.eigenbase.xom.XMLAttrVector()
1626                .add("name", name)
1627                .add("caption", caption)
1628                .add("expression", expression)
1629                .add("value", value)
1630            );
1631            _out.endTag("CalculatedMemberProperty");
1632        }
1633        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1634        {
1635            boolean _diff = true;
1636            CalculatedMemberProperty _cother = (CalculatedMemberProperty)_other;
1637            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1638            _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1);
1639            _diff = _diff && displayAttributeDiff("expression", expression, _cother.expression, _out, _indent+1);
1640            _diff = _diff && displayAttributeDiff("value", value, _cother.value, _out, _indent+1);
1641            return _diff;
1642        }
1643    }
1644
1645    /**
1646     * <p>Defines a named set which can be used in queries in the
1647     * same way as a set defined using a WITH SET clause.</p>
1648     * <p>A named set can be defined against a particular cube,
1649     * or can be global to a schema. If it is defined against a
1650     * cube, it is only available to queries which use that cube.</p>
1651     * <p>A named set defined against a cube is not inherited by
1652     * a virtual cubes defined against that cube. (But you can
1653     * define a named set against a virtual cube.)</p>
1654     * <p>A named set defined against a schema is available in
1655     * all cubes and virtual cubes in that schema. However, it is
1656     * only valid if the cube contains dimensions with the names
1657     * required to make the formula valid.</p>
1658     */

1659    public static class NamedSet extends org.eigenbase.xom.ElementDef
1660    {
1661        public NamedSet()
1662        {
1663        }
1664
1665        public NamedSet(org.eigenbase.xom.DOMWrapper _def)
1666            throws org.eigenbase.xom.XOMException
1667        {
1668            try {
1669                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1670                _parser = _parser;
1671                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1672                formula = (String JavaDoc)_parser.getAttribute("formula", "String", null, null, false);
1673                formulaElement = (Formula)_parser.getElement(Formula.class, false);
1674            } catch(org.eigenbase.xom.XOMException _ex) {
1675                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1676            }
1677        }
1678
1679        public String JavaDoc name; // optional attribute
1680
public String JavaDoc formula; // optional attribute
1681

1682        /**
1683         * MDX expression which gives the value of this set.
1684         */

1685        public Formula formulaElement; //optional element
1686

1687        public String JavaDoc getName()
1688        {
1689            return "NamedSet";
1690        }
1691
1692        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1693        {
1694            _out.println(getName());
1695            displayAttribute(_out, "name", name, _indent+1);
1696            displayAttribute(_out, "formula", formula, _indent+1);
1697            displayElement(_out, "formulaElement", formulaElement, _indent+1);
1698        }
1699        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1700        {
1701            _out.beginTag("NamedSet", new org.eigenbase.xom.XMLAttrVector()
1702                .add("name", name)
1703                .add("formula", formula)
1704            );
1705            displayXMLElement(_out, formulaElement);
1706            _out.endTag("NamedSet");
1707        }
1708        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1709        {
1710            boolean _diff = true;
1711            NamedSet _cother = (NamedSet)_other;
1712            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1713            _diff = _diff && displayAttributeDiff("formula", formula, _cother.formula, _out, _indent+1);
1714            _diff = _diff && displayElementDiff("formulaElement", formulaElement, _cother.formulaElement, _out, _indent+1);
1715            return _diff;
1716        }
1717        // BEGIN pass-through code block ---
1718
/**
1719 * Returns the formula, looking for a sub-element called
1720 * "Formula" first, then looking for an attribute called
1721 * "formula".
1722 */

1723        public String JavaDoc getFormula() {
1724            if (formulaElement != null) {
1725                return formulaElement.cdata;
1726            } else {
1727                return formula;
1728            }
1729        }
1730        // END pass-through code block ---
1731
}
1732
1733    public static class Formula extends org.eigenbase.xom.ElementDef
1734    {
1735        public Formula()
1736        {
1737        }
1738
1739        public Formula(org.eigenbase.xom.DOMWrapper _def)
1740            throws org.eigenbase.xom.XOMException
1741        {
1742            try {
1743                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1744                _parser = _parser;
1745                cdata = _parser.getText();
1746            } catch(org.eigenbase.xom.XOMException _ex) {
1747                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1748            }
1749        }
1750
1751
1752        public String JavaDoc cdata; // All text goes here
1753
public String JavaDoc getName()
1754        {
1755            return "Formula";
1756        }
1757
1758        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1759        {
1760            _out.println(getName());
1761            displayString(_out, "cdata", cdata, _indent+1);
1762        }
1763        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1764        {
1765            _out.beginTag("Formula", new org.eigenbase.xom.XMLAttrVector()
1766            );
1767            _out.cdata(cdata);
1768            _out.endTag("Formula");
1769        }
1770        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1771        {
1772            boolean _diff = true;
1773            Formula _cother = (Formula)_other;
1774            _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1);
1775            return _diff;
1776        }
1777    }
1778
1779    /**
1780     * Not used
1781     */

1782    public static class MemberReaderParameter extends org.eigenbase.xom.ElementDef
1783    {
1784        public MemberReaderParameter()
1785        {
1786        }
1787
1788        public MemberReaderParameter(org.eigenbase.xom.DOMWrapper _def)
1789            throws org.eigenbase.xom.XOMException
1790        {
1791            try {
1792                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1793                _parser = _parser;
1794                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
1795                value = (String JavaDoc)_parser.getAttribute("value", "String", null, null, false);
1796            } catch(org.eigenbase.xom.XOMException _ex) {
1797                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1798            }
1799        }
1800
1801        public String JavaDoc name; // optional attribute
1802
public String JavaDoc value; // optional attribute
1803

1804
1805        public String JavaDoc getName()
1806        {
1807            return "MemberReaderParameter";
1808        }
1809
1810        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1811        {
1812            _out.println(getName());
1813            displayAttribute(_out, "name", name, _indent+1);
1814            displayAttribute(_out, "value", value, _indent+1);
1815        }
1816        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1817        {
1818            _out.beginTag("MemberReaderParameter", new org.eigenbase.xom.XMLAttrVector()
1819                .add("name", name)
1820                .add("value", value)
1821            );
1822            _out.endTag("MemberReaderParameter");
1823        }
1824        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1825        {
1826            boolean _diff = true;
1827            MemberReaderParameter _cother = (MemberReaderParameter)_other;
1828            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
1829            _diff = _diff && displayAttributeDiff("value", value, _cother.value, _out, _indent+1);
1830            return _diff;
1831        }
1832    }
1833
1834    /**
1835     * A table or a join
1836     */

1837    public static abstract class Relation extends org.eigenbase.xom.ElementDef
1838    {
1839        public Relation()
1840        {
1841        }
1842
1843        public Relation(org.eigenbase.xom.DOMWrapper _def)
1844            throws org.eigenbase.xom.XOMException
1845        {
1846        }
1847
1848
1849
1850        public String JavaDoc getName()
1851        {
1852            return "Relation";
1853        }
1854
1855        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1856        {
1857        }
1858        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1859        {
1860            _out.beginTag("(%Relation;)", new org.eigenbase.xom.XMLAttrVector()
1861            );
1862            _out.endTag("(%Relation;)");
1863        }
1864        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1865        {
1866            boolean _diff = true;
1867            return _diff;
1868        }
1869        // BEGIN pass-through code block ---
1870
public abstract Relation find(String JavaDoc seekAlias);
1871        public abstract String JavaDoc getAlias();
1872        public boolean equals(Object JavaDoc o) {
1873            return this == o;
1874        }
1875        public int hashCode() {
1876            return System.identityHashCode(this);
1877        }
1878        // END pass-through code block ---
1879
}
1880
1881    /**
1882     * A collection of SQL statements, one per dialect.
1883     */

1884    public static class View extends Relation
1885    {
1886        public View()
1887        {
1888        }
1889
1890        public View(org.eigenbase.xom.DOMWrapper _def)
1891            throws org.eigenbase.xom.XOMException
1892        {
1893            try {
1894                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1895                _parser = _parser;
1896                org.eigenbase.xom.NodeDef[] _tempArray = null;
1897                _tempArray = _tempArray;
1898                alias = (String JavaDoc)_parser.getAttribute("alias", "String", null, null, false);
1899                _tempArray = _parser.getArray(SQL.class, 1, 0);
1900                selects = new SQL[_tempArray.length];
1901                for(int _i=0; _i<selects.length; _i++)
1902                    selects[_i] = (SQL)_tempArray[_i];
1903            } catch(org.eigenbase.xom.XOMException _ex) {
1904                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1905            }
1906        }
1907
1908        public String JavaDoc alias; // optional attribute
1909

1910        public SQL[] selects; //min 1
1911

1912        public String JavaDoc getName()
1913        {
1914            return "View";
1915        }
1916
1917        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1918        {
1919            _out.println(getName());
1920            displayAttribute(_out, "alias", alias, _indent+1);
1921            displayElementArray(_out, "selects", selects, _indent+1);
1922        }
1923        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1924        {
1925            _out.beginTag("View", new org.eigenbase.xom.XMLAttrVector()
1926                .add("alias", alias)
1927            );
1928            displayXMLElementArray(_out, selects);
1929            _out.endTag("View");
1930        }
1931        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
1932        {
1933            boolean _diff = true;
1934            View _cother = (View)_other;
1935            _diff = _diff && displayAttributeDiff("alias", alias, _cother.alias, _out, _indent+1);
1936            _diff = _diff && displayElementArrayDiff("selects", selects, _cother.selects, _out, _indent+1);
1937            return _diff;
1938        }
1939        // BEGIN pass-through code block ---
1940
public String JavaDoc toString() {
1941            return selects[0].cdata;
1942        }
1943        public Relation find(String JavaDoc seekAlias) {
1944            if (seekAlias.equals(alias)) {
1945                return this;
1946            } else {
1947                return null;
1948            }
1949        }
1950        public String JavaDoc getAlias() {
1951            return alias;
1952        }
1953        // END pass-through code block ---
1954
}
1955
1956    public static class SQL extends org.eigenbase.xom.ElementDef
1957    {
1958        public SQL()
1959        {
1960        }
1961
1962        public SQL(org.eigenbase.xom.DOMWrapper _def)
1963            throws org.eigenbase.xom.XOMException
1964        {
1965            try {
1966                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
1967                _parser = _parser;
1968                dialect = (String JavaDoc)_parser.getAttribute("dialect", "String", "generic", _dialect_values, false);
1969                cdata = _parser.getText();
1970            } catch(org.eigenbase.xom.XOMException _ex) {
1971                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
1972            }
1973        }
1974
1975        /** Allowable values for {@link #dialect}. */
1976        public static final String JavaDoc[] _dialect_values = {"generic", "access", "db2", "derby", "firebird", "hsqldb", "mssql", "mysql", "oracle", "postgres", "sybase"};
1977        public String JavaDoc dialect; // attribute default: generic
1978

1979        public String JavaDoc cdata; // All text goes here
1980
public String JavaDoc getName()
1981        {
1982            return "SQL";
1983        }
1984
1985        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
1986        {
1987            _out.println(getName());
1988            displayAttribute(_out, "dialect", dialect, _indent+1);
1989            displayString(_out, "cdata", cdata, _indent+1);
1990        }
1991        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
1992        {
1993            _out.beginTag("SQL", new org.eigenbase.xom.XMLAttrVector()
1994                .add("dialect", dialect)
1995            );
1996            _out.cdata(cdata);
1997            _out.endTag("SQL");
1998        }
1999        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2000        {
2001            boolean _diff = true;
2002            SQL _cother = (SQL)_other;
2003            _diff = _diff && displayAttributeDiff("dialect", dialect, _cother.dialect, _out, _indent+1);
2004            _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1);
2005            return _diff;
2006        }
2007        // BEGIN pass-through code block ---
2008
public int hashCode() {
2009            return dialect.hashCode();
2010        }
2011        public boolean equals(Object JavaDoc obj) {
2012            // disabled this equality operation because two sql objects may be equal if their contents are equal.
2013
Throwable JavaDoc stack = new Throwable JavaDoc();
2014            stack.fillInStackTrace();
2015            StackTraceElement JavaDoc [] st = stack.getStackTrace();
2016            //stack.printStackTrace();
2017
for (int i=0; i<st.length ;i++){
2018                //System.out.println("classname==="+st[i].getClassName());
2019

2020                if (st[i].getClassName().equals("javax.swing.tree.TreePath"))
2021                    return this == obj;
2022
2023            }
2024            if (!(obj instanceof SQL)) {
2025                return false;
2026            }
2027            SQL that = (SQL) obj;
2028            return this.dialect.equals(that.dialect) &&
2029                Util.equals(this.cdata, that.cdata);
2030
2031        }
2032        // END pass-through code block ---
2033
}
2034
2035    public static class Join extends Relation
2036    {
2037        public Join()
2038        {
2039        }
2040
2041        public Join(org.eigenbase.xom.DOMWrapper _def)
2042            throws org.eigenbase.xom.XOMException
2043        {
2044            try {
2045                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2046                _parser = _parser;
2047                leftAlias = (String JavaDoc)_parser.getAttribute("leftAlias", "String", null, null, false);
2048                leftKey = (String JavaDoc)_parser.getAttribute("leftKey", "String", null, null, false);
2049                rightAlias = (String JavaDoc)_parser.getAttribute("rightAlias", "String", null, null, false);
2050                rightKey = (String JavaDoc)_parser.getAttribute("rightKey", "String", null, null, false);
2051                left = (Relation)_parser.getElement(Relation.class, false);
2052                right = (Relation)_parser.getElement(Relation.class, false);
2053            } catch(org.eigenbase.xom.XOMException _ex) {
2054                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2055            }
2056        }
2057
2058        public String JavaDoc leftAlias; // optional attribute
2059
public String JavaDoc leftKey; // optional attribute
2060
public String JavaDoc rightAlias; // optional attribute
2061
public String JavaDoc rightKey; // optional attribute
2062

2063        public Relation left; //optional element
2064
public Relation right; //optional element
2065

2066        public String JavaDoc getName()
2067        {
2068            return "Join";
2069        }
2070
2071        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2072        {
2073            _out.println(getName());
2074            displayAttribute(_out, "leftAlias", leftAlias, _indent+1);
2075            displayAttribute(_out, "leftKey", leftKey, _indent+1);
2076            displayAttribute(_out, "rightAlias", rightAlias, _indent+1);
2077            displayAttribute(_out, "rightKey", rightKey, _indent+1);
2078            displayElement(_out, "left", left, _indent+1);
2079            displayElement(_out, "right", right, _indent+1);
2080        }
2081        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2082        {
2083            _out.beginTag("Join", new org.eigenbase.xom.XMLAttrVector()
2084                .add("leftAlias", leftAlias)
2085                .add("leftKey", leftKey)
2086                .add("rightAlias", rightAlias)
2087                .add("rightKey", rightKey)
2088            );
2089            displayXMLElement(_out, left);
2090            displayXMLElement(_out, right);
2091            _out.endTag("Join");
2092        }
2093        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2094        {
2095            boolean _diff = true;
2096            Join _cother = (Join)_other;
2097            _diff = _diff && displayAttributeDiff("leftAlias", leftAlias, _cother.leftAlias, _out, _indent+1);
2098            _diff = _diff && displayAttributeDiff("leftKey", leftKey, _cother.leftKey, _out, _indent+1);
2099            _diff = _diff && displayAttributeDiff("rightAlias", rightAlias, _cother.rightAlias, _out, _indent+1);
2100            _diff = _diff && displayAttributeDiff("rightKey", rightKey, _cother.rightKey, _out, _indent+1);
2101            _diff = _diff && displayElementDiff("left", left, _cother.left, _out, _indent+1);
2102            _diff = _diff && displayElementDiff("right", right, _cother.right, _out, _indent+1);
2103            return _diff;
2104        }
2105        // BEGIN pass-through code block ---
2106
/** Convenience constructor. */
2107        public Join(String JavaDoc leftAlias, String JavaDoc leftKey, Relation left,
2108            String JavaDoc rightAlias, String JavaDoc rightKey, Relation right) {
2109            this.leftAlias = leftAlias;
2110            this.leftKey = leftKey;
2111            this.left = left;
2112            this.rightAlias = rightAlias;
2113            this.rightKey = rightKey;
2114            this.right = right;
2115        }
2116        /**
2117         * Returns the alias of the left join key, defaulting to left's
2118         * alias if left is a table.
2119         */

2120        public String JavaDoc getLeftAlias() {
2121            if (leftAlias != null) {
2122                return leftAlias;
2123            }
2124            if (left instanceof Table) {
2125                return ((Table) left).getAlias();
2126            }
2127            throw Util.newInternal(
2128                "alias is required because " + left + " is not a table");
2129        }
2130        /**
2131         * Returns the alias of the right join key, defaulting to right's
2132         * alias if right is a table.
2133         */

2134        public String JavaDoc getRightAlias() {
2135            if (rightAlias != null) {
2136                return rightAlias;
2137            }
2138            if (right instanceof Table) {
2139                return ((Table) right).getAlias();
2140            }
2141            throw Util.newInternal(
2142                "alias is required because " + right + " is not a table");
2143        }
2144        public String JavaDoc toString() {
2145            return "(" + left + ") join (" + right + ") on " +
2146                leftAlias + "." + leftKey + " = " +
2147                rightAlias + "." + rightKey;
2148        }
2149        public Relation find(String JavaDoc seekAlias) {
2150            Relation relation = left.find(seekAlias);
2151            if (relation == null) {
2152                relation = right.find(seekAlias);
2153            }
2154            return relation;
2155        }
2156        public String JavaDoc getAlias() {
2157            throw Util.newInternal("join does not have alias");
2158        }
2159        public boolean equals(Object JavaDoc o) {
2160            return (this == o);
2161        }
2162        // END pass-through code block ---
2163
}
2164
2165    public static class Table extends Relation
2166    {
2167        public Table()
2168        {
2169        }
2170
2171        public Table(org.eigenbase.xom.DOMWrapper _def)
2172            throws org.eigenbase.xom.XOMException
2173        {
2174            try {
2175                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2176                _parser = _parser;
2177                org.eigenbase.xom.NodeDef[] _tempArray = null;
2178                _tempArray = _tempArray;
2179                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
2180                schema = (String JavaDoc)_parser.getAttribute("schema", "String", null, null, false);
2181                alias = (String JavaDoc)_parser.getAttribute("alias", "String", null, null, false);
2182                filter = (SQL)_parser.getElement(SQL.class, false);
2183                _tempArray = _parser.getArray(AggExclude.class, 0, 0);
2184                aggExcludes = new AggExclude[_tempArray.length];
2185                for(int _i=0; _i<aggExcludes.length; _i++)
2186                    aggExcludes[_i] = (AggExclude)_tempArray[_i];
2187                _tempArray = _parser.getArray(AggTable.class, 0, 0);
2188                aggTables = new AggTable[_tempArray.length];
2189                for(int _i=0; _i<aggTables.length; _i++)
2190                    aggTables[_i] = (AggTable)_tempArray[_i];
2191            } catch(org.eigenbase.xom.XOMException _ex) {
2192                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2193            }
2194        }
2195
2196        public String JavaDoc name; // optional attribute
2197
public String JavaDoc schema; // optional attribute
2198
public String JavaDoc alias; // optional attribute
2199

2200        /**
2201         * The SQL WHERE clause expression to be appended to any select statement
2202         */

2203        public SQL filter; //optional element
2204
public AggExclude[] aggExcludes; //optional array
2205
public AggTable[] aggTables; //optional array
2206

2207        public String JavaDoc getName()
2208        {
2209            return "Table";
2210        }
2211
2212        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2213        {
2214            _out.println(getName());
2215            displayAttribute(_out, "name", name, _indent+1);
2216            displayAttribute(_out, "schema", schema, _indent+1);
2217            displayAttribute(_out, "alias", alias, _indent+1);
2218            displayElement(_out, "filter", filter, _indent+1);
2219            displayElementArray(_out, "aggExcludes", aggExcludes, _indent+1);
2220            displayElementArray(_out, "aggTables", aggTables, _indent+1);
2221        }
2222        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2223        {
2224            _out.beginTag("Table", new org.eigenbase.xom.XMLAttrVector()
2225                .add("name", name)
2226                .add("schema", schema)
2227                .add("alias", alias)
2228            );
2229            displayXMLElement(_out, filter);
2230            displayXMLElementArray(_out, aggExcludes);
2231            displayXMLElementArray(_out, aggTables);
2232            _out.endTag("Table");
2233        }
2234        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2235        {
2236            boolean _diff = true;
2237            Table _cother = (Table)_other;
2238            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
2239            _diff = _diff && displayAttributeDiff("schema", schema, _cother.schema, _out, _indent+1);
2240            _diff = _diff && displayAttributeDiff("alias", alias, _cother.alias, _out, _indent+1);
2241            _diff = _diff && displayElementDiff("filter", filter, _cother.filter, _out, _indent+1);
2242            _diff = _diff && displayElementArrayDiff("aggExcludes", aggExcludes, _cother.aggExcludes, _out, _indent+1);
2243            _diff = _diff && displayElementArrayDiff("aggTables", aggTables, _cother.aggTables, _out, _indent+1);
2244            return _diff;
2245        }
2246        // BEGIN pass-through code block ---
2247
/** Convenience constructor. */
2248        public Table(Table table) {
2249            this(table.schema, table.name, table.alias);
2250        }
2251        public Table(String JavaDoc schema, String JavaDoc name, String JavaDoc alias) {
2252            this();
2253            this.schema = schema;
2254            this.name = name;
2255            this.alias = alias;
2256        }
2257        /** Returns the alias or, if it is null, the table name. */
2258        public String JavaDoc getAlias() {
2259            return (alias != null) ? alias : name;
2260        }
2261        public String JavaDoc toString() {
2262            return (schema == null) ?
2263                name :
2264                schema + "." + name;
2265        }
2266        public Relation find(String JavaDoc seekAlias) {
2267            return seekAlias.equals(name) ? this :
2268                (alias != null) && seekAlias.equals(alias) ? this :
2269                    null;
2270        }
2271        public boolean equals(Object JavaDoc o) {
2272            return (this == o);
2273        }
2274        /* disabled to resolve problem of disappearing schema elements from tree panel
2275        public boolean equals(Object o) {
2276        if (o instanceof Table) {
2277        Table that = (Table) o;
2278        return this.name.equals(that.name) &&
2279        Util.equals(this.schema, that.schema);
2280        } else {
2281        return false;
2282        }
2283        }
2284        */

2285        public int hashCode() {
2286            return toString().hashCode();
2287        }
2288        public String JavaDoc getFilter() {
2289            return (filter == null) ? null : filter.cdata;
2290        }
2291        public AggExclude[] getAggExcludes() {
2292            return aggExcludes;
2293        }
2294        public AggTable[] getAggTables() {
2295            return aggTables;
2296        }
2297        // END pass-through code block ---
2298
}
2299
2300    public static class InlineTable extends Relation
2301    {
2302        public InlineTable()
2303        {
2304        }
2305
2306        public InlineTable(org.eigenbase.xom.DOMWrapper _def)
2307            throws org.eigenbase.xom.XOMException
2308        {
2309            try {
2310                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2311                _parser = _parser;
2312                alias = (String JavaDoc)_parser.getAttribute("alias", "String", null, null, false);
2313                columnDefs = (ColumnDefs)_parser.getElement(ColumnDefs.class, true);
2314                rows = (Rows)_parser.getElement(Rows.class, true);
2315            } catch(org.eigenbase.xom.XOMException _ex) {
2316                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2317            }
2318        }
2319
2320        public String JavaDoc alias; // optional attribute
2321

2322        public ColumnDefs columnDefs; //required element
2323
public Rows rows; //required element
2324

2325        public String JavaDoc getName()
2326        {
2327            return "InlineTable";
2328        }
2329
2330        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2331        {
2332            _out.println(getName());
2333            displayAttribute(_out, "alias", alias, _indent+1);
2334            displayElement(_out, "columnDefs", columnDefs, _indent+1);
2335            displayElement(_out, "rows", rows, _indent+1);
2336        }
2337        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2338        {
2339            _out.beginTag("InlineTable", new org.eigenbase.xom.XMLAttrVector()
2340                .add("alias", alias)
2341            );
2342            displayXMLElement(_out, columnDefs);
2343            displayXMLElement(_out, rows);
2344            _out.endTag("InlineTable");
2345        }
2346        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2347        {
2348            boolean _diff = true;
2349            InlineTable _cother = (InlineTable)_other;
2350            _diff = _diff && displayAttributeDiff("alias", alias, _cother.alias, _out, _indent+1);
2351            _diff = _diff && displayElementDiff("columnDefs", columnDefs, _cother.columnDefs, _out, _indent+1);
2352            _diff = _diff && displayElementDiff("rows", rows, _cother.rows, _out, _indent+1);
2353            return _diff;
2354        }
2355        // BEGIN pass-through code block ---
2356
public String JavaDoc getAlias() {
2357            return alias;
2358        }
2359        public String JavaDoc toString() {
2360            return "<inline data>";
2361        }
2362        public Relation find(String JavaDoc seekAlias) {
2363            return seekAlias.equals(this) ? this : null;
2364        }
2365        public boolean equals(Object JavaDoc o) {
2366            if (o instanceof InlineTable) {
2367                InlineTable that = (InlineTable) o;
2368                return this.alias.equals(that.alias);
2369            } else {
2370                return false;
2371            }
2372        }
2373        public int hashCode() {
2374            return toString().hashCode();
2375        }
2376        // END pass-through code block ---
2377
}
2378
2379    /**
2380     * Holder for an array of ColumnDef elements
2381     */

2382    public static class ColumnDefs extends org.eigenbase.xom.ElementDef
2383    {
2384        public ColumnDefs()
2385        {
2386        }
2387
2388        public ColumnDefs(org.eigenbase.xom.DOMWrapper _def)
2389            throws org.eigenbase.xom.XOMException
2390        {
2391            try {
2392                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2393                _parser = _parser;
2394                org.eigenbase.xom.NodeDef[] _tempArray = null;
2395                _tempArray = _tempArray;
2396                _tempArray = _parser.getArray(ColumnDef.class, 0, 0);
2397                array = new ColumnDef[_tempArray.length];
2398                for(int _i=0; _i<array.length; _i++)
2399                    array[_i] = (ColumnDef)_tempArray[_i];
2400            } catch(org.eigenbase.xom.XOMException _ex) {
2401                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2402            }
2403        }
2404
2405
2406        public ColumnDef[] array; //optional array
2407

2408        public String JavaDoc getName()
2409        {
2410            return "ColumnDefs";
2411        }
2412
2413        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2414        {
2415            _out.println(getName());
2416            displayElementArray(_out, "array", array, _indent+1);
2417        }
2418        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2419        {
2420            _out.beginTag("ColumnDefs", new org.eigenbase.xom.XMLAttrVector()
2421            );
2422            displayXMLElementArray(_out, array);
2423            _out.endTag("ColumnDefs");
2424        }
2425        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2426        {
2427            boolean _diff = true;
2428            ColumnDefs _cother = (ColumnDefs)_other;
2429            _diff = _diff && displayElementArrayDiff("array", array, _cother.array, _out, _indent+1);
2430            return _diff;
2431        }
2432    }
2433
2434    /**
2435     * Column definition for an inline table.
2436     */

2437    public static class ColumnDef extends org.eigenbase.xom.ElementDef
2438    {
2439        public ColumnDef()
2440        {
2441        }
2442
2443        public ColumnDef(org.eigenbase.xom.DOMWrapper _def)
2444            throws org.eigenbase.xom.XOMException
2445        {
2446            try {
2447                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2448                _parser = _parser;
2449                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, true);
2450                type = (String JavaDoc)_parser.getAttribute("type", "String", null, null, true);
2451            } catch(org.eigenbase.xom.XOMException _ex) {
2452                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2453            }
2454        }
2455
2456        public String JavaDoc name; // required attribute
2457
public String JavaDoc type; // required attribute
2458

2459
2460        public String JavaDoc getName()
2461        {
2462            return "ColumnDef";
2463        }
2464
2465        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2466        {
2467            _out.println(getName());
2468            displayAttribute(_out, "name", name, _indent+1);
2469            displayAttribute(_out, "type", type, _indent+1);
2470        }
2471        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2472        {
2473            _out.beginTag("ColumnDef", new org.eigenbase.xom.XMLAttrVector()
2474                .add("name", name)
2475                .add("type", type)
2476            );
2477            _out.endTag("ColumnDef");
2478        }
2479        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2480        {
2481            boolean _diff = true;
2482            ColumnDef _cother = (ColumnDef)_other;
2483            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
2484            _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
2485            return _diff;
2486        }
2487    }
2488
2489    /**
2490     * Holder for an array of Row elements
2491     */

2492    public static class Rows extends org.eigenbase.xom.ElementDef
2493    {
2494        public Rows()
2495        {
2496        }
2497
2498        public Rows(org.eigenbase.xom.DOMWrapper _def)
2499            throws org.eigenbase.xom.XOMException
2500        {
2501            try {
2502                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2503                _parser = _parser;
2504                org.eigenbase.xom.NodeDef[] _tempArray = null;
2505                _tempArray = _tempArray;
2506                _tempArray = _parser.getArray(Row.class, 0, 0);
2507                array = new Row[_tempArray.length];
2508                for(int _i=0; _i<array.length; _i++)
2509                    array[_i] = (Row)_tempArray[_i];
2510            } catch(org.eigenbase.xom.XOMException _ex) {
2511                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2512            }
2513        }
2514
2515
2516        public Row[] array; //optional array
2517

2518        public String JavaDoc getName()
2519        {
2520            return "Rows";
2521        }
2522
2523        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2524        {
2525            _out.println(getName());
2526            displayElementArray(_out, "array", array, _indent+1);
2527        }
2528        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2529        {
2530            _out.beginTag("Rows", new org.eigenbase.xom.XMLAttrVector()
2531            );
2532            displayXMLElementArray(_out, array);
2533            _out.endTag("Rows");
2534        }
2535        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2536        {
2537            boolean _diff = true;
2538            Rows _cother = (Rows)_other;
2539            _diff = _diff && displayElementArrayDiff("array", array, _cother.array, _out, _indent+1);
2540            return _diff;
2541        }
2542    }
2543
2544    /**
2545     * Row definition for an inline table.
2546     * Must have one Column for each ColumnDef in the InlineTable.
2547     */

2548    public static class Row extends org.eigenbase.xom.ElementDef
2549    {
2550        public Row()
2551        {
2552        }
2553
2554        public Row(org.eigenbase.xom.DOMWrapper _def)
2555            throws org.eigenbase.xom.XOMException
2556        {
2557            try {
2558                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2559                _parser = _parser;
2560                org.eigenbase.xom.NodeDef[] _tempArray = null;
2561                _tempArray = _tempArray;
2562                _tempArray = _parser.getArray(Value.class, 0, 0);
2563                values = new Value[_tempArray.length];
2564                for(int _i=0; _i<values.length; _i++)
2565                    values[_i] = (Value)_tempArray[_i];
2566            } catch(org.eigenbase.xom.XOMException _ex) {
2567                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2568            }
2569        }
2570
2571
2572        public Value[] values; //optional array
2573

2574        public String JavaDoc getName()
2575        {
2576            return "Row";
2577        }
2578
2579        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2580        {
2581            _out.println(getName());
2582            displayElementArray(_out, "values", values, _indent+1);
2583        }
2584        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2585        {
2586            _out.beginTag("Row", new org.eigenbase.xom.XMLAttrVector()
2587            );
2588            displayXMLElementArray(_out, values);
2589            _out.endTag("Row");
2590        }
2591        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2592        {
2593            boolean _diff = true;
2594            Row _cother = (Row)_other;
2595            _diff = _diff && displayElementArrayDiff("values", values, _cother.values, _out, _indent+1);
2596            return _diff;
2597        }
2598    }
2599
2600    /**
2601     * Column value for an inline table.
2602     * The CDATA holds the value of the column.
2603     */

2604    public static class Value extends org.eigenbase.xom.ElementDef
2605    {
2606        public Value()
2607        {
2608        }
2609
2610        public Value(org.eigenbase.xom.DOMWrapper _def)
2611            throws org.eigenbase.xom.XOMException
2612        {
2613            try {
2614                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2615                _parser = _parser;
2616                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, true);
2617                cdata = _parser.getText();
2618            } catch(org.eigenbase.xom.XOMException _ex) {
2619                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2620            }
2621        }
2622
2623        public String JavaDoc column; // required attribute
2624

2625        public String JavaDoc cdata; // All text goes here
2626
public String JavaDoc getName()
2627        {
2628            return "Value";
2629        }
2630
2631        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2632        {
2633            _out.println(getName());
2634            displayAttribute(_out, "column", column, _indent+1);
2635            displayString(_out, "cdata", cdata, _indent+1);
2636        }
2637        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2638        {
2639            _out.beginTag("Value", new org.eigenbase.xom.XMLAttrVector()
2640                .add("column", column)
2641            );
2642            _out.cdata(cdata);
2643            _out.endTag("Value");
2644        }
2645        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2646        {
2647            boolean _diff = true;
2648            Value _cother = (Value)_other;
2649            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
2650            _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1);
2651            return _diff;
2652        }
2653    }
2654
2655    /**
2656     * A definition of an aggregate table for a base fact table.
2657     * This aggregate table must be in the same schema as the
2658     * base fact table.
2659     */

2660    public static abstract class AggTable extends org.eigenbase.xom.ElementDef
2661    {
2662        public AggTable()
2663        {
2664        }
2665
2666        public AggTable(org.eigenbase.xom.DOMWrapper _def)
2667            throws org.eigenbase.xom.XOMException
2668        {
2669            try {
2670                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2671                _parser = _parser;
2672                org.eigenbase.xom.NodeDef[] _tempArray = null;
2673                _tempArray = _tempArray;
2674                ignorecase = (Boolean JavaDoc)_parser.getAttribute("ignorecase", "Boolean", "true", null, false);
2675                factcount = (AggFactCount)_parser.getElement(AggFactCount.class, false);
2676                _tempArray = _parser.getArray(AggIgnoreColumn.class, 0, 0);
2677                ignoreColumns = new AggIgnoreColumn[_tempArray.length];
2678                for(int _i=0; _i<ignoreColumns.length; _i++)
2679                    ignoreColumns[_i] = (AggIgnoreColumn)_tempArray[_i];
2680                _tempArray = _parser.getArray(AggForeignKey.class, 0, 0);
2681                foreignKeys = new AggForeignKey[_tempArray.length];
2682                for(int _i=0; _i<foreignKeys.length; _i++)
2683                    foreignKeys[_i] = (AggForeignKey)_tempArray[_i];
2684                _tempArray = _parser.getArray(AggMeasure.class, 0, 0);
2685                measures = new AggMeasure[_tempArray.length];
2686                for(int _i=0; _i<measures.length; _i++)
2687                    measures[_i] = (AggMeasure)_tempArray[_i];
2688                _tempArray = _parser.getArray(AggLevel.class, 0, 0);
2689                levels = new AggLevel[_tempArray.length];
2690                for(int _i=0; _i<levels.length; _i++)
2691                    levels[_i] = (AggLevel)_tempArray[_i];
2692            } catch(org.eigenbase.xom.XOMException _ex) {
2693                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2694            }
2695        }
2696
2697        public Boolean JavaDoc ignorecase; // attribute default: true
2698

2699        /**
2700         * What does the fact_count column look like.
2701         */

2702        public AggFactCount factcount; //optional element
2703
public AggIgnoreColumn[] ignoreColumns; //optional array
2704
public AggForeignKey[] foreignKeys; //optional array
2705
public AggMeasure[] measures; //optional array
2706
public AggLevel[] levels; //optional array
2707

2708        public String JavaDoc getName()
2709        {
2710            return "AggTable";
2711        }
2712
2713        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2714        {
2715            _out.println(getName());
2716            displayAttribute(_out, "ignorecase", ignorecase, _indent+1);
2717            displayElement(_out, "factcount", factcount, _indent+1);
2718            displayElementArray(_out, "ignoreColumns", ignoreColumns, _indent+1);
2719            displayElementArray(_out, "foreignKeys", foreignKeys, _indent+1);
2720            displayElementArray(_out, "measures", measures, _indent+1);
2721            displayElementArray(_out, "levels", levels, _indent+1);
2722        }
2723        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2724        {
2725            _out.beginTag("(%AggTable;)", new org.eigenbase.xom.XMLAttrVector()
2726                .add("ignorecase", ignorecase)
2727            );
2728            displayXMLElement(_out, factcount);
2729            displayXMLElementArray(_out, ignoreColumns);
2730            displayXMLElementArray(_out, foreignKeys);
2731            displayXMLElementArray(_out, measures);
2732            displayXMLElementArray(_out, levels);
2733            _out.endTag("(%AggTable;)");
2734        }
2735        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2736        {
2737            boolean _diff = true;
2738            AggTable _cother = (AggTable)_other;
2739            _diff = _diff && displayAttributeDiff("ignorecase", ignorecase, _cother.ignorecase, _out, _indent+1);
2740            _diff = _diff && displayElementDiff("factcount", factcount, _cother.factcount, _out, _indent+1);
2741            _diff = _diff && displayElementArrayDiff("ignoreColumns", ignoreColumns, _cother.ignoreColumns, _out, _indent+1);
2742            _diff = _diff && displayElementArrayDiff("foreignKeys", foreignKeys, _cother.foreignKeys, _out, _indent+1);
2743            _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1);
2744            _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1);
2745            return _diff;
2746        }
2747        // BEGIN pass-through code block ---
2748
public boolean isIgnoreCase() {
2749            return ignorecase.booleanValue();
2750        }
2751        public AggFactCount getAggFactCount() {
2752            return factcount;
2753        }
2754        public AggIgnoreColumn[] getAggIgnoreColumns() {
2755            return ignoreColumns;
2756        }
2757        public AggForeignKey[] getAggForeignKeys() {
2758            return foreignKeys;
2759        }
2760        public AggMeasure[] getAggMeasures() {
2761            return measures;
2762        }
2763        public AggLevel[] getAggLevels() {
2764            return levels;
2765        }
2766        // END pass-through code block ---
2767
}
2768
2769    public static class AggName extends AggTable
2770    {
2771        public AggName()
2772        {
2773        }
2774
2775        public AggName(org.eigenbase.xom.DOMWrapper _def)
2776            throws org.eigenbase.xom.XOMException
2777        {
2778            try {
2779                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2780                _parser = _parser;
2781                org.eigenbase.xom.NodeDef[] _tempArray = null;
2782                _tempArray = _tempArray;
2783                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
2784                ignorecase = (Boolean JavaDoc)_parser.getAttribute("ignorecase", "Boolean", "true", null, false);
2785                factcount = (AggFactCount)_parser.getElement(AggFactCount.class, false);
2786                _tempArray = _parser.getArray(AggIgnoreColumn.class, 0, 0);
2787                ignoreColumns = new AggIgnoreColumn[_tempArray.length];
2788                for(int _i=0; _i<ignoreColumns.length; _i++)
2789                    ignoreColumns[_i] = (AggIgnoreColumn)_tempArray[_i];
2790                _tempArray = _parser.getArray(AggForeignKey.class, 0, 0);
2791                foreignKeys = new AggForeignKey[_tempArray.length];
2792                for(int _i=0; _i<foreignKeys.length; _i++)
2793                    foreignKeys[_i] = (AggForeignKey)_tempArray[_i];
2794                _tempArray = _parser.getArray(AggMeasure.class, 0, 0);
2795                measures = new AggMeasure[_tempArray.length];
2796                for(int _i=0; _i<measures.length; _i++)
2797                    measures[_i] = (AggMeasure)_tempArray[_i];
2798                _tempArray = _parser.getArray(AggLevel.class, 0, 0);
2799                levels = new AggLevel[_tempArray.length];
2800                for(int _i=0; _i<levels.length; _i++)
2801                    levels[_i] = (AggLevel)_tempArray[_i];
2802            } catch(org.eigenbase.xom.XOMException _ex) {
2803                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2804            }
2805        }
2806
2807        public String JavaDoc name; // optional attribute
2808

2809
2810        public String JavaDoc getName()
2811        {
2812            return "AggName";
2813        }
2814
2815        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2816        {
2817            _out.println(getName());
2818            displayAttribute(_out, "name", name, _indent+1);
2819            displayAttribute(_out, "ignorecase", ignorecase, _indent+1);
2820            displayElement(_out, "factcount", factcount, _indent+1);
2821            displayElementArray(_out, "ignoreColumns", ignoreColumns, _indent+1);
2822            displayElementArray(_out, "foreignKeys", foreignKeys, _indent+1);
2823            displayElementArray(_out, "measures", measures, _indent+1);
2824            displayElementArray(_out, "levels", levels, _indent+1);
2825        }
2826        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2827        {
2828            _out.beginTag("AggName", new org.eigenbase.xom.XMLAttrVector()
2829                .add("name", name)
2830                .add("ignorecase", ignorecase)
2831            );
2832            displayXMLElement(_out, factcount);
2833            displayXMLElementArray(_out, ignoreColumns);
2834            displayXMLElementArray(_out, foreignKeys);
2835            displayXMLElementArray(_out, measures);
2836            displayXMLElementArray(_out, levels);
2837            _out.endTag("AggName");
2838        }
2839        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2840        {
2841            boolean _diff = true;
2842            AggName _cother = (AggName)_other;
2843            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
2844            _diff = _diff && displayElementDiff("factcount", factcount, _cother.factcount, _out, _indent+1);
2845            _diff = _diff && displayElementArrayDiff("ignoreColumns", ignoreColumns, _cother.ignoreColumns, _out, _indent+1);
2846            _diff = _diff && displayElementArrayDiff("foreignKeys", foreignKeys, _cother.foreignKeys, _out, _indent+1);
2847            _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1);
2848            _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1);
2849            return _diff;
2850        }
2851        // BEGIN pass-through code block ---
2852
public String JavaDoc getNameAttribute() {
2853            return name;
2854        }
2855        // END pass-through code block ---
2856
}
2857
2858    public static class AggPattern extends AggTable
2859    {
2860        public AggPattern()
2861        {
2862        }
2863
2864        public AggPattern(org.eigenbase.xom.DOMWrapper _def)
2865            throws org.eigenbase.xom.XOMException
2866        {
2867            try {
2868                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2869                _parser = _parser;
2870                org.eigenbase.xom.NodeDef[] _tempArray = null;
2871                _tempArray = _tempArray;
2872                pattern = (String JavaDoc)_parser.getAttribute("pattern", "String", null, null, false);
2873                ignorecase = (Boolean JavaDoc)_parser.getAttribute("ignorecase", "Boolean", "true", null, false);
2874                factcount = (AggFactCount)_parser.getElement(AggFactCount.class, false);
2875                _tempArray = _parser.getArray(AggIgnoreColumn.class, 0, 0);
2876                ignoreColumns = new AggIgnoreColumn[_tempArray.length];
2877                for(int _i=0; _i<ignoreColumns.length; _i++)
2878                    ignoreColumns[_i] = (AggIgnoreColumn)_tempArray[_i];
2879                _tempArray = _parser.getArray(AggForeignKey.class, 0, 0);
2880                foreignKeys = new AggForeignKey[_tempArray.length];
2881                for(int _i=0; _i<foreignKeys.length; _i++)
2882                    foreignKeys[_i] = (AggForeignKey)_tempArray[_i];
2883                _tempArray = _parser.getArray(AggMeasure.class, 0, 0);
2884                measures = new AggMeasure[_tempArray.length];
2885                for(int _i=0; _i<measures.length; _i++)
2886                    measures[_i] = (AggMeasure)_tempArray[_i];
2887                _tempArray = _parser.getArray(AggLevel.class, 0, 0);
2888                levels = new AggLevel[_tempArray.length];
2889                for(int _i=0; _i<levels.length; _i++)
2890                    levels[_i] = (AggLevel)_tempArray[_i];
2891                _tempArray = _parser.getArray(AggExclude.class, 0, 0);
2892                excludes = new AggExclude[_tempArray.length];
2893                for(int _i=0; _i<excludes.length; _i++)
2894                    excludes[_i] = (AggExclude)_tempArray[_i];
2895            } catch(org.eigenbase.xom.XOMException _ex) {
2896                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2897            }
2898        }
2899
2900        public String JavaDoc pattern; // optional attribute
2901

2902        public AggExclude[] excludes; //optional array
2903

2904        public String JavaDoc getName()
2905        {
2906            return "AggPattern";
2907        }
2908
2909        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2910        {
2911            _out.println(getName());
2912            displayAttribute(_out, "pattern", pattern, _indent+1);
2913            displayAttribute(_out, "ignorecase", ignorecase, _indent+1);
2914            displayElement(_out, "factcount", factcount, _indent+1);
2915            displayElementArray(_out, "ignoreColumns", ignoreColumns, _indent+1);
2916            displayElementArray(_out, "foreignKeys", foreignKeys, _indent+1);
2917            displayElementArray(_out, "measures", measures, _indent+1);
2918            displayElementArray(_out, "levels", levels, _indent+1);
2919            displayElementArray(_out, "excludes", excludes, _indent+1);
2920        }
2921        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2922        {
2923            _out.beginTag("AggPattern", new org.eigenbase.xom.XMLAttrVector()
2924                .add("pattern", pattern)
2925                .add("ignorecase", ignorecase)
2926            );
2927            displayXMLElement(_out, factcount);
2928            displayXMLElementArray(_out, ignoreColumns);
2929            displayXMLElementArray(_out, foreignKeys);
2930            displayXMLElementArray(_out, measures);
2931            displayXMLElementArray(_out, levels);
2932            displayXMLElementArray(_out, excludes);
2933            _out.endTag("AggPattern");
2934        }
2935        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
2936        {
2937            boolean _diff = true;
2938            AggPattern _cother = (AggPattern)_other;
2939            _diff = _diff && displayAttributeDiff("pattern", pattern, _cother.pattern, _out, _indent+1);
2940            _diff = _diff && displayElementDiff("factcount", factcount, _cother.factcount, _out, _indent+1);
2941            _diff = _diff && displayElementArrayDiff("ignoreColumns", ignoreColumns, _cother.ignoreColumns, _out, _indent+1);
2942            _diff = _diff && displayElementArrayDiff("foreignKeys", foreignKeys, _cother.foreignKeys, _out, _indent+1);
2943            _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1);
2944            _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1);
2945            _diff = _diff && displayElementArrayDiff("excludes", excludes, _cother.excludes, _out, _indent+1);
2946            return _diff;
2947        }
2948        // BEGIN pass-through code block ---
2949
public String JavaDoc getPattern() {
2950            return pattern;
2951        }
2952        public AggExclude[] getAggExcludes() {
2953            return excludes;
2954        }
2955        // END pass-through code block ---
2956
}
2957
2958    public static class AggExclude extends org.eigenbase.xom.ElementDef
2959    {
2960        public AggExclude()
2961        {
2962        }
2963
2964        public AggExclude(org.eigenbase.xom.DOMWrapper _def)
2965            throws org.eigenbase.xom.XOMException
2966        {
2967            try {
2968                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
2969                _parser = _parser;
2970                pattern = (String JavaDoc)_parser.getAttribute("pattern", "String", null, null, false);
2971                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
2972                ignorecase = (Boolean JavaDoc)_parser.getAttribute("ignorecase", "Boolean", "true", null, false);
2973            } catch(org.eigenbase.xom.XOMException _ex) {
2974                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
2975            }
2976        }
2977
2978        public String JavaDoc pattern; // optional attribute
2979
public String JavaDoc name; // optional attribute
2980
public Boolean JavaDoc ignorecase; // attribute default: true
2981

2982
2983        public String JavaDoc getName()
2984        {
2985            return "AggExclude";
2986        }
2987
2988        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
2989        {
2990            _out.println(getName());
2991            displayAttribute(_out, "pattern", pattern, _indent+1);
2992            displayAttribute(_out, "name", name, _indent+1);
2993            displayAttribute(_out, "ignorecase", ignorecase, _indent+1);
2994        }
2995        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
2996        {
2997            _out.beginTag("AggExclude", new org.eigenbase.xom.XMLAttrVector()
2998                .add("pattern", pattern)
2999                .add("name", name)
3000                .add("ignorecase", ignorecase)
3001            );
3002            _out.endTag("AggExclude");
3003        }
3004        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3005        {
3006            boolean _diff = true;
3007            AggExclude _cother = (AggExclude)_other;
3008            _diff = _diff && displayAttributeDiff("pattern", pattern, _cother.pattern, _out, _indent+1);
3009            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
3010            _diff = _diff && displayAttributeDiff("ignorecase", ignorecase, _cother.ignorecase, _out, _indent+1);
3011            return _diff;
3012        }
3013        // BEGIN pass-through code block ---
3014
public String JavaDoc getNameAttribute() {
3015            return name;
3016        }
3017        public String JavaDoc getPattern() {
3018            return pattern;
3019        }
3020        public boolean isIgnoreCase() {
3021            return ignorecase.booleanValue();
3022        }
3023        // END pass-through code block ---
3024
}
3025
3026    public static abstract class AggColumnName extends org.eigenbase.xom.ElementDef
3027    {
3028        public AggColumnName()
3029        {
3030        }
3031
3032        public AggColumnName(org.eigenbase.xom.DOMWrapper _def)
3033            throws org.eigenbase.xom.XOMException
3034        {
3035            try {
3036                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3037                _parser = _parser;
3038                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
3039            } catch(org.eigenbase.xom.XOMException _ex) {
3040                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3041            }
3042        }
3043
3044        public String JavaDoc column; // optional attribute
3045

3046
3047        public String JavaDoc getName()
3048        {
3049            return "AggColumnName";
3050        }
3051
3052        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3053        {
3054            _out.println(getName());
3055            displayAttribute(_out, "column", column, _indent+1);
3056        }
3057        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3058        {
3059            _out.beginTag("(%AggColumnName;)", new org.eigenbase.xom.XMLAttrVector()
3060                .add("column", column)
3061            );
3062            _out.endTag("(%AggColumnName;)");
3063        }
3064        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3065        {
3066            boolean _diff = true;
3067            AggColumnName _cother = (AggColumnName)_other;
3068            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
3069            return _diff;
3070        }
3071        // BEGIN pass-through code block ---
3072
public String JavaDoc getColumnName() {
3073            return column;
3074        }
3075        // END pass-through code block ---
3076
}
3077
3078    public static class AggFactCount extends AggColumnName
3079    {
3080        public AggFactCount()
3081        {
3082        }
3083
3084        public AggFactCount(org.eigenbase.xom.DOMWrapper _def)
3085            throws org.eigenbase.xom.XOMException
3086        {
3087            try {
3088                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3089                _parser = _parser;
3090                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
3091            } catch(org.eigenbase.xom.XOMException _ex) {
3092                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3093            }
3094        }
3095
3096
3097
3098        public String JavaDoc getName()
3099        {
3100            return "AggFactCount";
3101        }
3102
3103        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3104        {
3105            _out.println(getName());
3106            displayAttribute(_out, "column", column, _indent+1);
3107        }
3108        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3109        {
3110            _out.beginTag("AggFactCount", new org.eigenbase.xom.XMLAttrVector()
3111                .add("column", column)
3112            );
3113            _out.endTag("AggFactCount");
3114        }
3115        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3116        {
3117            boolean _diff = true;
3118            AggFactCount _cother = (AggFactCount)_other;
3119            return _diff;
3120        }
3121    }
3122
3123    public static class AggIgnoreColumn extends AggColumnName
3124    {
3125        public AggIgnoreColumn()
3126        {
3127        }
3128
3129        public AggIgnoreColumn(org.eigenbase.xom.DOMWrapper _def)
3130            throws org.eigenbase.xom.XOMException
3131        {
3132            try {
3133                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3134                _parser = _parser;
3135                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
3136            } catch(org.eigenbase.xom.XOMException _ex) {
3137                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3138            }
3139        }
3140
3141
3142
3143        public String JavaDoc getName()
3144        {
3145            return "AggIgnoreColumn";
3146        }
3147
3148        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3149        {
3150            _out.println(getName());
3151            displayAttribute(_out, "column", column, _indent+1);
3152        }
3153        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3154        {
3155            _out.beginTag("AggIgnoreColumn", new org.eigenbase.xom.XMLAttrVector()
3156                .add("column", column)
3157            );
3158            _out.endTag("AggIgnoreColumn");
3159        }
3160        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3161        {
3162            boolean _diff = true;
3163            AggIgnoreColumn _cother = (AggIgnoreColumn)_other;
3164            return _diff;
3165        }
3166    }
3167
3168    /**
3169     * The name of the column mapping from base fact table foreign key
3170     * to aggregate table foreign key.
3171     */

3172    public static class AggForeignKey extends org.eigenbase.xom.ElementDef
3173    {
3174        public AggForeignKey()
3175        {
3176        }
3177
3178        public AggForeignKey(org.eigenbase.xom.DOMWrapper _def)
3179            throws org.eigenbase.xom.XOMException
3180        {
3181            try {
3182                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3183                _parser = _parser;
3184                factColumn = (String JavaDoc)_parser.getAttribute("factColumn", "String", null, null, false);
3185                aggColumn = (String JavaDoc)_parser.getAttribute("aggColumn", "String", null, null, false);
3186            } catch(org.eigenbase.xom.XOMException _ex) {
3187                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3188            }
3189        }
3190
3191        public String JavaDoc factColumn; // optional attribute
3192
public String JavaDoc aggColumn; // optional attribute
3193

3194
3195        public String JavaDoc getName()
3196        {
3197            return "AggForeignKey";
3198        }
3199
3200        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3201        {
3202            _out.println(getName());
3203            displayAttribute(_out, "factColumn", factColumn, _indent+1);
3204            displayAttribute(_out, "aggColumn", aggColumn, _indent+1);
3205        }
3206        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3207        {
3208            _out.beginTag("AggForeignKey", new org.eigenbase.xom.XMLAttrVector()
3209                .add("factColumn", factColumn)
3210                .add("aggColumn", aggColumn)
3211            );
3212            _out.endTag("AggForeignKey");
3213        }
3214        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3215        {
3216            boolean _diff = true;
3217            AggForeignKey _cother = (AggForeignKey)_other;
3218            _diff = _diff && displayAttributeDiff("factColumn", factColumn, _cother.factColumn, _out, _indent+1);
3219            _diff = _diff && displayAttributeDiff("aggColumn", aggColumn, _cother.aggColumn, _out, _indent+1);
3220            return _diff;
3221        }
3222        // BEGIN pass-through code block ---
3223
public String JavaDoc getFactFKColumnName() {
3224            return factColumn;
3225        }
3226        public String JavaDoc getAggregateFKColumnName() {
3227            return aggColumn;
3228        }
3229        // END pass-through code block ---
3230
}
3231
3232    public static class AggLevel extends org.eigenbase.xom.ElementDef
3233    {
3234        public AggLevel()
3235        {
3236        }
3237
3238        public AggLevel(org.eigenbase.xom.DOMWrapper _def)
3239            throws org.eigenbase.xom.XOMException
3240        {
3241            try {
3242                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3243                _parser = _parser;
3244                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
3245                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
3246            } catch(org.eigenbase.xom.XOMException _ex) {
3247                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3248            }
3249        }
3250
3251        public String JavaDoc column; // optional attribute
3252
public String JavaDoc name; // optional attribute
3253

3254
3255        public String JavaDoc getName()
3256        {
3257            return "AggLevel";
3258        }
3259
3260        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3261        {
3262            _out.println(getName());
3263            displayAttribute(_out, "column", column, _indent+1);
3264            displayAttribute(_out, "name", name, _indent+1);
3265        }
3266        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3267        {
3268            _out.beginTag("AggLevel", new org.eigenbase.xom.XMLAttrVector()
3269                .add("column", column)
3270                .add("name", name)
3271            );
3272            _out.endTag("AggLevel");
3273        }
3274        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3275        {
3276            boolean _diff = true;
3277            AggLevel _cother = (AggLevel)_other;
3278            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
3279            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
3280            return _diff;
3281        }
3282        // BEGIN pass-through code block ---
3283
public String JavaDoc getNameAttribute() {
3284            return name;
3285        }
3286        public String JavaDoc getColumnName() {
3287            return column;
3288        }
3289        // END pass-through code block ---
3290
}
3291
3292    public static class AggMeasure extends org.eigenbase.xom.ElementDef
3293    {
3294        public AggMeasure()
3295        {
3296        }
3297
3298        public AggMeasure(org.eigenbase.xom.DOMWrapper _def)
3299            throws org.eigenbase.xom.XOMException
3300        {
3301            try {
3302                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3303                _parser = _parser;
3304                column = (String JavaDoc)_parser.getAttribute("column", "String", null, null, false);
3305                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
3306            } catch(org.eigenbase.xom.XOMException _ex) {
3307                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3308            }
3309        }
3310
3311        public String JavaDoc column; // optional attribute
3312
public String JavaDoc name; // optional attribute
3313

3314
3315        public String JavaDoc getName()
3316        {
3317            return "AggMeasure";
3318        }
3319
3320        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3321        {
3322            _out.println(getName());
3323            displayAttribute(_out, "column", column, _indent+1);
3324            displayAttribute(_out, "name", name, _indent+1);
3325        }
3326        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3327        {
3328            _out.beginTag("AggMeasure", new org.eigenbase.xom.XMLAttrVector()
3329                .add("column", column)
3330                .add("name", name)
3331            );
3332            _out.endTag("AggMeasure");
3333        }
3334        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3335        {
3336            boolean _diff = true;
3337            AggMeasure _cother = (AggMeasure)_other;
3338            _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1);
3339            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
3340            return _diff;
3341        }
3342        // BEGIN pass-through code block ---
3343
public String JavaDoc getNameAttribute() {
3344            return name;
3345        }
3346        public String JavaDoc getColumn() {
3347            return column;
3348        }
3349        // END pass-through code block ---
3350
}
3351
3352    public static abstract class Expression extends org.eigenbase.xom.ElementDef
3353    {
3354        public Expression()
3355        {
3356        }
3357
3358        public Expression(org.eigenbase.xom.DOMWrapper _def)
3359            throws org.eigenbase.xom.XOMException
3360        {
3361        }
3362
3363
3364
3365        public String JavaDoc getName()
3366        {
3367            return "Expression";
3368        }
3369
3370        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3371        {
3372        }
3373        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3374        {
3375            _out.beginTag("(%Expression;)", new org.eigenbase.xom.XMLAttrVector()
3376            );
3377            _out.endTag("(%Expression;)");
3378        }
3379        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3380        {
3381            boolean _diff = true;
3382            return _diff;
3383        }
3384        // BEGIN pass-through code block ---
3385
public abstract String JavaDoc getExpression(mondrian.rolap.sql.SqlQuery query);
3386        public abstract String JavaDoc getGenericExpression();
3387        public abstract String JavaDoc getTableAlias();
3388        // END pass-through code block ---
3389
}
3390
3391    public static class Column extends Expression
3392    {
3393        public Column()
3394        {
3395        }
3396
3397        public Column(org.eigenbase.xom.DOMWrapper _def)
3398            throws org.eigenbase.xom.XOMException
3399        {
3400            try {
3401                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3402                _parser = _parser;
3403                table = (String JavaDoc)_parser.getAttribute("table", "String", null, null, false);
3404                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
3405            } catch(org.eigenbase.xom.XOMException _ex) {
3406                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3407            }
3408        }
3409
3410        public String JavaDoc table; // optional attribute
3411
public String JavaDoc name; // optional attribute
3412

3413
3414        public String JavaDoc getName()
3415        {
3416            return "Column";
3417        }
3418
3419        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3420        {
3421            _out.println(getName());
3422            displayAttribute(_out, "table", table, _indent+1);
3423            displayAttribute(_out, "name", name, _indent+1);
3424        }
3425        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3426        {
3427            _out.beginTag("Column", new org.eigenbase.xom.XMLAttrVector()
3428                .add("table", table)
3429                .add("name", name)
3430            );
3431            _out.endTag("Column");
3432        }
3433        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3434        {
3435            boolean _diff = true;
3436            Column _cother = (Column)_other;
3437            _diff = _diff && displayAttributeDiff("table", table, _cother.table, _out, _indent+1);
3438            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
3439            return _diff;
3440        }
3441        // BEGIN pass-through code block ---
3442
/** Convenience constructor. */
3443        public Column(String JavaDoc table, String JavaDoc name) {
3444            this();
3445            Util.assertTrue(name != null);
3446            this.table = table;
3447            this.name = name;
3448        }
3449        public String JavaDoc getExpression(mondrian.rolap.sql.SqlQuery query) {
3450            return query.getDialect().quoteIdentifier(table, name);
3451        }
3452        public String JavaDoc getGenericExpression() {
3453            if (table == null) {
3454                return name;
3455            } else {
3456                return table + "." + name;
3457            }
3458        }
3459        public String JavaDoc getColumnName() {
3460            return name;
3461        }
3462        public String JavaDoc getTableAlias() {
3463            return table;
3464        }
3465        public int hashCode() {
3466            return name.hashCode() ^ (table==null ? 0 : table.hashCode());
3467        }
3468
3469        public boolean equals(Object JavaDoc obj) {
3470            if (!(obj instanceof Column)) {
3471                return false;
3472            }
3473            Column that = (Column) obj;
3474            return this.name.equals(that.name) &&
3475                Util.equals(this.table, that.table);
3476        }
3477        // END pass-through code block ---
3478
}
3479
3480    /**
3481     * A collection of SQL expressions, one per dialect.
3482     */

3483    public static abstract class ExpressionView extends Expression
3484    {
3485        public ExpressionView()
3486        {
3487        }
3488
3489        public ExpressionView(org.eigenbase.xom.DOMWrapper _def)
3490            throws org.eigenbase.xom.XOMException
3491        {
3492            try {
3493                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3494                _parser = _parser;
3495                org.eigenbase.xom.NodeDef[] _tempArray = null;
3496                _tempArray = _tempArray;
3497                _tempArray = _parser.getArray(SQL.class, 1, 0);
3498                expressions = new SQL[_tempArray.length];
3499                for(int _i=0; _i<expressions.length; _i++)
3500                    expressions[_i] = (SQL)_tempArray[_i];
3501            } catch(org.eigenbase.xom.XOMException _ex) {
3502                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3503            }
3504        }
3505
3506
3507        public SQL[] expressions; //min 1
3508

3509        public String JavaDoc getName()
3510        {
3511            return "ExpressionView";
3512        }
3513
3514        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3515        {
3516            _out.println(getName());
3517            displayElementArray(_out, "expressions", expressions, _indent+1);
3518        }
3519        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3520        {
3521            _out.beginTag("(%ExpressionView;)", new org.eigenbase.xom.XMLAttrVector()
3522            );
3523            displayXMLElementArray(_out, expressions);
3524            _out.endTag("(%ExpressionView;)");
3525        }
3526        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3527        {
3528            boolean _diff = true;
3529            ExpressionView _cother = (ExpressionView)_other;
3530            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3531            return _diff;
3532        }
3533        // BEGIN pass-through code block ---
3534
public String JavaDoc toString() {
3535            return expressions[0].cdata;
3536        }
3537        public String JavaDoc getExpression(mondrian.rolap.sql.SqlQuery query) {
3538            //return query.getDialect().chooseQuery(expressions);
3539
return ""; //====Change for duplicate MondrianGuiDef.java in mondrian.gui
3540
}
3541        public String JavaDoc getGenericExpression() {
3542            for (int i = 0; i < expressions.length; i++) {
3543                if (expressions[i].dialect.equals("generic")) {
3544                    return expressions[i].cdata;
3545                }
3546            }
3547            return expressions[0].cdata;
3548        }
3549        public String JavaDoc getTableAlias() {
3550            return null;
3551        }
3552        public int hashCode() {
3553            int h = 17;
3554            for (int i = 0; i < expressions.length; i++) {
3555                h = 37 * h + expressions[i].hashCode();
3556            }
3557            return h;
3558        }
3559
3560        public boolean equals(Object JavaDoc obj) {
3561            if (!(obj instanceof ExpressionView)) {
3562                return false;
3563            }
3564            ExpressionView that = (ExpressionView) obj;
3565            if (this.expressions.length != that.expressions.length) {
3566                return false;
3567            }
3568            for (int i = 0; i < expressions.length; i++) {
3569                if (! this.expressions[i].equals(that.expressions[i])) {
3570                    return false;
3571                }
3572            }
3573            return true;
3574        }
3575        // END pass-through code block ---
3576
}
3577
3578    public static class KeyExpression extends ExpressionView
3579    {
3580        public KeyExpression()
3581        {
3582        }
3583
3584        public KeyExpression(org.eigenbase.xom.DOMWrapper _def)
3585            throws org.eigenbase.xom.XOMException
3586        {
3587            try {
3588                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3589                _parser = _parser;
3590                org.eigenbase.xom.NodeDef[] _tempArray = null;
3591                _tempArray = _tempArray;
3592                _tempArray = _parser.getArray(SQL.class, 1, 0);
3593                expressions = new SQL[_tempArray.length];
3594                for(int _i=0; _i<expressions.length; _i++)
3595                    expressions[_i] = (SQL)_tempArray[_i];
3596            } catch(org.eigenbase.xom.XOMException _ex) {
3597                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3598            }
3599        }
3600
3601
3602
3603        public String JavaDoc getName()
3604        {
3605            return "KeyExpression";
3606        }
3607
3608        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3609        {
3610            _out.println(getName());
3611            displayElementArray(_out, "expressions", expressions, _indent+1);
3612        }
3613        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3614        {
3615            _out.beginTag("KeyExpression", new org.eigenbase.xom.XMLAttrVector()
3616            );
3617            displayXMLElementArray(_out, expressions);
3618            _out.endTag("KeyExpression");
3619        }
3620        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3621        {
3622            boolean _diff = true;
3623            KeyExpression _cother = (KeyExpression)_other;
3624            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3625            return _diff;
3626        }
3627    }
3628
3629    public static class ParentExpression extends ExpressionView
3630    {
3631        public ParentExpression()
3632        {
3633        }
3634
3635        public ParentExpression(org.eigenbase.xom.DOMWrapper _def)
3636            throws org.eigenbase.xom.XOMException
3637        {
3638            try {
3639                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3640                _parser = _parser;
3641                org.eigenbase.xom.NodeDef[] _tempArray = null;
3642                _tempArray = _tempArray;
3643                _tempArray = _parser.getArray(SQL.class, 1, 0);
3644                expressions = new SQL[_tempArray.length];
3645                for(int _i=0; _i<expressions.length; _i++)
3646                    expressions[_i] = (SQL)_tempArray[_i];
3647            } catch(org.eigenbase.xom.XOMException _ex) {
3648                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3649            }
3650        }
3651
3652
3653
3654        public String JavaDoc getName()
3655        {
3656            return "ParentExpression";
3657        }
3658
3659        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3660        {
3661            _out.println(getName());
3662            displayElementArray(_out, "expressions", expressions, _indent+1);
3663        }
3664        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3665        {
3666            _out.beginTag("ParentExpression", new org.eigenbase.xom.XMLAttrVector()
3667            );
3668            displayXMLElementArray(_out, expressions);
3669            _out.endTag("ParentExpression");
3670        }
3671        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3672        {
3673            boolean _diff = true;
3674            ParentExpression _cother = (ParentExpression)_other;
3675            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3676            return _diff;
3677        }
3678    }
3679
3680    public static class OrdinalExpression extends ExpressionView
3681    {
3682        public OrdinalExpression()
3683        {
3684        }
3685
3686        public OrdinalExpression(org.eigenbase.xom.DOMWrapper _def)
3687            throws org.eigenbase.xom.XOMException
3688        {
3689            try {
3690                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3691                _parser = _parser;
3692                org.eigenbase.xom.NodeDef[] _tempArray = null;
3693                _tempArray = _tempArray;
3694                _tempArray = _parser.getArray(SQL.class, 1, 0);
3695                expressions = new SQL[_tempArray.length];
3696                for(int _i=0; _i<expressions.length; _i++)
3697                    expressions[_i] = (SQL)_tempArray[_i];
3698            } catch(org.eigenbase.xom.XOMException _ex) {
3699                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3700            }
3701        }
3702
3703
3704
3705        public String JavaDoc getName()
3706        {
3707            return "OrdinalExpression";
3708        }
3709
3710        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3711        {
3712            _out.println(getName());
3713            displayElementArray(_out, "expressions", expressions, _indent+1);
3714        }
3715        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3716        {
3717            _out.beginTag("OrdinalExpression", new org.eigenbase.xom.XMLAttrVector()
3718            );
3719            displayXMLElementArray(_out, expressions);
3720            _out.endTag("OrdinalExpression");
3721        }
3722        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3723        {
3724            boolean _diff = true;
3725            OrdinalExpression _cother = (OrdinalExpression)_other;
3726            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3727            return _diff;
3728        }
3729    }
3730
3731    public static class NameExpression extends ExpressionView
3732    {
3733        public NameExpression()
3734        {
3735        }
3736
3737        public NameExpression(org.eigenbase.xom.DOMWrapper _def)
3738            throws org.eigenbase.xom.XOMException
3739        {
3740            try {
3741                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3742                _parser = _parser;
3743                org.eigenbase.xom.NodeDef[] _tempArray = null;
3744                _tempArray = _tempArray;
3745                _tempArray = _parser.getArray(SQL.class, 1, 0);
3746                expressions = new SQL[_tempArray.length];
3747                for(int _i=0; _i<expressions.length; _i++)
3748                    expressions[_i] = (SQL)_tempArray[_i];
3749            } catch(org.eigenbase.xom.XOMException _ex) {
3750                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3751            }
3752        }
3753
3754
3755
3756        public String JavaDoc getName()
3757        {
3758            return "NameExpression";
3759        }
3760
3761        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3762        {
3763            _out.println(getName());
3764            displayElementArray(_out, "expressions", expressions, _indent+1);
3765        }
3766        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3767        {
3768            _out.beginTag("NameExpression", new org.eigenbase.xom.XMLAttrVector()
3769            );
3770            displayXMLElementArray(_out, expressions);
3771            _out.endTag("NameExpression");
3772        }
3773        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3774        {
3775            boolean _diff = true;
3776            NameExpression _cother = (NameExpression)_other;
3777            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3778            return _diff;
3779        }
3780    }
3781
3782    public static class CaptionExpression extends ExpressionView
3783    {
3784        public CaptionExpression()
3785        {
3786        }
3787
3788        public CaptionExpression(org.eigenbase.xom.DOMWrapper _def)
3789            throws org.eigenbase.xom.XOMException
3790        {
3791            try {
3792                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3793                _parser = _parser;
3794                org.eigenbase.xom.NodeDef[] _tempArray = null;
3795                _tempArray = _tempArray;
3796                _tempArray = _parser.getArray(SQL.class, 1, 0);
3797                expressions = new SQL[_tempArray.length];
3798                for(int _i=0; _i<expressions.length; _i++)
3799                    expressions[_i] = (SQL)_tempArray[_i];
3800            } catch(org.eigenbase.xom.XOMException _ex) {
3801                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3802            }
3803        }
3804
3805
3806
3807        public String JavaDoc getName()
3808        {
3809            return "CaptionExpression";
3810        }
3811
3812        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3813        {
3814            _out.println(getName());
3815            displayElementArray(_out, "expressions", expressions, _indent+1);
3816        }
3817        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3818        {
3819            _out.beginTag("CaptionExpression", new org.eigenbase.xom.XMLAttrVector()
3820            );
3821            displayXMLElementArray(_out, expressions);
3822            _out.endTag("CaptionExpression");
3823        }
3824        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3825        {
3826            boolean _diff = true;
3827            CaptionExpression _cother = (CaptionExpression)_other;
3828            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3829            return _diff;
3830        }
3831    }
3832
3833    public static class MeasureExpression extends ExpressionView
3834    {
3835        public MeasureExpression()
3836        {
3837        }
3838
3839        public MeasureExpression(org.eigenbase.xom.DOMWrapper _def)
3840            throws org.eigenbase.xom.XOMException
3841        {
3842            try {
3843                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3844                _parser = _parser;
3845                org.eigenbase.xom.NodeDef[] _tempArray = null;
3846                _tempArray = _tempArray;
3847                _tempArray = _parser.getArray(SQL.class, 1, 0);
3848                expressions = new SQL[_tempArray.length];
3849                for(int _i=0; _i<expressions.length; _i++)
3850                    expressions[_i] = (SQL)_tempArray[_i];
3851            } catch(org.eigenbase.xom.XOMException _ex) {
3852                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3853            }
3854        }
3855
3856
3857
3858        public String JavaDoc getName()
3859        {
3860            return "MeasureExpression";
3861        }
3862
3863        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3864        {
3865            _out.println(getName());
3866            displayElementArray(_out, "expressions", expressions, _indent+1);
3867        }
3868        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3869        {
3870            _out.beginTag("MeasureExpression", new org.eigenbase.xom.XMLAttrVector()
3871            );
3872            displayXMLElementArray(_out, expressions);
3873            _out.endTag("MeasureExpression");
3874        }
3875        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3876        {
3877            boolean _diff = true;
3878            MeasureExpression _cother = (MeasureExpression)_other;
3879            _diff = _diff && displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1);
3880            return _diff;
3881        }
3882    }
3883
3884    /**
3885     * A role defines an access-control profile. It has a series of grants
3886     * (or denials) for schema elements.
3887     */

3888    public static class Role extends org.eigenbase.xom.ElementDef
3889    {
3890        public Role()
3891        {
3892        }
3893
3894        public Role(org.eigenbase.xom.DOMWrapper _def)
3895            throws org.eigenbase.xom.XOMException
3896        {
3897            try {
3898                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3899                _parser = _parser;
3900                org.eigenbase.xom.NodeDef[] _tempArray = null;
3901                _tempArray = _tempArray;
3902                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
3903                _tempArray = _parser.getArray(SchemaGrant.class, 0, 0);
3904                schemaGrants = new SchemaGrant[_tempArray.length];
3905                for(int _i=0; _i<schemaGrants.length; _i++)
3906                    schemaGrants[_i] = (SchemaGrant)_tempArray[_i];
3907            } catch(org.eigenbase.xom.XOMException _ex) {
3908                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3909            }
3910        }
3911
3912        public String JavaDoc name; // optional attribute
3913

3914        public SchemaGrant[] schemaGrants; //optional array
3915

3916        public String JavaDoc getName()
3917        {
3918            return "Role";
3919        }
3920
3921        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3922        {
3923            _out.println(getName());
3924            displayAttribute(_out, "name", name, _indent+1);
3925            displayElementArray(_out, "schemaGrants", schemaGrants, _indent+1);
3926        }
3927        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3928        {
3929            _out.beginTag("Role", new org.eigenbase.xom.XMLAttrVector()
3930                .add("name", name)
3931            );
3932            displayXMLElementArray(_out, schemaGrants);
3933            _out.endTag("Role");
3934        }
3935        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3936        {
3937            boolean _diff = true;
3938            Role _cother = (Role)_other;
3939            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
3940            _diff = _diff && displayElementArrayDiff("schemaGrants", schemaGrants, _cother.schemaGrants, _out, _indent+1);
3941            return _diff;
3942        }
3943    }
3944
3945    public static abstract class Grant extends org.eigenbase.xom.ElementDef
3946    {
3947        public Grant()
3948        {
3949        }
3950
3951        public Grant(org.eigenbase.xom.DOMWrapper _def)
3952            throws org.eigenbase.xom.XOMException
3953        {
3954            try {
3955                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
3956                _parser = _parser;
3957                access = (String JavaDoc)_parser.getAttribute("access", "String", null, _access_values, false);
3958            } catch(org.eigenbase.xom.XOMException _ex) {
3959                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
3960            }
3961        }
3962
3963        /** Allowable values for {@link #access}. */
3964        public static final String JavaDoc[] _access_values = {"all", "custom", "none", "all_dimensions"};
3965        public String JavaDoc access; // optional attribute
3966

3967
3968        public String JavaDoc getName()
3969        {
3970            return "Grant";
3971        }
3972
3973        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
3974        {
3975            _out.println(getName());
3976            displayAttribute(_out, "access", access, _indent+1);
3977        }
3978        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
3979        {
3980            _out.beginTag("(%Grant;)", new org.eigenbase.xom.XMLAttrVector()
3981                .add("access", access)
3982            );
3983            _out.endTag("(%Grant;)");
3984        }
3985        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
3986        {
3987            boolean _diff = true;
3988            Grant _cother = (Grant)_other;
3989            _diff = _diff && displayAttributeDiff("access", access, _cother.access, _out, _indent+1);
3990            return _diff;
3991        }
3992    }
3993
3994    /**
3995     * Grants (or denies) this role access to this schema.
3996     * access may be "all", "all_dimensions", or "none".
3997     * If access is "all_dimensions", the role has access
3998     * to all dimensions but still needs explicit access to cubes.
3999     * See mondrian.olap.Role#grant(mondrian.olap.Schema,int).
4000     */

4001    public static class SchemaGrant extends Grant
4002    {
4003        public SchemaGrant()
4004        {
4005        }
4006
4007        public SchemaGrant(org.eigenbase.xom.DOMWrapper _def)
4008            throws org.eigenbase.xom.XOMException
4009        {
4010            try {
4011                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4012                _parser = _parser;
4013                org.eigenbase.xom.NodeDef[] _tempArray = null;
4014                _tempArray = _tempArray;
4015                access = (String JavaDoc)_parser.getAttribute("access", "String", null, _access_values, false);
4016                _tempArray = _parser.getArray(CubeGrant.class, 0, 0);
4017                cubeGrants = new CubeGrant[_tempArray.length];
4018                for(int _i=0; _i<cubeGrants.length; _i++)
4019                    cubeGrants[_i] = (CubeGrant)_tempArray[_i];
4020            } catch(org.eigenbase.xom.XOMException _ex) {
4021                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4022            }
4023        }
4024
4025
4026        public CubeGrant[] cubeGrants; //optional array
4027

4028        public String JavaDoc getName()
4029        {
4030            return "SchemaGrant";
4031        }
4032
4033        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4034        {
4035            _out.println(getName());
4036            displayAttribute(_out, "access", access, _indent+1);
4037            displayElementArray(_out, "cubeGrants", cubeGrants, _indent+1);
4038        }
4039        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4040        {
4041            _out.beginTag("SchemaGrant", new org.eigenbase.xom.XMLAttrVector()
4042                .add("access", access)
4043            );
4044            displayXMLElementArray(_out, cubeGrants);
4045            _out.endTag("SchemaGrant");
4046        }
4047        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4048        {
4049            boolean _diff = true;
4050            SchemaGrant _cother = (SchemaGrant)_other;
4051            _diff = _diff && displayElementArrayDiff("cubeGrants", cubeGrants, _cother.cubeGrants, _out, _indent+1);
4052            return _diff;
4053        }
4054    }
4055
4056    /**
4057     * Grants (or denies) this role access to a cube.
4058     * access may be "all" or "none".
4059     * See mondrian.olap.Role#grant(mondrian.olap.Cube,int).
4060     */

4061    public static class CubeGrant extends Grant
4062    {
4063        public CubeGrant()
4064        {
4065        }
4066
4067        public CubeGrant(org.eigenbase.xom.DOMWrapper _def)
4068            throws org.eigenbase.xom.XOMException
4069        {
4070            try {
4071                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4072                _parser = _parser;
4073                org.eigenbase.xom.NodeDef[] _tempArray = null;
4074                _tempArray = _tempArray;
4075                cube = (String JavaDoc)_parser.getAttribute("cube", "String", null, null, false);
4076                access = (String JavaDoc)_parser.getAttribute("access", "String", null, _access_values, false);
4077                _tempArray = _parser.getArray(DimensionGrant.class, 0, 0);
4078                dimensionGrants = new DimensionGrant[_tempArray.length];
4079                for(int _i=0; _i<dimensionGrants.length; _i++)
4080                    dimensionGrants[_i] = (DimensionGrant)_tempArray[_i];
4081                _tempArray = _parser.getArray(HierarchyGrant.class, 0, 0);
4082                hierarchyGrants = new HierarchyGrant[_tempArray.length];
4083                for(int _i=0; _i<hierarchyGrants.length; _i++)
4084                    hierarchyGrants[_i] = (HierarchyGrant)_tempArray[_i];
4085            } catch(org.eigenbase.xom.XOMException _ex) {
4086                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4087            }
4088        }
4089
4090        public String JavaDoc cube; // optional attribute
4091

4092        public DimensionGrant[] dimensionGrants; //optional array
4093
public HierarchyGrant[] hierarchyGrants; //optional array
4094

4095        public String JavaDoc getName()
4096        {
4097            return "CubeGrant";
4098        }
4099
4100        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4101        {
4102            _out.println(getName());
4103            displayAttribute(_out, "cube", cube, _indent+1);
4104            displayAttribute(_out, "access", access, _indent+1);
4105            displayElementArray(_out, "dimensionGrants", dimensionGrants, _indent+1);
4106            displayElementArray(_out, "hierarchyGrants", hierarchyGrants, _indent+1);
4107        }
4108        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4109        {
4110            _out.beginTag("CubeGrant", new org.eigenbase.xom.XMLAttrVector()
4111                .add("cube", cube)
4112                .add("access", access)
4113            );
4114            displayXMLElementArray(_out, dimensionGrants);
4115            displayXMLElementArray(_out, hierarchyGrants);
4116            _out.endTag("CubeGrant");
4117        }
4118        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4119        {
4120            boolean _diff = true;
4121            CubeGrant _cother = (CubeGrant)_other;
4122            _diff = _diff && displayAttributeDiff("cube", cube, _cother.cube, _out, _indent+1);
4123            _diff = _diff && displayElementArrayDiff("dimensionGrants", dimensionGrants, _cother.dimensionGrants, _out, _indent+1);
4124            _diff = _diff && displayElementArrayDiff("hierarchyGrants", hierarchyGrants, _cother.hierarchyGrants, _out, _indent+1);
4125            return _diff;
4126        }
4127    }
4128
4129    /**
4130     * Grants (or denies) this role access to a dimension.
4131     * access may be "all" or "none".
4132     * Note that a role is implicitly given access to a dimension when it
4133     * is given acess to a cube.
4134     * See also the "all_dimensions" option of the "SchemaGrant" element.
4135     * See mondrian.olap.Role#grant(mondrian.olap.Dimension,int).
4136     */

4137    public static class DimensionGrant extends Grant
4138    {
4139        public DimensionGrant()
4140        {
4141        }
4142
4143        public DimensionGrant(org.eigenbase.xom.DOMWrapper _def)
4144            throws org.eigenbase.xom.XOMException
4145        {
4146            try {
4147                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4148                _parser = _parser;
4149                dimension = (String JavaDoc)_parser.getAttribute("dimension", "String", null, null, false);
4150                access = (String JavaDoc)_parser.getAttribute("access", "String", null, _access_values, false);
4151            } catch(org.eigenbase.xom.XOMException _ex) {
4152                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4153            }
4154        }
4155
4156        public String JavaDoc dimension; // optional attribute
4157

4158
4159        public String JavaDoc getName()
4160        {
4161            return "DimensionGrant";
4162        }
4163
4164        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4165        {
4166            _out.println(getName());
4167            displayAttribute(_out, "dimension", dimension, _indent+1);
4168            displayAttribute(_out, "access", access, _indent+1);
4169        }
4170        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4171        {
4172            _out.beginTag("DimensionGrant", new org.eigenbase.xom.XMLAttrVector()
4173                .add("dimension", dimension)
4174                .add("access", access)
4175            );
4176            _out.endTag("DimensionGrant");
4177        }
4178        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4179        {
4180            boolean _diff = true;
4181            DimensionGrant _cother = (DimensionGrant)_other;
4182            _diff = _diff && displayAttributeDiff("dimension", dimension, _cother.dimension, _out, _indent+1);
4183            return _diff;
4184        }
4185    }
4186
4187    /**
4188     * Grants (or denies) this role access to a hierarchy.
4189     * access may be "all", "custom" or "none".
4190     * If access is "custom", you may also specify the
4191     * attributes topLevel, bottomLevel, and
4192     * the member grants.
4193     * See mondrian.olap.Role#grant(mondrian.olap.Hierarchy, int, mondrian.olap.Level).
4194     */

4195    public static class HierarchyGrant extends Grant
4196    {
4197        public HierarchyGrant()
4198        {
4199        }
4200
4201        public HierarchyGrant(org.eigenbase.xom.DOMWrapper _def)
4202            throws org.eigenbase.xom.XOMException
4203        {
4204            try {
4205                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4206                _parser = _parser;
4207                org.eigenbase.xom.NodeDef[] _tempArray = null;
4208                _tempArray = _tempArray;
4209                hierarchy = (String JavaDoc)_parser.getAttribute("hierarchy", "String", null, null, false);
4210                topLevel = (String JavaDoc)_parser.getAttribute("topLevel", "String", null, null, false);
4211                bottomLevel = (String JavaDoc)_parser.getAttribute("bottomLevel", "String", null, null, false);
4212                access = (String JavaDoc)_parser.getAttribute("access", "String", null, _access_values, false);
4213                _tempArray = _parser.getArray(MemberGrant.class, 0, 0);
4214                memberGrants = new MemberGrant[_tempArray.length];
4215                for(int _i=0; _i<memberGrants.length; _i++)
4216                    memberGrants[_i] = (MemberGrant)_tempArray[_i];
4217            } catch(org.eigenbase.xom.XOMException _ex) {
4218                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4219            }
4220        }
4221
4222        public String JavaDoc hierarchy; // optional attribute
4223
public String JavaDoc topLevel; // optional attribute
4224
public String JavaDoc bottomLevel; // optional attribute
4225

4226        public MemberGrant[] memberGrants; //optional array
4227

4228        public String JavaDoc getName()
4229        {
4230            return "HierarchyGrant";
4231        }
4232
4233        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4234        {
4235            _out.println(getName());
4236            displayAttribute(_out, "hierarchy", hierarchy, _indent+1);
4237            displayAttribute(_out, "topLevel", topLevel, _indent+1);
4238            displayAttribute(_out, "bottomLevel", bottomLevel, _indent+1);
4239            displayAttribute(_out, "access", access, _indent+1);
4240            displayElementArray(_out, "memberGrants", memberGrants, _indent+1);
4241        }
4242        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4243        {
4244            _out.beginTag("HierarchyGrant", new org.eigenbase.xom.XMLAttrVector()
4245                .add("hierarchy", hierarchy)
4246                .add("topLevel", topLevel)
4247                .add("bottomLevel", bottomLevel)
4248                .add("access", access)
4249            );
4250            displayXMLElementArray(_out, memberGrants);
4251            _out.endTag("HierarchyGrant");
4252        }
4253        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4254        {
4255            boolean _diff = true;
4256            HierarchyGrant _cother = (HierarchyGrant)_other;
4257            _diff = _diff && displayAttributeDiff("hierarchy", hierarchy, _cother.hierarchy, _out, _indent+1);
4258            _diff = _diff && displayAttributeDiff("topLevel", topLevel, _cother.topLevel, _out, _indent+1);
4259            _diff = _diff && displayAttributeDiff("bottomLevel", bottomLevel, _cother.bottomLevel, _out, _indent+1);
4260            _diff = _diff && displayElementArrayDiff("memberGrants", memberGrants, _cother.memberGrants, _out, _indent+1);
4261            return _diff;
4262        }
4263    }
4264
4265    /**
4266     * Grants (or denies) this role access to a member.
4267     * The children of this member inherit that access.
4268     * You can implicitly see a member if you can see any of its children.
4269     * See mondrian.olap.Role#grant(mondrian.olap.Member,int).
4270     */

4271    public static class MemberGrant extends org.eigenbase.xom.ElementDef
4272    {
4273        public MemberGrant()
4274        {
4275        }
4276
4277        public MemberGrant(org.eigenbase.xom.DOMWrapper _def)
4278            throws org.eigenbase.xom.XOMException
4279        {
4280            try {
4281                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4282                _parser = _parser;
4283                member = (String JavaDoc)_parser.getAttribute("member", "String", null, null, false);
4284                access = (String JavaDoc)_parser.getAttribute("access", "String", null, _access_values, false);
4285            } catch(org.eigenbase.xom.XOMException _ex) {
4286                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4287            }
4288        }
4289
4290        public String JavaDoc member; // optional attribute
4291
/** Allowable values for {@link #access}. */
4292        public static final String JavaDoc[] _access_values = {"all", "none"};
4293        public String JavaDoc access; // optional attribute
4294

4295
4296        public String JavaDoc getName()
4297        {
4298            return "MemberGrant";
4299        }
4300
4301        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4302        {
4303            _out.println(getName());
4304            displayAttribute(_out, "member", member, _indent+1);
4305            displayAttribute(_out, "access", access, _indent+1);
4306        }
4307        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4308        {
4309            _out.beginTag("MemberGrant", new org.eigenbase.xom.XMLAttrVector()
4310                .add("member", member)
4311                .add("access", access)
4312            );
4313            _out.endTag("MemberGrant");
4314        }
4315        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4316        {
4317            boolean _diff = true;
4318            MemberGrant _cother = (MemberGrant)_other;
4319            _diff = _diff && displayAttributeDiff("member", member, _cother.member, _out, _indent+1);
4320            _diff = _diff && displayAttributeDiff("access", access, _cother.access, _out, _indent+1);
4321            return _diff;
4322        }
4323    }
4324
4325    /**
4326     * A UserDefinedFunction is a function which
4327     * extends the MDX language. It must be implemented by a Java
4328     * class which implements the interface
4329     * mondrian.spi.UserDefinedFunction.
4330     */

4331    public static class UserDefinedFunction extends org.eigenbase.xom.ElementDef
4332    {
4333        public UserDefinedFunction()
4334        {
4335        }
4336
4337        public UserDefinedFunction(org.eigenbase.xom.DOMWrapper _def)
4338            throws org.eigenbase.xom.XOMException
4339        {
4340            try {
4341                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4342                _parser = _parser;
4343                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, false);
4344                className = (String JavaDoc)_parser.getAttribute("className", "String", null, null, false);
4345            } catch(org.eigenbase.xom.XOMException _ex) {
4346                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4347            }
4348        }
4349
4350        public String JavaDoc name; // optional attribute
4351
public String JavaDoc className; // optional attribute
4352

4353
4354        public String JavaDoc getName()
4355        {
4356            return "UserDefinedFunction";
4357        }
4358
4359        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4360        {
4361            _out.println(getName());
4362            displayAttribute(_out, "name", name, _indent+1);
4363            displayAttribute(_out, "className", className, _indent+1);
4364        }
4365        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4366        {
4367            _out.beginTag("UserDefinedFunction", new org.eigenbase.xom.XMLAttrVector()
4368                .add("name", name)
4369                .add("className", className)
4370            );
4371            _out.endTag("UserDefinedFunction");
4372        }
4373        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4374        {
4375            boolean _diff = true;
4376            UserDefinedFunction _cother = (UserDefinedFunction)_other;
4377            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
4378            _diff = _diff && displayAttributeDiff("className", className, _cother.className, _out, _indent+1);
4379            return _diff;
4380        }
4381    }
4382
4383    /**
4384     * A Parameter defines a schema parameter.
4385     * It can be referenced from an MDX statement using the ParamRef
4386     * function and, if not final, its value can be overridden.
4387     */

4388    public static class Parameter extends org.eigenbase.xom.ElementDef
4389    {
4390        public Parameter()
4391        {
4392        }
4393
4394        public Parameter(org.eigenbase.xom.DOMWrapper _def)
4395            throws org.eigenbase.xom.XOMException
4396        {
4397            try {
4398                org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class);
4399                _parser = _parser;
4400                name = (String JavaDoc)_parser.getAttribute("name", "String", null, null, true);
4401                description = (String JavaDoc)_parser.getAttribute("description", "String", null, null, false);
4402                type = (String JavaDoc)_parser.getAttribute("type", "String", "String", _type_values, true);
4403                modifiable = (Boolean JavaDoc)_parser.getAttribute("modifiable", "Boolean", "true", null, false);
4404                defaultValue = (String JavaDoc)_parser.getAttribute("defaultValue", "String", null, null, false);
4405            } catch(org.eigenbase.xom.XOMException _ex) {
4406                throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage());
4407            }
4408        }
4409
4410        public String JavaDoc name; // required attribute
4411
public String JavaDoc description; // optional attribute
4412
/** Allowable values for {@link #type}. */
4413        public static final String JavaDoc[] _type_values = {"String", "Numeric", "Member"};
4414        public String JavaDoc type; // attribute default: String
4415
public Boolean JavaDoc modifiable; // attribute default: true
4416
public String JavaDoc defaultValue; // optional attribute
4417

4418
4419        public String JavaDoc getName()
4420        {
4421            return "Parameter";
4422        }
4423
4424        public void display(java.io.PrintWriter JavaDoc _out, int _indent)
4425        {
4426            _out.println(getName());
4427            displayAttribute(_out, "name", name, _indent+1);
4428            displayAttribute(_out, "description", description, _indent+1);
4429            displayAttribute(_out, "type", type, _indent+1);
4430            displayAttribute(_out, "modifiable", modifiable, _indent+1);
4431            displayAttribute(_out, "defaultValue", defaultValue, _indent+1);
4432        }
4433        public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent)
4434        {
4435            _out.beginTag("Parameter", new org.eigenbase.xom.XMLAttrVector()
4436                .add("name", name)
4437                .add("description", description)
4438                .add("type", type)
4439                .add("modifiable", modifiable)
4440                .add("defaultValue", defaultValue)
4441            );
4442            _out.endTag("Parameter");
4443        }
4444        public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter JavaDoc _out, int _indent)
4445        {
4446            boolean _diff = true;
4447            Parameter _cother = (Parameter)_other;
4448            _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1);
4449            _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1);
4450            _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1);
4451            _diff = _diff && displayAttributeDiff("modifiable", modifiable, _cother.modifiable, _out, _indent+1);
4452            _diff = _diff && displayAttributeDiff("defaultValue", defaultValue, _cother.defaultValue, _out, _indent+1);
4453            return _diff;
4454        }
4455    }
4456
4457
4458}
4459
Popular Tags