001/* 002// This java file was automatically generated 003// from XOM model 'mondrian' 004// on Thu Jul 25 21:17:39 PDT 2013 005// Do not edit this file by hand. 006*/ 007 008package mondrian.gui; 009import mondrian.olap.*; 010import mondrian.rolap.sql.SqlQuery; 011/** 012 * This is the XML model for Mondrian schemas as used by the Schema 013 * Workbench. It is based upon the Mondrian model Mondrian.xml, but has 014 * a number of differences: 015 * The implementation of equals method for schema objects is changed to 016 * == (double equals), to compare two object references rather than 017 * their contents. 018 * The attributes of the root tag <Model> refers to the generated 019 * file MondrianGuiDef.java and its import statements. 020 * The 'aggregator' attribute of the Measure element requires the 021 * <Value> tags to generate a drop-down of possible options in 022 * the Schema Workbench. 023 * Revision is $Id$ 024 * <p>This class was generated from XOM model 'mondrian' on Thu Jul 25 21:17:39 PDT 2013 025 */ 026public class MondrianGuiDef { 027 028 public static java.lang.Class getXMLDefClass() 029 { 030 return MondrianGuiDef.class; 031 } 032 033 public static String[] _elements = { 034 "Schema", 035 "CubeDimension", 036 "Cube", 037 "VirtualCube", 038 "CubeUsages", 039 "CubeUsage", 040 "VirtualCubeDimension", 041 "VirtualCubeMeasure", 042 "DimensionUsage", 043 "Dimension", 044 "Hierarchy", 045 "Level", 046 "Closure", 047 "Property", 048 "Measure", 049 "CalculatedMember", 050 "CalculatedMemberProperty", 051 "NamedSet", 052 "Formula", 053 "MemberReaderParameter", 054 "RelationOrJoin", 055 "Relation", 056 "View", 057 "SQL", 058 "Join", 059 "Table", 060 "Hint", 061 "InlineTable", 062 "ColumnDefs", 063 "ColumnDef", 064 "Rows", 065 "Row", 066 "Value", 067 "AggTable", 068 "AggName", 069 "AggPattern", 070 "AggExclude", 071 "AggColumnName", 072 "AggFactCount", 073 "AggIgnoreColumn", 074 "AggForeignKey", 075 "AggLevel", 076 "AggMeasure", 077 "Expression", 078 "Column", 079 "ExpressionView", 080 "KeyExpression", 081 "ParentExpression", 082 "OrdinalExpression", 083 "NameExpression", 084 "CaptionExpression", 085 "MeasureExpression", 086 "Role", 087 "Grant", 088 "SchemaGrant", 089 "CubeGrant", 090 "DimensionGrant", 091 "HierarchyGrant", 092 "MemberGrant", 093 "Union", 094 "RoleUsage", 095 "UserDefinedFunction", 096 "Parameter", 097 "Annotations", 098 "Annotation", 099 "Script", 100 "CellFormatter", 101 "MemberFormatter", 102 "PropertyFormatter" 103 }; 104 105 /** 106 * A schema is a collection of cubes and virtual cubes. 107 * It can also contain shared dimensions (for use by those 108 * cubes), named sets, roles, and declarations of 109 * user-defined functions. 110 */ 111 public static class Schema extends org.eigenbase.xom.ElementDef 112 { 113 public Schema() 114 { 115 } 116 117 public Schema(org.eigenbase.xom.DOMWrapper _def) 118 throws org.eigenbase.xom.XOMException 119 { 120 try { 121 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 122 org.eigenbase.xom.NodeDef[] _tempArray; 123 name = (String)_parser.getAttribute("name", "String", null, null, true); 124 description = (String)_parser.getAttribute("description", "String", null, null, false); 125 measuresCaption = (String)_parser.getAttribute("measuresCaption", "String", null, null, false); 126 defaultRole = (String)_parser.getAttribute("defaultRole", "String", null, null, false); 127 annotations = (Annotations)_parser.getElement(Annotations.class, false); 128 _tempArray = _parser.getArray(Parameter.class, 0, 0); 129 parameters = new Parameter[_tempArray.length]; 130 for (int _i = 0; _i < parameters.length; _i++) 131 parameters[_i] = (Parameter)_tempArray[_i]; 132 _tempArray = _parser.getArray(Dimension.class, 0, 0); 133 dimensions = new Dimension[_tempArray.length]; 134 for (int _i = 0; _i < dimensions.length; _i++) 135 dimensions[_i] = (Dimension)_tempArray[_i]; 136 _tempArray = _parser.getArray(Cube.class, 0, 0); 137 cubes = new Cube[_tempArray.length]; 138 for (int _i = 0; _i < cubes.length; _i++) 139 cubes[_i] = (Cube)_tempArray[_i]; 140 _tempArray = _parser.getArray(VirtualCube.class, 0, 0); 141 virtualCubes = new VirtualCube[_tempArray.length]; 142 for (int _i = 0; _i < virtualCubes.length; _i++) 143 virtualCubes[_i] = (VirtualCube)_tempArray[_i]; 144 _tempArray = _parser.getArray(NamedSet.class, 0, 0); 145 namedSets = new NamedSet[_tempArray.length]; 146 for (int _i = 0; _i < namedSets.length; _i++) 147 namedSets[_i] = (NamedSet)_tempArray[_i]; 148 _tempArray = _parser.getArray(Role.class, 0, 0); 149 roles = new Role[_tempArray.length]; 150 for (int _i = 0; _i < roles.length; _i++) 151 roles[_i] = (Role)_tempArray[_i]; 152 _tempArray = _parser.getArray(UserDefinedFunction.class, 0, 0); 153 userDefinedFunctions = new UserDefinedFunction[_tempArray.length]; 154 for (int _i = 0; _i < userDefinedFunctions.length; _i++) 155 userDefinedFunctions[_i] = (UserDefinedFunction)_tempArray[_i]; 156 } catch(org.eigenbase.xom.XOMException _ex) { 157 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 158 } 159 } 160 161 public String name; // required attribute 162 public String description; // optional attribute 163 public String measuresCaption; // optional attribute 164 public String defaultRole; // optional attribute 165 166 /** 167 * Contains values of user-defined properties. 168 */ 169 public Annotations annotations; //optional element 170 /** 171 * This schema's parameter definitions. 172 */ 173 public Parameter[] parameters; //optional array 174 /** 175 * Shared dimensions in this schema. 176 */ 177 public Dimension[] dimensions; //optional array 178 /** 179 * Cubes in this schema. 180 */ 181 public Cube[] cubes; //optional array 182 /** 183 * Virtual cubes in this schema. 184 */ 185 public VirtualCube[] virtualCubes; //optional array 186 /** 187 * Named sets in this schema. 188 */ 189 public NamedSet[] namedSets; //optional array 190 /** 191 * Roles in this schema. 192 */ 193 public Role[] roles; //optional array 194 /** 195 * Declarations of user-defined functions in this schema. 196 */ 197 public UserDefinedFunction[] userDefinedFunctions; //optional array 198 199 public String getName() 200 { 201 return "Schema"; 202 } 203 204 public void display(java.io.PrintWriter _out, int _indent) 205 { 206 _out.println(getName()); 207 displayAttribute(_out, "name", name, _indent+1); 208 displayAttribute(_out, "description", description, _indent+1); 209 displayAttribute(_out, "measuresCaption", measuresCaption, _indent+1); 210 displayAttribute(_out, "defaultRole", defaultRole, _indent+1); 211 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 212 displayElementArray(_out, "parameters", parameters, _indent+1); 213 displayElementArray(_out, "dimensions", dimensions, _indent+1); 214 displayElementArray(_out, "cubes", cubes, _indent+1); 215 displayElementArray(_out, "virtualCubes", virtualCubes, _indent+1); 216 displayElementArray(_out, "namedSets", namedSets, _indent+1); 217 displayElementArray(_out, "roles", roles, _indent+1); 218 displayElementArray(_out, "userDefinedFunctions", userDefinedFunctions, _indent+1); 219 } 220 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 221 { 222 _out.beginTag("Schema", new org.eigenbase.xom.XMLAttrVector() 223 .add("name", name) 224 .add("description", description) 225 .add("measuresCaption", measuresCaption) 226 .add("defaultRole", defaultRole) 227 ); 228 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 229 displayXMLElementArray(_out, parameters); 230 displayXMLElementArray(_out, dimensions); 231 displayXMLElementArray(_out, cubes); 232 displayXMLElementArray(_out, virtualCubes); 233 displayXMLElementArray(_out, namedSets); 234 displayXMLElementArray(_out, roles); 235 displayXMLElementArray(_out, userDefinedFunctions); 236 _out.endTag("Schema"); 237 } 238 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 239 { 240 Schema _cother = (Schema)_other; 241 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 242 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 243 _diff = _diff && displayAttributeDiff("measuresCaption", measuresCaption, _cother.measuresCaption, _out, _indent+1); 244 _diff = _diff && displayAttributeDiff("defaultRole", defaultRole, _cother.defaultRole, _out, _indent+1); 245 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 246 _diff = _diff && displayElementArrayDiff("parameters", parameters, _cother.parameters, _out, _indent+1); 247 _diff = _diff && displayElementArrayDiff("dimensions", dimensions, _cother.dimensions, _out, _indent+1); 248 _diff = _diff && displayElementArrayDiff("cubes", cubes, _cother.cubes, _out, _indent+1); 249 _diff = _diff && displayElementArrayDiff("virtualCubes", virtualCubes, _cother.virtualCubes, _out, _indent+1); 250 _diff = _diff && displayElementArrayDiff("namedSets", namedSets, _cother.namedSets, _out, _indent+1); 251 _diff = _diff && displayElementArrayDiff("roles", roles, _cother.roles, _out, _indent+1); 252 _diff = _diff && displayElementArrayDiff("userDefinedFunctions", userDefinedFunctions, _cother.userDefinedFunctions, _out, _indent+1); 253 return _diff; 254 } 255 // BEGIN pass-through code block --- 256Cube getCube(String cubeName) { 257 for (int i = 0; i < cubes.length; i++) { 258 if (cubes[i].name.equals(cubeName)) { 259 return cubes[i]; 260 } 261 } 262 throw Util.newInternal("Cannot find cube '" + cubeName + "'"); 263 } 264 Dimension getPublicDimension(String dimensionName) { 265 for (int i = 0; i < dimensions.length; i++) { 266 if (dimensions[i].name.equals(dimensionName)) { 267 return dimensions[i]; 268 } 269 } 270 throw Util.newInternal( 271 "Cannot find public dimension '" + dimensionName + "'"); 272 } 273 // END pass-through code block --- 274 } 275 276 /** 277 * A CubeDimension is either a usage of a Dimension ('shared 278 * dimension', in MSOLAP parlance), or a 'private dimension'. 279 */ 280 public static abstract class CubeDimension extends org.eigenbase.xom.ElementDef 281 { 282 public CubeDimension() 283 { 284 } 285 286 public CubeDimension(org.eigenbase.xom.DOMWrapper _def) 287 throws org.eigenbase.xom.XOMException 288 { 289 try { 290 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 291 name = (String)_parser.getAttribute("name", "String", null, null, true); 292 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 293 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 294 description = (String)_parser.getAttribute("description", "String", null, null, false); 295 foreignKey = (String)_parser.getAttribute("foreignKey", "String", null, null, false); 296 highCardinality = (Boolean)_parser.getAttribute("highCardinality", "Boolean", "false", null, false); 297 annotations = (Annotations)_parser.getElement(Annotations.class, false); 298 } catch(org.eigenbase.xom.XOMException _ex) { 299 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 300 } 301 } 302 303 public String name; // required attribute 304 public String caption; // optional attribute 305 public Boolean visible; // attribute default: true 306 public String description; // optional attribute 307 public String foreignKey; // optional attribute 308 public Boolean highCardinality; // attribute default: false 309 310 /** 311 * Contains values of user-defined properties. 312 */ 313 public Annotations annotations; //optional element 314 315 public String getName() 316 { 317 return "CubeDimension"; 318 } 319 320 public void display(java.io.PrintWriter _out, int _indent) 321 { 322 _out.println(getName()); 323 displayAttribute(_out, "name", name, _indent+1); 324 displayAttribute(_out, "caption", caption, _indent+1); 325 displayAttribute(_out, "visible", visible, _indent+1); 326 displayAttribute(_out, "description", description, _indent+1); 327 displayAttribute(_out, "foreignKey", foreignKey, _indent+1); 328 displayAttribute(_out, "highCardinality", highCardinality, _indent+1); 329 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 330 } 331 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 332 { 333 _out.beginTag("CubeDimension", new org.eigenbase.xom.XMLAttrVector() 334 .add("name", name) 335 .add("caption", caption) 336 .add("visible", visible) 337 .add("description", description) 338 .add("foreignKey", foreignKey) 339 .add("highCardinality", highCardinality) 340 ); 341 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 342 _out.endTag("CubeDimension"); 343 } 344 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 345 { 346 CubeDimension _cother = (CubeDimension)_other; 347 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 348 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 349 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 350 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 351 _diff = _diff && displayAttributeDiff("foreignKey", foreignKey, _cother.foreignKey, _out, _indent+1); 352 _diff = _diff && displayAttributeDiff("highCardinality", highCardinality, _cother.highCardinality, _out, _indent+1); 353 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 354 return _diff; 355 } 356 // BEGIN pass-through code block --- 357/** 358 * Looks up the base dimension of this dimension. If this is a 359 * usage of a shared dimension, returns the referenced dimension; 360 * otherwise returns the dimension itself. 361 * 362 * <p>Never returns null; if the dimension cannot be 363 * found, throws an error. 364 * 365 * @param schema Schema, never null 366 * @pre schema != null 367 * @post return != null 368 */ 369 public abstract Dimension getDimension(Schema schema); 370 // END pass-through code block --- 371 } 372 373 /** 374 * Definition of a cube. 375 */ 376 public static class Cube extends org.eigenbase.xom.ElementDef 377 { 378 public Cube() 379 { 380 } 381 382 public Cube(org.eigenbase.xom.DOMWrapper _def) 383 throws org.eigenbase.xom.XOMException 384 { 385 try { 386 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 387 org.eigenbase.xom.NodeDef[] _tempArray; 388 name = (String)_parser.getAttribute("name", "String", null, null, true); 389 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 390 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 391 description = (String)_parser.getAttribute("description", "String", null, null, false); 392 defaultMeasure = (String)_parser.getAttribute("defaultMeasure", "String", null, null, false); 393 cache = (Boolean)_parser.getAttribute("cache", "Boolean", "true", null, false); 394 enabled = (Boolean)_parser.getAttribute("enabled", "Boolean", "true", null, false); 395 annotations = (Annotations)_parser.getElement(Annotations.class, false); 396 fact = (Relation)_parser.getElement(Relation.class, true); 397 _tempArray = _parser.getArray(CubeDimension.class, 0, 0); 398 dimensions = new CubeDimension[_tempArray.length]; 399 for (int _i = 0; _i < dimensions.length; _i++) 400 dimensions[_i] = (CubeDimension)_tempArray[_i]; 401 _tempArray = _parser.getArray(Measure.class, 0, 0); 402 measures = new Measure[_tempArray.length]; 403 for (int _i = 0; _i < measures.length; _i++) 404 measures[_i] = (Measure)_tempArray[_i]; 405 _tempArray = _parser.getArray(CalculatedMember.class, 0, 0); 406 calculatedMembers = new CalculatedMember[_tempArray.length]; 407 for (int _i = 0; _i < calculatedMembers.length; _i++) 408 calculatedMembers[_i] = (CalculatedMember)_tempArray[_i]; 409 _tempArray = _parser.getArray(NamedSet.class, 0, 0); 410 namedSets = new NamedSet[_tempArray.length]; 411 for (int _i = 0; _i < namedSets.length; _i++) 412 namedSets[_i] = (NamedSet)_tempArray[_i]; 413 } catch(org.eigenbase.xom.XOMException _ex) { 414 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 415 } 416 } 417 418 public String name; // required attribute 419 public String caption; // optional attribute 420 public Boolean visible; // attribute default: true 421 public String description; // optional attribute 422 public String defaultMeasure; // optional attribute 423 public Boolean cache; // attribute default: true 424 public Boolean enabled; // attribute default: true 425 426 /** 427 * Contains values of user-defined properties. 428 */ 429 public Annotations annotations; //optional element 430 /** 431 * The fact table is the source of all measures in this cube. If 432 * this is a Table and the schema name is not 433 * present, table name is left unqualified. 434 */ 435 public Relation fact; //required element 436 /** 437 */ 438 public CubeDimension[] dimensions; //optional array 439 /** 440 */ 441 public Measure[] measures; //optional array 442 /** 443 * Calculated members in this cube. 444 */ 445 public CalculatedMember[] calculatedMembers; //optional array 446 /** 447 * Named sets in this cube. 448 */ 449 public NamedSet[] namedSets; //optional array 450 451 public String getName() 452 { 453 return "Cube"; 454 } 455 456 public void display(java.io.PrintWriter _out, int _indent) 457 { 458 _out.println(getName()); 459 displayAttribute(_out, "name", name, _indent+1); 460 displayAttribute(_out, "caption", caption, _indent+1); 461 displayAttribute(_out, "visible", visible, _indent+1); 462 displayAttribute(_out, "description", description, _indent+1); 463 displayAttribute(_out, "defaultMeasure", defaultMeasure, _indent+1); 464 displayAttribute(_out, "cache", cache, _indent+1); 465 displayAttribute(_out, "enabled", enabled, _indent+1); 466 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 467 displayElement(_out, "fact", (org.eigenbase.xom.ElementDef) fact, _indent+1); 468 displayElementArray(_out, "dimensions", dimensions, _indent+1); 469 displayElementArray(_out, "measures", measures, _indent+1); 470 displayElementArray(_out, "calculatedMembers", calculatedMembers, _indent+1); 471 displayElementArray(_out, "namedSets", namedSets, _indent+1); 472 } 473 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 474 { 475 _out.beginTag("Cube", new org.eigenbase.xom.XMLAttrVector() 476 .add("name", name) 477 .add("caption", caption) 478 .add("visible", visible) 479 .add("description", description) 480 .add("defaultMeasure", defaultMeasure) 481 .add("cache", cache) 482 .add("enabled", enabled) 483 ); 484 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 485 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) fact); 486 displayXMLElementArray(_out, dimensions); 487 displayXMLElementArray(_out, measures); 488 displayXMLElementArray(_out, calculatedMembers); 489 displayXMLElementArray(_out, namedSets); 490 _out.endTag("Cube"); 491 } 492 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 493 { 494 Cube _cother = (Cube)_other; 495 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 496 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 497 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 498 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 499 _diff = _diff && displayAttributeDiff("defaultMeasure", defaultMeasure, _cother.defaultMeasure, _out, _indent+1); 500 _diff = _diff && displayAttributeDiff("cache", cache, _cother.cache, _out, _indent+1); 501 _diff = _diff && displayAttributeDiff("enabled", enabled, _cother.enabled, _out, _indent+1); 502 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 503 _diff = _diff && displayElementDiff("fact", fact, _cother.fact, _out, _indent+1); 504 _diff = _diff && displayElementArrayDiff("dimensions", dimensions, _cother.dimensions, _out, _indent+1); 505 _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1); 506 _diff = _diff && displayElementArrayDiff("calculatedMembers", calculatedMembers, _cother.calculatedMembers, _out, _indent+1); 507 _diff = _diff && displayElementArrayDiff("namedSets", namedSets, _cother.namedSets, _out, _indent+1); 508 return _diff; 509 } 510 // BEGIN pass-through code block --- 511public boolean isEnabled() { 512 return enabled.booleanValue(); 513 } 514 Dimension getDimension(Schema xmlSchema, String dimensionName) { 515 for (int i = 0; i < dimensions.length; i++) { 516 if (dimensions[i].name.equals(dimensionName)) { 517 return dimensions[i].getDimension(xmlSchema); 518 } 519 } 520 throw Util.newInternal( 521 "Cannot find dimension '" + dimensionName + "' in cube '" + 522 name + "'"); 523 } 524 public boolean equals(Object o) { 525 return (this == o); 526 } 527 // END pass-through code block --- 528 } 529 530 /** 531 * A VirtualCube is a set of dimensions and 532 * measures gleaned from other cubes. 533 */ 534 public static class VirtualCube extends org.eigenbase.xom.ElementDef 535 { 536 public VirtualCube() 537 { 538 } 539 540 public VirtualCube(org.eigenbase.xom.DOMWrapper _def) 541 throws org.eigenbase.xom.XOMException 542 { 543 try { 544 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 545 org.eigenbase.xom.NodeDef[] _tempArray; 546 enabled = (Boolean)_parser.getAttribute("enabled", "Boolean", "true", null, false); 547 name = (String)_parser.getAttribute("name", "String", null, null, false); 548 defaultMeasure = (String)_parser.getAttribute("defaultMeasure", "String", null, null, false); 549 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 550 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 551 description = (String)_parser.getAttribute("description", "String", null, null, false); 552 annotations = (Annotations)_parser.getElement(Annotations.class, false); 553 cubeUsage = (CubeUsages)_parser.getElement(CubeUsages.class, false); 554 _tempArray = _parser.getArray(VirtualCubeDimension.class, 0, 0); 555 dimensions = new VirtualCubeDimension[_tempArray.length]; 556 for (int _i = 0; _i < dimensions.length; _i++) 557 dimensions[_i] = (VirtualCubeDimension)_tempArray[_i]; 558 _tempArray = _parser.getArray(VirtualCubeMeasure.class, 0, 0); 559 measures = new VirtualCubeMeasure[_tempArray.length]; 560 for (int _i = 0; _i < measures.length; _i++) 561 measures[_i] = (VirtualCubeMeasure)_tempArray[_i]; 562 _tempArray = _parser.getArray(CalculatedMember.class, 0, 0); 563 calculatedMembers = new CalculatedMember[_tempArray.length]; 564 for (int _i = 0; _i < calculatedMembers.length; _i++) 565 calculatedMembers[_i] = (CalculatedMember)_tempArray[_i]; 566 _tempArray = _parser.getArray(NamedSet.class, 0, 0); 567 namedSets = new NamedSet[_tempArray.length]; 568 for (int _i = 0; _i < namedSets.length; _i++) 569 namedSets[_i] = (NamedSet)_tempArray[_i]; 570 } catch(org.eigenbase.xom.XOMException _ex) { 571 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 572 } 573 } 574 575 public Boolean enabled; // attribute default: true 576 public String name; // optional attribute 577 public String defaultMeasure; // optional attribute 578 public String caption; // optional attribute 579 public Boolean visible; // attribute default: true 580 public String description; // optional attribute 581 582 /** 583 * Contains values of user-defined properties. 584 */ 585 public Annotations annotations; //optional element 586 /** 587 */ 588 public CubeUsages cubeUsage; //optional element 589 /** 590 */ 591 public VirtualCubeDimension[] dimensions; //optional array 592 /** 593 */ 594 public VirtualCubeMeasure[] measures; //optional array 595 /** 596 * Calculated members that belong to this virtual cube. 597 * (Calculated members inherited from other cubes should not be 598 * in this list.) 599 */ 600 public CalculatedMember[] calculatedMembers; //optional array 601 /** 602 * Named sets in this cube. 603 */ 604 public NamedSet[] namedSets; //optional array 605 606 public String getName() 607 { 608 return "VirtualCube"; 609 } 610 611 public void display(java.io.PrintWriter _out, int _indent) 612 { 613 _out.println(getName()); 614 displayAttribute(_out, "enabled", enabled, _indent+1); 615 displayAttribute(_out, "name", name, _indent+1); 616 displayAttribute(_out, "defaultMeasure", defaultMeasure, _indent+1); 617 displayAttribute(_out, "caption", caption, _indent+1); 618 displayAttribute(_out, "visible", visible, _indent+1); 619 displayAttribute(_out, "description", description, _indent+1); 620 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 621 displayElement(_out, "cubeUsage", (org.eigenbase.xom.ElementDef) cubeUsage, _indent+1); 622 displayElementArray(_out, "dimensions", dimensions, _indent+1); 623 displayElementArray(_out, "measures", measures, _indent+1); 624 displayElementArray(_out, "calculatedMembers", calculatedMembers, _indent+1); 625 displayElementArray(_out, "namedSets", namedSets, _indent+1); 626 } 627 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 628 { 629 _out.beginTag("VirtualCube", new org.eigenbase.xom.XMLAttrVector() 630 .add("enabled", enabled) 631 .add("name", name) 632 .add("defaultMeasure", defaultMeasure) 633 .add("caption", caption) 634 .add("visible", visible) 635 .add("description", description) 636 ); 637 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 638 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) cubeUsage); 639 displayXMLElementArray(_out, dimensions); 640 displayXMLElementArray(_out, measures); 641 displayXMLElementArray(_out, calculatedMembers); 642 displayXMLElementArray(_out, namedSets); 643 _out.endTag("VirtualCube"); 644 } 645 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 646 { 647 VirtualCube _cother = (VirtualCube)_other; 648 boolean _diff = displayAttributeDiff("enabled", enabled, _cother.enabled, _out, _indent+1); 649 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 650 _diff = _diff && displayAttributeDiff("defaultMeasure", defaultMeasure, _cother.defaultMeasure, _out, _indent+1); 651 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 652 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 653 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 654 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 655 _diff = _diff && displayElementDiff("cubeUsage", cubeUsage, _cother.cubeUsage, _out, _indent+1); 656 _diff = _diff && displayElementArrayDiff("dimensions", dimensions, _cother.dimensions, _out, _indent+1); 657 _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1); 658 _diff = _diff && displayElementArrayDiff("calculatedMembers", calculatedMembers, _cother.calculatedMembers, _out, _indent+1); 659 _diff = _diff && displayElementArrayDiff("namedSets", namedSets, _cother.namedSets, _out, _indent+1); 660 return _diff; 661 } 662 // BEGIN pass-through code block --- 663public boolean isEnabled() { 664 return enabled.booleanValue(); 665 } 666 // END pass-through code block --- 667 } 668 669 /** 670 * List of base cubes used by the virtual cube. 671 */ 672 public static class CubeUsages extends org.eigenbase.xom.ElementDef 673 { 674 public CubeUsages() 675 { 676 } 677 678 public CubeUsages(org.eigenbase.xom.DOMWrapper _def) 679 throws org.eigenbase.xom.XOMException 680 { 681 try { 682 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 683 org.eigenbase.xom.NodeDef[] _tempArray; 684 _tempArray = _parser.getArray(CubeUsage.class, 1, 0); 685 cubeUsages = new CubeUsage[_tempArray.length]; 686 for (int _i = 0; _i < cubeUsages.length; _i++) 687 cubeUsages[_i] = (CubeUsage)_tempArray[_i]; 688 } catch(org.eigenbase.xom.XOMException _ex) { 689 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 690 } 691 } 692 693 694 /** 695 */ 696 public CubeUsage[] cubeUsages; //min 1 697 698 public String getName() 699 { 700 return "CubeUsages"; 701 } 702 703 public void display(java.io.PrintWriter _out, int _indent) 704 { 705 _out.println(getName()); 706 displayElementArray(_out, "cubeUsages", cubeUsages, _indent+1); 707 } 708 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 709 { 710 _out.beginTag("CubeUsages", new org.eigenbase.xom.XMLAttrVector() 711 ); 712 displayXMLElementArray(_out, cubeUsages); 713 _out.endTag("CubeUsages"); 714 } 715 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 716 { 717 CubeUsages _cother = (CubeUsages)_other; 718 boolean _diff = displayElementArrayDiff("cubeUsages", cubeUsages, _cother.cubeUsages, _out, _indent+1); 719 return _diff; 720 } 721 } 722 723 public static class CubeUsage extends org.eigenbase.xom.ElementDef 724 { 725 public CubeUsage() 726 { 727 } 728 729 public CubeUsage(org.eigenbase.xom.DOMWrapper _def) 730 throws org.eigenbase.xom.XOMException 731 { 732 try { 733 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 734 cubeName = (String)_parser.getAttribute("cubeName", "String", null, null, true); 735 ignoreUnrelatedDimensions = (Boolean)_parser.getAttribute("ignoreUnrelatedDimensions", "Boolean", "false", null, false); 736 } catch(org.eigenbase.xom.XOMException _ex) { 737 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 738 } 739 } 740 741 public String cubeName; // required attribute 742 public Boolean ignoreUnrelatedDimensions; // attribute default: false 743 744 745 public String getName() 746 { 747 return "CubeUsage"; 748 } 749 750 public void display(java.io.PrintWriter _out, int _indent) 751 { 752 _out.println(getName()); 753 displayAttribute(_out, "cubeName", cubeName, _indent+1); 754 displayAttribute(_out, "ignoreUnrelatedDimensions", ignoreUnrelatedDimensions, _indent+1); 755 } 756 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 757 { 758 _out.beginTag("CubeUsage", new org.eigenbase.xom.XMLAttrVector() 759 .add("cubeName", cubeName) 760 .add("ignoreUnrelatedDimensions", ignoreUnrelatedDimensions) 761 ); 762 _out.endTag("CubeUsage"); 763 } 764 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 765 { 766 CubeUsage _cother = (CubeUsage)_other; 767 boolean _diff = displayAttributeDiff("cubeName", cubeName, _cother.cubeName, _out, _indent+1); 768 _diff = _diff && displayAttributeDiff("ignoreUnrelatedDimensions", ignoreUnrelatedDimensions, _cother.ignoreUnrelatedDimensions, _out, _indent+1); 769 return _diff; 770 } 771 } 772 773 /** 774 * A VirtualCubeDimension is a usage of a Dimension in a VirtualCube. 775 */ 776 public static class VirtualCubeDimension extends CubeDimension 777 { 778 public VirtualCubeDimension() 779 { 780 } 781 782 public VirtualCubeDimension(org.eigenbase.xom.DOMWrapper _def) 783 throws org.eigenbase.xom.XOMException 784 { 785 try { 786 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 787 cubeName = (String)_parser.getAttribute("cubeName", "String", null, null, false); 788 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 789 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 790 description = (String)_parser.getAttribute("description", "String", null, null, false); 791 foreignKey = (String)_parser.getAttribute("foreignKey", "String", null, null, false); 792 highCardinality = (Boolean)_parser.getAttribute("highCardinality", "Boolean", "false", null, false); 793 name = (String)_parser.getAttribute("name", "String", null, null, false); 794 annotations = (Annotations)_parser.getElement(Annotations.class, false); 795 } catch(org.eigenbase.xom.XOMException _ex) { 796 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 797 } 798 } 799 800 public String cubeName; // optional attribute 801 802 803 public String getName() 804 { 805 return "VirtualCubeDimension"; 806 } 807 808 public void display(java.io.PrintWriter _out, int _indent) 809 { 810 _out.println(getName()); 811 displayAttribute(_out, "cubeName", cubeName, _indent+1); 812 displayAttribute(_out, "caption", caption, _indent+1); 813 displayAttribute(_out, "visible", visible, _indent+1); 814 displayAttribute(_out, "description", description, _indent+1); 815 displayAttribute(_out, "foreignKey", foreignKey, _indent+1); 816 displayAttribute(_out, "highCardinality", highCardinality, _indent+1); 817 displayAttribute(_out, "name", name, _indent+1); 818 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 819 } 820 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 821 { 822 _out.beginTag("VirtualCubeDimension", new org.eigenbase.xom.XMLAttrVector() 823 .add("cubeName", cubeName) 824 .add("caption", caption) 825 .add("visible", visible) 826 .add("description", description) 827 .add("foreignKey", foreignKey) 828 .add("highCardinality", highCardinality) 829 .add("name", name) 830 ); 831 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 832 _out.endTag("VirtualCubeDimension"); 833 } 834 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 835 { 836 VirtualCubeDimension _cother = (VirtualCubeDimension)_other; 837 boolean _diff = displayAttributeDiff("cubeName", cubeName, _cother.cubeName, _out, _indent+1); 838 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 839 return _diff; 840 } 841 // BEGIN pass-through code block --- 842// implement CubeDimension 843 public Dimension getDimension(Schema schema) { 844 Util.assertPrecondition(schema != null, "schema != null"); 845 if (cubeName == null) { 846 return schema.getPublicDimension(name); 847 } else { 848 Cube cube = schema.getCube(cubeName); 849 return cube.getDimension(schema, name); 850 } 851 } 852 // END pass-through code block --- 853 } 854 855 /** 856 * A VirtualCubeMeasure is a usage of a Measure in a VirtualCube. 857 */ 858 public static class VirtualCubeMeasure extends org.eigenbase.xom.ElementDef 859 { 860 public VirtualCubeMeasure() 861 { 862 } 863 864 public VirtualCubeMeasure(org.eigenbase.xom.DOMWrapper _def) 865 throws org.eigenbase.xom.XOMException 866 { 867 try { 868 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 869 cubeName = (String)_parser.getAttribute("cubeName", "String", null, null, false); 870 name = (String)_parser.getAttribute("name", "String", null, null, false); 871 visible = (Boolean)_parser.getAttribute("visible", "Boolean", null, null, false); 872 annotations = (Annotations)_parser.getElement(Annotations.class, false); 873 } catch(org.eigenbase.xom.XOMException _ex) { 874 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 875 } 876 } 877 878 public String cubeName; // optional attribute 879 public String name; // optional attribute 880 public Boolean visible; // optional attribute 881 882 /** 883 * Contains values of user-defined properties. 884 */ 885 public Annotations annotations; //optional element 886 887 public String getName() 888 { 889 return "VirtualCubeMeasure"; 890 } 891 892 public void display(java.io.PrintWriter _out, int _indent) 893 { 894 _out.println(getName()); 895 displayAttribute(_out, "cubeName", cubeName, _indent+1); 896 displayAttribute(_out, "name", name, _indent+1); 897 displayAttribute(_out, "visible", visible, _indent+1); 898 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 899 } 900 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 901 { 902 _out.beginTag("VirtualCubeMeasure", new org.eigenbase.xom.XMLAttrVector() 903 .add("cubeName", cubeName) 904 .add("name", name) 905 .add("visible", visible) 906 ); 907 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 908 _out.endTag("VirtualCubeMeasure"); 909 } 910 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 911 { 912 VirtualCubeMeasure _cother = (VirtualCubeMeasure)_other; 913 boolean _diff = displayAttributeDiff("cubeName", cubeName, _cother.cubeName, _out, _indent+1); 914 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 915 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 916 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 917 return _diff; 918 } 919 } 920 921 /** 922 * A DimensionUsage is usage of a shared 923 * Dimension within the context of a cube. 924 */ 925 public static class DimensionUsage extends CubeDimension 926 { 927 public DimensionUsage() 928 { 929 } 930 931 public DimensionUsage(org.eigenbase.xom.DOMWrapper _def) 932 throws org.eigenbase.xom.XOMException 933 { 934 try { 935 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 936 source = (String)_parser.getAttribute("source", "String", null, null, true); 937 level = (String)_parser.getAttribute("level", "String", null, null, false); 938 usagePrefix = (String)_parser.getAttribute("usagePrefix", "String", null, null, false); 939 name = (String)_parser.getAttribute("name", "String", null, null, true); 940 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 941 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 942 description = (String)_parser.getAttribute("description", "String", null, null, false); 943 foreignKey = (String)_parser.getAttribute("foreignKey", "String", null, null, false); 944 highCardinality = (Boolean)_parser.getAttribute("highCardinality", "Boolean", "false", null, false); 945 annotations = (Annotations)_parser.getElement(Annotations.class, false); 946 } catch(org.eigenbase.xom.XOMException _ex) { 947 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 948 } 949 } 950 951 public String source; // required attribute 952 public String level; // optional attribute 953 public String usagePrefix; // optional attribute 954 955 956 public String getName() 957 { 958 return "DimensionUsage"; 959 } 960 961 public void display(java.io.PrintWriter _out, int _indent) 962 { 963 _out.println(getName()); 964 displayAttribute(_out, "source", source, _indent+1); 965 displayAttribute(_out, "level", level, _indent+1); 966 displayAttribute(_out, "usagePrefix", usagePrefix, _indent+1); 967 displayAttribute(_out, "name", name, _indent+1); 968 displayAttribute(_out, "caption", caption, _indent+1); 969 displayAttribute(_out, "visible", visible, _indent+1); 970 displayAttribute(_out, "description", description, _indent+1); 971 displayAttribute(_out, "foreignKey", foreignKey, _indent+1); 972 displayAttribute(_out, "highCardinality", highCardinality, _indent+1); 973 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 974 } 975 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 976 { 977 _out.beginTag("DimensionUsage", new org.eigenbase.xom.XMLAttrVector() 978 .add("source", source) 979 .add("level", level) 980 .add("usagePrefix", usagePrefix) 981 .add("name", name) 982 .add("caption", caption) 983 .add("visible", visible) 984 .add("description", description) 985 .add("foreignKey", foreignKey) 986 .add("highCardinality", highCardinality) 987 ); 988 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 989 _out.endTag("DimensionUsage"); 990 } 991 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 992 { 993 DimensionUsage _cother = (DimensionUsage)_other; 994 boolean _diff = displayAttributeDiff("source", source, _cother.source, _out, _indent+1); 995 _diff = _diff && displayAttributeDiff("level", level, _cother.level, _out, _indent+1); 996 _diff = _diff && displayAttributeDiff("usagePrefix", usagePrefix, _cother.usagePrefix, _out, _indent+1); 997 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 998 return _diff; 999 } 1000 // BEGIN pass-through code block --- 1001// implement CubeDimension 1002 public Dimension getDimension(Schema schema) { 1003 Util.assertPrecondition(schema != null, "schema != null"); 1004 for (int i = 0; i < schema.dimensions.length; i++) { 1005 if (schema.dimensions[i].name.equals(source)) { 1006 return schema.dimensions[i]; 1007 } 1008 } 1009 throw Util.newInternal( 1010 "Cannot find shared dimension '" + source + "'"); 1011 } 1012 // END pass-through code block --- 1013 } 1014 1015 /** 1016 * A Dimension is a collection of hierarchies. There are 1017 * two kinds: a public dimension belongs to a 1018 * Schema, and be used by several cubes; a 1019 * private dimension belongs to a 1020 * Cube. The foreignKey field is only 1021 * applicable to private dimensions. 1022 */ 1023 public static class Dimension extends CubeDimension 1024 { 1025 public Dimension() 1026 { 1027 } 1028 1029 public Dimension(org.eigenbase.xom.DOMWrapper _def) 1030 throws org.eigenbase.xom.XOMException 1031 { 1032 try { 1033 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1034 org.eigenbase.xom.NodeDef[] _tempArray; 1035 type = (String)_parser.getAttribute("type", "String", null, _type_values, false); 1036 usagePrefix = (String)_parser.getAttribute("usagePrefix", "String", null, null, false); 1037 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 1038 foreignKey = (String)_parser.getAttribute("foreignKey", "String", null, null, false); 1039 highCardinality = (Boolean)_parser.getAttribute("highCardinality", "Boolean", "false", null, false); 1040 name = (String)_parser.getAttribute("name", "String", null, null, true); 1041 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1042 description = (String)_parser.getAttribute("description", "String", null, null, false); 1043 annotations = (Annotations)_parser.getElement(Annotations.class, false); 1044 _tempArray = _parser.getArray(Hierarchy.class, 0, 0); 1045 hierarchies = new Hierarchy[_tempArray.length]; 1046 for (int _i = 0; _i < hierarchies.length; _i++) 1047 hierarchies[_i] = (Hierarchy)_tempArray[_i]; 1048 } catch(org.eigenbase.xom.XOMException _ex) { 1049 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1050 } 1051 } 1052 1053 /** Allowable values for {@link #type}. */ 1054 public static final String[] _type_values = {"StandardDimension", "TimeDimension"}; 1055 public String type; // optional attribute 1056 public String usagePrefix; // optional attribute 1057 1058 /** 1059 */ 1060 public Hierarchy[] hierarchies; //optional array 1061 1062 public String getName() 1063 { 1064 return "Dimension"; 1065 } 1066 1067 public void display(java.io.PrintWriter _out, int _indent) 1068 { 1069 _out.println(getName()); 1070 displayAttribute(_out, "type", type, _indent+1); 1071 displayAttribute(_out, "usagePrefix", usagePrefix, _indent+1); 1072 displayAttribute(_out, "visible", visible, _indent+1); 1073 displayAttribute(_out, "foreignKey", foreignKey, _indent+1); 1074 displayAttribute(_out, "highCardinality", highCardinality, _indent+1); 1075 displayAttribute(_out, "name", name, _indent+1); 1076 displayAttribute(_out, "caption", caption, _indent+1); 1077 displayAttribute(_out, "description", description, _indent+1); 1078 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 1079 displayElementArray(_out, "hierarchies", hierarchies, _indent+1); 1080 } 1081 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1082 { 1083 _out.beginTag("Dimension", new org.eigenbase.xom.XMLAttrVector() 1084 .add("type", type) 1085 .add("usagePrefix", usagePrefix) 1086 .add("visible", visible) 1087 .add("foreignKey", foreignKey) 1088 .add("highCardinality", highCardinality) 1089 .add("name", name) 1090 .add("caption", caption) 1091 .add("description", description) 1092 ); 1093 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 1094 displayXMLElementArray(_out, hierarchies); 1095 _out.endTag("Dimension"); 1096 } 1097 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1098 { 1099 Dimension _cother = (Dimension)_other; 1100 boolean _diff = displayAttributeDiff("type", type, _cother.type, _out, _indent+1); 1101 _diff = _diff && displayAttributeDiff("usagePrefix", usagePrefix, _cother.usagePrefix, _out, _indent+1); 1102 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 1103 _diff = _diff && displayElementArrayDiff("hierarchies", hierarchies, _cother.hierarchies, _out, _indent+1); 1104 return _diff; 1105 } 1106 // BEGIN pass-through code block --- 1107// implement CubeDimension 1108 public Dimension getDimension(Schema schema) { 1109 Util.assertPrecondition(schema != null, "schema != null"); 1110 return this; 1111 } 1112 1113 // Return the dimension's enumerated type. 1114 public DimensionType getDimensionType() { 1115 if (type == null) { 1116 return null; //DimensionType.StandardDimension; 1117 } else { 1118 return DimensionType.valueOf(type); 1119 } 1120 } 1121 // END pass-through code block --- 1122 } 1123 1124 /** 1125 * Defines a hierarchy. 1126 * You must specify at most one <Relation> 1127 * or memberReaderClass. If you specify none, the 1128 * hierarchy is assumed to come from the same fact table of the 1129 * current cube. 1130 */ 1131 public static class Hierarchy extends org.eigenbase.xom.ElementDef 1132 { 1133 public Hierarchy() 1134 { 1135 } 1136 1137 public Hierarchy(org.eigenbase.xom.DOMWrapper _def) 1138 throws org.eigenbase.xom.XOMException 1139 { 1140 try { 1141 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1142 org.eigenbase.xom.NodeDef[] _tempArray; 1143 name = (String)_parser.getAttribute("name", "String", null, null, false); 1144 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 1145 hasAll = (Boolean)_parser.getAttribute("hasAll", "Boolean", null, null, true); 1146 allMemberName = (String)_parser.getAttribute("allMemberName", "String", null, null, false); 1147 allMemberCaption = (String)_parser.getAttribute("allMemberCaption", "String", null, null, false); 1148 allLevelName = (String)_parser.getAttribute("allLevelName", "String", null, null, false); 1149 primaryKey = (String)_parser.getAttribute("primaryKey", "String", null, null, false); 1150 primaryKeyTable = (String)_parser.getAttribute("primaryKeyTable", "String", null, null, false); 1151 defaultMember = (String)_parser.getAttribute("defaultMember", "String", null, null, false); 1152 memberReaderClass = (String)_parser.getAttribute("memberReaderClass", "String", null, null, false); 1153 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1154 description = (String)_parser.getAttribute("description", "String", null, null, false); 1155 uniqueKeyLevelName = (String)_parser.getAttribute("uniqueKeyLevelName", "String", null, null, false); 1156 annotations = (Annotations)_parser.getElement(Annotations.class, false); 1157 relation = (RelationOrJoin)_parser.getElement(RelationOrJoin.class, false); 1158 _tempArray = _parser.getArray(Level.class, 0, 0); 1159 levels = new Level[_tempArray.length]; 1160 for (int _i = 0; _i < levels.length; _i++) 1161 levels[_i] = (Level)_tempArray[_i]; 1162 _tempArray = _parser.getArray(MemberReaderParameter.class, 0, 0); 1163 memberReaderParameters = new MemberReaderParameter[_tempArray.length]; 1164 for (int _i = 0; _i < memberReaderParameters.length; _i++) 1165 memberReaderParameters[_i] = (MemberReaderParameter)_tempArray[_i]; 1166 } catch(org.eigenbase.xom.XOMException _ex) { 1167 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1168 } 1169 } 1170 1171 public String name; // optional attribute 1172 public Boolean visible; // attribute default: true 1173 public Boolean hasAll; // required attribute 1174 public String allMemberName; // optional attribute 1175 public String allMemberCaption; // optional attribute 1176 public String allLevelName; // optional attribute 1177 public String primaryKey; // optional attribute 1178 public String primaryKeyTable; // optional attribute 1179 public String defaultMember; // optional attribute 1180 public String memberReaderClass; // optional attribute 1181 public String caption; // optional attribute 1182 public String description; // optional attribute 1183 public String uniqueKeyLevelName; // optional attribute 1184 1185 /** 1186 * Contains values of user-defined properties. 1187 */ 1188 public Annotations annotations; //optional element 1189 /** 1190 * The {@link MondrianGuiDef.Table table}, 1191 * {@link MondrianGuiDef.Join set of tables}, 1192 * {@link MondrianGuiDef.View SQL statement}, or 1193 * {@link MondrianGuiDef.InlineTable inline table} 1194 * which populates this hierarchy. 1195 */ 1196 public RelationOrJoin relation; //optional element 1197 /** 1198 */ 1199 public Level[] levels; //optional array 1200 public MemberReaderParameter[] memberReaderParameters; //optional array 1201 1202 public String getName() 1203 { 1204 return "Hierarchy"; 1205 } 1206 1207 public void display(java.io.PrintWriter _out, int _indent) 1208 { 1209 _out.println(getName()); 1210 displayAttribute(_out, "name", name, _indent+1); 1211 displayAttribute(_out, "visible", visible, _indent+1); 1212 displayAttribute(_out, "hasAll", hasAll, _indent+1); 1213 displayAttribute(_out, "allMemberName", allMemberName, _indent+1); 1214 displayAttribute(_out, "allMemberCaption", allMemberCaption, _indent+1); 1215 displayAttribute(_out, "allLevelName", allLevelName, _indent+1); 1216 displayAttribute(_out, "primaryKey", primaryKey, _indent+1); 1217 displayAttribute(_out, "primaryKeyTable", primaryKeyTable, _indent+1); 1218 displayAttribute(_out, "defaultMember", defaultMember, _indent+1); 1219 displayAttribute(_out, "memberReaderClass", memberReaderClass, _indent+1); 1220 displayAttribute(_out, "caption", caption, _indent+1); 1221 displayAttribute(_out, "description", description, _indent+1); 1222 displayAttribute(_out, "uniqueKeyLevelName", uniqueKeyLevelName, _indent+1); 1223 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 1224 displayElement(_out, "relation", (org.eigenbase.xom.ElementDef) relation, _indent+1); 1225 displayElementArray(_out, "levels", levels, _indent+1); 1226 displayElementArray(_out, "memberReaderParameters", memberReaderParameters, _indent+1); 1227 } 1228 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1229 { 1230 _out.beginTag("Hierarchy", new org.eigenbase.xom.XMLAttrVector() 1231 .add("name", name) 1232 .add("visible", visible) 1233 .add("hasAll", hasAll) 1234 .add("allMemberName", allMemberName) 1235 .add("allMemberCaption", allMemberCaption) 1236 .add("allLevelName", allLevelName) 1237 .add("primaryKey", primaryKey) 1238 .add("primaryKeyTable", primaryKeyTable) 1239 .add("defaultMember", defaultMember) 1240 .add("memberReaderClass", memberReaderClass) 1241 .add("caption", caption) 1242 .add("description", description) 1243 .add("uniqueKeyLevelName", uniqueKeyLevelName) 1244 ); 1245 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 1246 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) relation); 1247 displayXMLElementArray(_out, levels); 1248 displayXMLElementArray(_out, memberReaderParameters); 1249 _out.endTag("Hierarchy"); 1250 } 1251 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1252 { 1253 Hierarchy _cother = (Hierarchy)_other; 1254 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 1255 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 1256 _diff = _diff && displayAttributeDiff("hasAll", hasAll, _cother.hasAll, _out, _indent+1); 1257 _diff = _diff && displayAttributeDiff("allMemberName", allMemberName, _cother.allMemberName, _out, _indent+1); 1258 _diff = _diff && displayAttributeDiff("allMemberCaption", allMemberCaption, _cother.allMemberCaption, _out, _indent+1); 1259 _diff = _diff && displayAttributeDiff("allLevelName", allLevelName, _cother.allLevelName, _out, _indent+1); 1260 _diff = _diff && displayAttributeDiff("primaryKey", primaryKey, _cother.primaryKey, _out, _indent+1); 1261 _diff = _diff && displayAttributeDiff("primaryKeyTable", primaryKeyTable, _cother.primaryKeyTable, _out, _indent+1); 1262 _diff = _diff && displayAttributeDiff("defaultMember", defaultMember, _cother.defaultMember, _out, _indent+1); 1263 _diff = _diff && displayAttributeDiff("memberReaderClass", memberReaderClass, _cother.memberReaderClass, _out, _indent+1); 1264 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 1265 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 1266 _diff = _diff && displayAttributeDiff("uniqueKeyLevelName", uniqueKeyLevelName, _cother.uniqueKeyLevelName, _out, _indent+1); 1267 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 1268 _diff = _diff && displayElementDiff("relation", relation, _cother.relation, _out, _indent+1); 1269 _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1); 1270 _diff = _diff && displayElementArrayDiff("memberReaderParameters", memberReaderParameters, _cother.memberReaderParameters, _out, _indent+1); 1271 return _diff; 1272 } 1273 // BEGIN pass-through code block --- 1274/* implement equals required to handle cases where two different 1275 hierarchy objects have equal contents. 1276 Resolves problem : of Hierarchy tree disappears when expanded 1277 if there are two (or more) exactly similar Hierarchy objects 1278 within a dimension. We can say two hierarchy objects are different 1279 if their references are different. 1280 */ 1281 public boolean equals(Object o) { 1282 return (this == o); 1283 } 1284 // END pass-through code block --- 1285 } 1286 1287 public static class Level extends org.eigenbase.xom.ElementDef 1288 { 1289 public Level() 1290 { 1291 } 1292 1293 public Level(org.eigenbase.xom.DOMWrapper _def) 1294 throws org.eigenbase.xom.XOMException 1295 { 1296 try { 1297 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1298 org.eigenbase.xom.NodeDef[] _tempArray; 1299 approxRowCount = (String)_parser.getAttribute("approxRowCount", "String", null, null, false); 1300 name = (String)_parser.getAttribute("name", "String", null, null, true); 1301 visible = (Boolean)_parser.getAttribute("visible", "Boolean", "true", null, false); 1302 table = (String)_parser.getAttribute("table", "String", null, null, false); 1303 column = (String)_parser.getAttribute("column", "String", null, null, false); 1304 nameColumn = (String)_parser.getAttribute("nameColumn", "String", null, null, false); 1305 ordinalColumn = (String)_parser.getAttribute("ordinalColumn", "String", null, null, false); 1306 parentColumn = (String)_parser.getAttribute("parentColumn", "String", null, null, false); 1307 nullParentValue = (String)_parser.getAttribute("nullParentValue", "String", null, null, false); 1308 type = (String)_parser.getAttribute("type", "String", "String", _type_values, false); 1309 internalType = (String)_parser.getAttribute("internalType", "String", null, _internalType_values, false); 1310 uniqueMembers = (Boolean)_parser.getAttribute("uniqueMembers", "Boolean", "false", null, false); 1311 levelType = (String)_parser.getAttribute("levelType", "String", "Regular", _levelType_values, false); 1312 hideMemberIf = (String)_parser.getAttribute("hideMemberIf", "String", "Never", _hideMemberIf_values, false); 1313 formatter = (String)_parser.getAttribute("formatter", "String", null, null, false); 1314 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1315 description = (String)_parser.getAttribute("description", "String", null, null, false); 1316 captionColumn = (String)_parser.getAttribute("captionColumn", "String", null, null, false); 1317 annotations = (Annotations)_parser.getElement(Annotations.class, false); 1318 keyExp = (KeyExpression)_parser.getElement(KeyExpression.class, false); 1319 nameExp = (NameExpression)_parser.getElement(NameExpression.class, false); 1320 captionExp = (CaptionExpression)_parser.getElement(CaptionExpression.class, false); 1321 ordinalExp = (OrdinalExpression)_parser.getElement(OrdinalExpression.class, false); 1322 parentExp = (ParentExpression)_parser.getElement(ParentExpression.class, false); 1323 memberFormatter = (MemberFormatter)_parser.getElement(MemberFormatter.class, false); 1324 closure = (Closure)_parser.getElement(Closure.class, false); 1325 _tempArray = _parser.getArray(Property.class, 0, 0); 1326 properties = new Property[_tempArray.length]; 1327 for (int _i = 0; _i < properties.length; _i++) 1328 properties[_i] = (Property)_tempArray[_i]; 1329 } catch(org.eigenbase.xom.XOMException _ex) { 1330 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1331 } 1332 } 1333 1334 public String approxRowCount; // optional attribute 1335 public String name; // required attribute 1336 public Boolean visible; // attribute default: true 1337 public String table; // optional attribute 1338 public String column; // optional attribute 1339 public String nameColumn; // optional attribute 1340 public String ordinalColumn; // optional attribute 1341 public String parentColumn; // optional attribute 1342 public String nullParentValue; // optional attribute 1343 /** Allowable values for {@link #type}. */ 1344 public static final String[] _type_values = {"String", "Numeric", "Integer", "Boolean", "Date", "Time", "Timestamp"}; 1345 public String type; // attribute default: String 1346 /** Allowable values for {@link #internalType}. */ 1347 public static final String[] _internalType_values = {"int", "long", "Object", "String"}; 1348 public String internalType; // optional attribute 1349 public Boolean uniqueMembers; // attribute default: false 1350 /** Allowable values for {@link #levelType}. */ 1351 public static final String[] _levelType_values = {"Regular", "TimeYears", "TimeHalfYears", "TimeHalfYear", "TimeQuarters", "TimeMonths", "TimeWeeks", "TimeDays", "TimeHours", "TimeMinutes", "TimeSeconds", "TimeUndefined"}; 1352 public String levelType; // attribute default: Regular 1353 /** Allowable values for {@link #hideMemberIf}. */ 1354 public static final String[] _hideMemberIf_values = {"Never", "IfBlankName", "IfParentsName"}; 1355 public String hideMemberIf; // attribute default: Never 1356 public String formatter; // optional attribute 1357 public String caption; // optional attribute 1358 public String description; // optional attribute 1359 public String captionColumn; // optional attribute 1360 1361 /** 1362 * Contains values of user-defined properties. 1363 */ 1364 public Annotations annotations; //optional element 1365 /** 1366 * The SQL expression used to populate this level's key. 1367 */ 1368 public KeyExpression keyExp; //optional element 1369 /** 1370 * The SQL expression used to populate this level's name. If not 1371 * specified, the level's key is used. 1372 */ 1373 public NameExpression nameExp; //optional element 1374 /** 1375 * The SQL expression used to populate this level's caption. If not 1376 * specified, the level's name is used. 1377 */ 1378 public CaptionExpression captionExp; //optional element 1379 /** 1380 * The SQL expression used to populate this level's ordinal. 1381 */ 1382 public OrdinalExpression ordinalExp; //optional element 1383 /** 1384 * The SQL expression used to join to the parent member in a 1385 * parent-child hierarchy. 1386 */ 1387 public ParentExpression parentExp; //optional element 1388 /** 1389 * Member formatter. 1390 */ 1391 public MemberFormatter memberFormatter; //optional element 1392 public Closure closure; //optional element 1393 public Property[] properties; //optional array 1394 1395 public String getName() 1396 { 1397 return "Level"; 1398 } 1399 1400 public void display(java.io.PrintWriter _out, int _indent) 1401 { 1402 _out.println(getName()); 1403 displayAttribute(_out, "approxRowCount", approxRowCount, _indent+1); 1404 displayAttribute(_out, "name", name, _indent+1); 1405 displayAttribute(_out, "visible", visible, _indent+1); 1406 displayAttribute(_out, "table", table, _indent+1); 1407 displayAttribute(_out, "column", column, _indent+1); 1408 displayAttribute(_out, "nameColumn", nameColumn, _indent+1); 1409 displayAttribute(_out, "ordinalColumn", ordinalColumn, _indent+1); 1410 displayAttribute(_out, "parentColumn", parentColumn, _indent+1); 1411 displayAttribute(_out, "nullParentValue", nullParentValue, _indent+1); 1412 displayAttribute(_out, "type", type, _indent+1); 1413 displayAttribute(_out, "internalType", internalType, _indent+1); 1414 displayAttribute(_out, "uniqueMembers", uniqueMembers, _indent+1); 1415 displayAttribute(_out, "levelType", levelType, _indent+1); 1416 displayAttribute(_out, "hideMemberIf", hideMemberIf, _indent+1); 1417 displayAttribute(_out, "formatter", formatter, _indent+1); 1418 displayAttribute(_out, "caption", caption, _indent+1); 1419 displayAttribute(_out, "description", description, _indent+1); 1420 displayAttribute(_out, "captionColumn", captionColumn, _indent+1); 1421 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 1422 displayElement(_out, "keyExp", (org.eigenbase.xom.ElementDef) keyExp, _indent+1); 1423 displayElement(_out, "nameExp", (org.eigenbase.xom.ElementDef) nameExp, _indent+1); 1424 displayElement(_out, "captionExp", (org.eigenbase.xom.ElementDef) captionExp, _indent+1); 1425 displayElement(_out, "ordinalExp", (org.eigenbase.xom.ElementDef) ordinalExp, _indent+1); 1426 displayElement(_out, "parentExp", (org.eigenbase.xom.ElementDef) parentExp, _indent+1); 1427 displayElement(_out, "memberFormatter", (org.eigenbase.xom.ElementDef) memberFormatter, _indent+1); 1428 displayElement(_out, "closure", (org.eigenbase.xom.ElementDef) closure, _indent+1); 1429 displayElementArray(_out, "properties", properties, _indent+1); 1430 } 1431 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1432 { 1433 _out.beginTag("Level", new org.eigenbase.xom.XMLAttrVector() 1434 .add("approxRowCount", approxRowCount) 1435 .add("name", name) 1436 .add("visible", visible) 1437 .add("table", table) 1438 .add("column", column) 1439 .add("nameColumn", nameColumn) 1440 .add("ordinalColumn", ordinalColumn) 1441 .add("parentColumn", parentColumn) 1442 .add("nullParentValue", nullParentValue) 1443 .add("type", type) 1444 .add("internalType", internalType) 1445 .add("uniqueMembers", uniqueMembers) 1446 .add("levelType", levelType) 1447 .add("hideMemberIf", hideMemberIf) 1448 .add("formatter", formatter) 1449 .add("caption", caption) 1450 .add("description", description) 1451 .add("captionColumn", captionColumn) 1452 ); 1453 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 1454 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) keyExp); 1455 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) nameExp); 1456 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) captionExp); 1457 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) ordinalExp); 1458 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) parentExp); 1459 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) memberFormatter); 1460 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) closure); 1461 displayXMLElementArray(_out, properties); 1462 _out.endTag("Level"); 1463 } 1464 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1465 { 1466 Level _cother = (Level)_other; 1467 boolean _diff = displayAttributeDiff("approxRowCount", approxRowCount, _cother.approxRowCount, _out, _indent+1); 1468 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 1469 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 1470 _diff = _diff && displayAttributeDiff("table", table, _cother.table, _out, _indent+1); 1471 _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 1472 _diff = _diff && displayAttributeDiff("nameColumn", nameColumn, _cother.nameColumn, _out, _indent+1); 1473 _diff = _diff && displayAttributeDiff("ordinalColumn", ordinalColumn, _cother.ordinalColumn, _out, _indent+1); 1474 _diff = _diff && displayAttributeDiff("parentColumn", parentColumn, _cother.parentColumn, _out, _indent+1); 1475 _diff = _diff && displayAttributeDiff("nullParentValue", nullParentValue, _cother.nullParentValue, _out, _indent+1); 1476 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1); 1477 _diff = _diff && displayAttributeDiff("internalType", internalType, _cother.internalType, _out, _indent+1); 1478 _diff = _diff && displayAttributeDiff("uniqueMembers", uniqueMembers, _cother.uniqueMembers, _out, _indent+1); 1479 _diff = _diff && displayAttributeDiff("levelType", levelType, _cother.levelType, _out, _indent+1); 1480 _diff = _diff && displayAttributeDiff("hideMemberIf", hideMemberIf, _cother.hideMemberIf, _out, _indent+1); 1481 _diff = _diff && displayAttributeDiff("formatter", formatter, _cother.formatter, _out, _indent+1); 1482 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 1483 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 1484 _diff = _diff && displayAttributeDiff("captionColumn", captionColumn, _cother.captionColumn, _out, _indent+1); 1485 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 1486 _diff = _diff && displayElementDiff("keyExp", keyExp, _cother.keyExp, _out, _indent+1); 1487 _diff = _diff && displayElementDiff("nameExp", nameExp, _cother.nameExp, _out, _indent+1); 1488 _diff = _diff && displayElementDiff("captionExp", captionExp, _cother.captionExp, _out, _indent+1); 1489 _diff = _diff && displayElementDiff("ordinalExp", ordinalExp, _cother.ordinalExp, _out, _indent+1); 1490 _diff = _diff && displayElementDiff("parentExp", parentExp, _cother.parentExp, _out, _indent+1); 1491 _diff = _diff && displayElementDiff("memberFormatter", memberFormatter, _cother.memberFormatter, _out, _indent+1); 1492 _diff = _diff && displayElementDiff("closure", closure, _cother.closure, _out, _indent+1); 1493 _diff = _diff && displayElementArrayDiff("properties", properties, _cother.properties, _out, _indent+1); 1494 return _diff; 1495 } 1496 // BEGIN pass-through code block --- 1497public Expression getKeyExp() { 1498 if (keyExp != null) { 1499 return keyExp; 1500 } else if (column != null) { 1501 return new Column(table, column); 1502 } else { 1503 return null; 1504 } 1505 } 1506 1507 public Expression getNameExp() { 1508 if (nameExp != null) { 1509 return nameExp; 1510 } else if (nameColumn != null) { 1511 return new Column(table, nameColumn); 1512 } else { 1513 return null; 1514 } 1515 } 1516 1517 public Expression getCaptionExp() { 1518 if (captionExp != null) { 1519 return captionExp; 1520 } else if (captionColumn != null) { 1521 return new Column(table, captionColumn); 1522 } else { 1523 return null; 1524 } 1525 } 1526 1527 public Expression getOrdinalExp() { 1528 if (ordinalExp != null) { 1529 return ordinalExp; 1530 } else if (ordinalColumn != null) { 1531 return new Column(table, ordinalColumn); 1532 } else { 1533 return null; 1534 } 1535 } 1536 1537 public Expression getParentExp() { 1538 if (parentExp != null) { 1539 return parentExp; 1540 } else if (parentColumn != null) { 1541 return new Column(table, parentColumn); 1542 } else { 1543 return null; 1544 } 1545 } 1546 1547 public Expression getPropertyExp(int i) { 1548 return new Column(table, properties[i].column); 1549 } 1550 1551 public mondrian.spi.Dialect.Datatype getDatatype() { 1552 return mondrian.spi.Dialect.Datatype.valueOf(type); 1553 } 1554 // END pass-through code block --- 1555 } 1556 1557 /** 1558 * Specifies the transitive closure of a parent-child hierarchy. 1559 * Optional, but recommended for better performance. 1560 * The closure is provided as a set of (parent/child) pairs: 1561 * since it is the transitive closure these are actually (ancestor/descendant) pairs. 1562 */ 1563 public static class Closure extends org.eigenbase.xom.ElementDef 1564 { 1565 public Closure() 1566 { 1567 } 1568 1569 public Closure(org.eigenbase.xom.DOMWrapper _def) 1570 throws org.eigenbase.xom.XOMException 1571 { 1572 try { 1573 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1574 parentColumn = (String)_parser.getAttribute("parentColumn", "String", null, null, true); 1575 childColumn = (String)_parser.getAttribute("childColumn", "String", null, null, true); 1576 table = (Table)_parser.getElement(Table.class, true); 1577 } catch(org.eigenbase.xom.XOMException _ex) { 1578 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1579 } 1580 } 1581 1582 public String parentColumn; // required attribute 1583 public String childColumn; // required attribute 1584 1585 public Table table; //required element 1586 1587 public String getName() 1588 { 1589 return "Closure"; 1590 } 1591 1592 public void display(java.io.PrintWriter _out, int _indent) 1593 { 1594 _out.println(getName()); 1595 displayAttribute(_out, "parentColumn", parentColumn, _indent+1); 1596 displayAttribute(_out, "childColumn", childColumn, _indent+1); 1597 displayElement(_out, "table", (org.eigenbase.xom.ElementDef) table, _indent+1); 1598 } 1599 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1600 { 1601 _out.beginTag("Closure", new org.eigenbase.xom.XMLAttrVector() 1602 .add("parentColumn", parentColumn) 1603 .add("childColumn", childColumn) 1604 ); 1605 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) table); 1606 _out.endTag("Closure"); 1607 } 1608 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1609 { 1610 Closure _cother = (Closure)_other; 1611 boolean _diff = displayAttributeDiff("parentColumn", parentColumn, _cother.parentColumn, _out, _indent+1); 1612 _diff = _diff && displayAttributeDiff("childColumn", childColumn, _cother.childColumn, _out, _indent+1); 1613 _diff = _diff && displayElementDiff("table", table, _cother.table, _out, _indent+1); 1614 return _diff; 1615 } 1616 } 1617 1618 /** 1619 * Member property. 1620 */ 1621 public static class Property extends org.eigenbase.xom.ElementDef 1622 { 1623 public Property() 1624 { 1625 } 1626 1627 public Property(org.eigenbase.xom.DOMWrapper _def) 1628 throws org.eigenbase.xom.XOMException 1629 { 1630 try { 1631 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1632 name = (String)_parser.getAttribute("name", "String", null, null, false); 1633 column = (String)_parser.getAttribute("column", "String", null, null, false); 1634 type = (String)_parser.getAttribute("type", "String", "String", _type_values, false); 1635 formatter = (String)_parser.getAttribute("formatter", "String", null, null, false); 1636 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1637 description = (String)_parser.getAttribute("description", "String", null, null, false); 1638 dependsOnLevelValue = (Boolean)_parser.getAttribute("dependsOnLevelValue", "Boolean", null, null, false); 1639 propertyFormatter = (PropertyFormatter)_parser.getElement(PropertyFormatter.class, false); 1640 } catch(org.eigenbase.xom.XOMException _ex) { 1641 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1642 } 1643 } 1644 1645 public String name; // optional attribute 1646 public String column; // optional attribute 1647 /** Allowable values for {@link #type}. */ 1648 public static final String[] _type_values = {"String", "Numeric", "Integer", "Boolean", "Date", "Time", "Timestamp"}; 1649 public String type; // attribute default: String 1650 public String formatter; // optional attribute 1651 public String caption; // optional attribute 1652 public String description; // optional attribute 1653 public Boolean dependsOnLevelValue; // optional attribute 1654 1655 /** 1656 * Property formatter. 1657 */ 1658 public PropertyFormatter propertyFormatter; //optional element 1659 1660 public String getName() 1661 { 1662 return "Property"; 1663 } 1664 1665 public void display(java.io.PrintWriter _out, int _indent) 1666 { 1667 _out.println(getName()); 1668 displayAttribute(_out, "name", name, _indent+1); 1669 displayAttribute(_out, "column", column, _indent+1); 1670 displayAttribute(_out, "type", type, _indent+1); 1671 displayAttribute(_out, "formatter", formatter, _indent+1); 1672 displayAttribute(_out, "caption", caption, _indent+1); 1673 displayAttribute(_out, "description", description, _indent+1); 1674 displayAttribute(_out, "dependsOnLevelValue", dependsOnLevelValue, _indent+1); 1675 displayElement(_out, "propertyFormatter", (org.eigenbase.xom.ElementDef) propertyFormatter, _indent+1); 1676 } 1677 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1678 { 1679 _out.beginTag("Property", new org.eigenbase.xom.XMLAttrVector() 1680 .add("name", name) 1681 .add("column", column) 1682 .add("type", type) 1683 .add("formatter", formatter) 1684 .add("caption", caption) 1685 .add("description", description) 1686 .add("dependsOnLevelValue", dependsOnLevelValue) 1687 ); 1688 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) propertyFormatter); 1689 _out.endTag("Property"); 1690 } 1691 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1692 { 1693 Property _cother = (Property)_other; 1694 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 1695 _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 1696 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1); 1697 _diff = _diff && displayAttributeDiff("formatter", formatter, _cother.formatter, _out, _indent+1); 1698 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 1699 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 1700 _diff = _diff && displayAttributeDiff("dependsOnLevelValue", dependsOnLevelValue, _cother.dependsOnLevelValue, _out, _indent+1); 1701 _diff = _diff && displayElementDiff("propertyFormatter", propertyFormatter, _cother.propertyFormatter, _out, _indent+1); 1702 return _diff; 1703 } 1704 } 1705 1706 public static class Measure extends org.eigenbase.xom.ElementDef 1707 { 1708 public Measure() 1709 { 1710 } 1711 1712 public Measure(org.eigenbase.xom.DOMWrapper _def) 1713 throws org.eigenbase.xom.XOMException 1714 { 1715 try { 1716 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1717 org.eigenbase.xom.NodeDef[] _tempArray; 1718 name = (String)_parser.getAttribute("name", "String", null, null, true); 1719 column = (String)_parser.getAttribute("column", "String", null, null, false); 1720 datatype = (String)_parser.getAttribute("datatype", "String", null, _datatype_values, false); 1721 formatString = (String)_parser.getAttribute("formatString", "String", null, null, false); 1722 aggregator = (String)_parser.getAttribute("aggregator", "String", null, _aggregator_values, true); 1723 formatter = (String)_parser.getAttribute("formatter", "String", null, null, false); 1724 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1725 description = (String)_parser.getAttribute("description", "String", null, null, false); 1726 visible = (Boolean)_parser.getAttribute("visible", "Boolean", null, null, false); 1727 annotations = (Annotations)_parser.getElement(Annotations.class, false); 1728 measureExp = (MeasureExpression)_parser.getElement(MeasureExpression.class, false); 1729 cellFormatter = (CellFormatter)_parser.getElement(CellFormatter.class, false); 1730 _tempArray = _parser.getArray(CalculatedMemberProperty.class, 0, 0); 1731 memberProperties = new CalculatedMemberProperty[_tempArray.length]; 1732 for (int _i = 0; _i < memberProperties.length; _i++) 1733 memberProperties[_i] = (CalculatedMemberProperty)_tempArray[_i]; 1734 } catch(org.eigenbase.xom.XOMException _ex) { 1735 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1736 } 1737 } 1738 1739 public String name; // required attribute 1740 public String column; // optional attribute 1741 /** Allowable values for {@link #datatype}. */ 1742 public static final String[] _datatype_values = {"String", "Numeric", "Integer", "Boolean", "Date", "Time", "Timestamp"}; 1743 public String datatype; // optional attribute 1744 public String formatString; // optional attribute 1745 /** Allowable values for {@link #aggregator}. */ 1746 public static final String[] _aggregator_values = {"sum", "count", "min", "max", "avg", "distinct count", "distinct-count"}; 1747 public String aggregator; // required attribute 1748 public String formatter; // optional attribute 1749 public String caption; // optional attribute 1750 public String description; // optional attribute 1751 public Boolean visible; // optional attribute 1752 1753 /** 1754 * Contains values of user-defined properties. 1755 */ 1756 public Annotations annotations; //optional element 1757 /** 1758 * The SQL expression used to calculate a measure. 1759 * Must be specified if a source column is not specified. 1760 */ 1761 public MeasureExpression measureExp; //optional element 1762 /** 1763 * Cell formatter. 1764 */ 1765 public CellFormatter cellFormatter; //optional element 1766 public CalculatedMemberProperty[] memberProperties; //optional array 1767 1768 public String getName() 1769 { 1770 return "Measure"; 1771 } 1772 1773 public void display(java.io.PrintWriter _out, int _indent) 1774 { 1775 _out.println(getName()); 1776 displayAttribute(_out, "name", name, _indent+1); 1777 displayAttribute(_out, "column", column, _indent+1); 1778 displayAttribute(_out, "datatype", datatype, _indent+1); 1779 displayAttribute(_out, "formatString", formatString, _indent+1); 1780 displayAttribute(_out, "aggregator", aggregator, _indent+1); 1781 displayAttribute(_out, "formatter", formatter, _indent+1); 1782 displayAttribute(_out, "caption", caption, _indent+1); 1783 displayAttribute(_out, "description", description, _indent+1); 1784 displayAttribute(_out, "visible", visible, _indent+1); 1785 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 1786 displayElement(_out, "measureExp", (org.eigenbase.xom.ElementDef) measureExp, _indent+1); 1787 displayElement(_out, "cellFormatter", (org.eigenbase.xom.ElementDef) cellFormatter, _indent+1); 1788 displayElementArray(_out, "memberProperties", memberProperties, _indent+1); 1789 } 1790 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1791 { 1792 _out.beginTag("Measure", new org.eigenbase.xom.XMLAttrVector() 1793 .add("name", name) 1794 .add("column", column) 1795 .add("datatype", datatype) 1796 .add("formatString", formatString) 1797 .add("aggregator", aggregator) 1798 .add("formatter", formatter) 1799 .add("caption", caption) 1800 .add("description", description) 1801 .add("visible", visible) 1802 ); 1803 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 1804 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) measureExp); 1805 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) cellFormatter); 1806 displayXMLElementArray(_out, memberProperties); 1807 _out.endTag("Measure"); 1808 } 1809 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1810 { 1811 Measure _cother = (Measure)_other; 1812 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 1813 _diff = _diff && displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 1814 _diff = _diff && displayAttributeDiff("datatype", datatype, _cother.datatype, _out, _indent+1); 1815 _diff = _diff && displayAttributeDiff("formatString", formatString, _cother.formatString, _out, _indent+1); 1816 _diff = _diff && displayAttributeDiff("aggregator", aggregator, _cother.aggregator, _out, _indent+1); 1817 _diff = _diff && displayAttributeDiff("formatter", formatter, _cother.formatter, _out, _indent+1); 1818 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 1819 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 1820 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 1821 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 1822 _diff = _diff && displayElementDiff("measureExp", measureExp, _cother.measureExp, _out, _indent+1); 1823 _diff = _diff && displayElementDiff("cellFormatter", cellFormatter, _cother.cellFormatter, _out, _indent+1); 1824 _diff = _diff && displayElementArrayDiff("memberProperties", memberProperties, _cother.memberProperties, _out, _indent+1); 1825 return _diff; 1826 } 1827 } 1828 1829 public static class CalculatedMember extends org.eigenbase.xom.ElementDef 1830 { 1831 public CalculatedMember() 1832 { 1833 } 1834 1835 public CalculatedMember(org.eigenbase.xom.DOMWrapper _def) 1836 throws org.eigenbase.xom.XOMException 1837 { 1838 try { 1839 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1840 org.eigenbase.xom.NodeDef[] _tempArray; 1841 name = (String)_parser.getAttribute("name", "String", null, null, true); 1842 formatString = (String)_parser.getAttribute("formatString", "String", null, null, false); 1843 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1844 description = (String)_parser.getAttribute("description", "String", null, null, false); 1845 formula = (String)_parser.getAttribute("formula", "String", null, null, false); 1846 dimension = (String)_parser.getAttribute("dimension", "String", null, null, false); 1847 hierarchy = (String)_parser.getAttribute("hierarchy", "String", null, null, false); 1848 parent = (String)_parser.getAttribute("parent", "String", null, null, false); 1849 visible = (Boolean)_parser.getAttribute("visible", "Boolean", null, null, false); 1850 annotations = (Annotations)_parser.getElement(Annotations.class, false); 1851 formulaElement = (Formula)_parser.getElement(Formula.class, false); 1852 cellFormatter = (CellFormatter)_parser.getElement(CellFormatter.class, false); 1853 _tempArray = _parser.getArray(CalculatedMemberProperty.class, 0, 0); 1854 memberProperties = new CalculatedMemberProperty[_tempArray.length]; 1855 for (int _i = 0; _i < memberProperties.length; _i++) 1856 memberProperties[_i] = (CalculatedMemberProperty)_tempArray[_i]; 1857 } catch(org.eigenbase.xom.XOMException _ex) { 1858 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1859 } 1860 } 1861 1862 public String name; // required attribute 1863 public String formatString; // optional attribute 1864 public String caption; // optional attribute 1865 public String description; // optional attribute 1866 public String formula; // optional attribute 1867 public String dimension; // optional attribute 1868 public String hierarchy; // optional attribute 1869 public String parent; // optional attribute 1870 public Boolean visible; // optional attribute 1871 1872 /** 1873 * Contains values of user-defined properties. 1874 */ 1875 public Annotations annotations; //optional element 1876 /** 1877 * MDX expression which gives the value of this member. 1878 */ 1879 public Formula formulaElement; //optional element 1880 /** 1881 * Cell formatter. 1882 */ 1883 public CellFormatter cellFormatter; //optional element 1884 public CalculatedMemberProperty[] memberProperties; //optional array 1885 1886 public String getName() 1887 { 1888 return "CalculatedMember"; 1889 } 1890 1891 public void display(java.io.PrintWriter _out, int _indent) 1892 { 1893 _out.println(getName()); 1894 displayAttribute(_out, "name", name, _indent+1); 1895 displayAttribute(_out, "formatString", formatString, _indent+1); 1896 displayAttribute(_out, "caption", caption, _indent+1); 1897 displayAttribute(_out, "description", description, _indent+1); 1898 displayAttribute(_out, "formula", formula, _indent+1); 1899 displayAttribute(_out, "dimension", dimension, _indent+1); 1900 displayAttribute(_out, "hierarchy", hierarchy, _indent+1); 1901 displayAttribute(_out, "parent", parent, _indent+1); 1902 displayAttribute(_out, "visible", visible, _indent+1); 1903 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 1904 displayElement(_out, "formulaElement", (org.eigenbase.xom.ElementDef) formulaElement, _indent+1); 1905 displayElement(_out, "cellFormatter", (org.eigenbase.xom.ElementDef) cellFormatter, _indent+1); 1906 displayElementArray(_out, "memberProperties", memberProperties, _indent+1); 1907 } 1908 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 1909 { 1910 _out.beginTag("CalculatedMember", new org.eigenbase.xom.XMLAttrVector() 1911 .add("name", name) 1912 .add("formatString", formatString) 1913 .add("caption", caption) 1914 .add("description", description) 1915 .add("formula", formula) 1916 .add("dimension", dimension) 1917 .add("hierarchy", hierarchy) 1918 .add("parent", parent) 1919 .add("visible", visible) 1920 ); 1921 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 1922 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) formulaElement); 1923 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) cellFormatter); 1924 displayXMLElementArray(_out, memberProperties); 1925 _out.endTag("CalculatedMember"); 1926 } 1927 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 1928 { 1929 CalculatedMember _cother = (CalculatedMember)_other; 1930 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 1931 _diff = _diff && displayAttributeDiff("formatString", formatString, _cother.formatString, _out, _indent+1); 1932 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 1933 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 1934 _diff = _diff && displayAttributeDiff("formula", formula, _cother.formula, _out, _indent+1); 1935 _diff = _diff && displayAttributeDiff("dimension", dimension, _cother.dimension, _out, _indent+1); 1936 _diff = _diff && displayAttributeDiff("hierarchy", hierarchy, _cother.hierarchy, _out, _indent+1); 1937 _diff = _diff && displayAttributeDiff("parent", parent, _cother.parent, _out, _indent+1); 1938 _diff = _diff && displayAttributeDiff("visible", visible, _cother.visible, _out, _indent+1); 1939 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 1940 _diff = _diff && displayElementDiff("formulaElement", formulaElement, _cother.formulaElement, _out, _indent+1); 1941 _diff = _diff && displayElementDiff("cellFormatter", cellFormatter, _cother.cellFormatter, _out, _indent+1); 1942 _diff = _diff && displayElementArrayDiff("memberProperties", memberProperties, _cother.memberProperties, _out, _indent+1); 1943 return _diff; 1944 } 1945 // BEGIN pass-through code block --- 1946/** 1947 * Returns the formula, looking for a sub-element called 1948 * "Formula" first, then looking for an attribute called 1949 * "formula". 1950 */ 1951 public String getFormula() { 1952 if (formulaElement != null) { 1953 return formulaElement.cdata; 1954 } else { 1955 return formula; 1956 } 1957 } 1958 // END pass-through code block --- 1959 } 1960 1961 /** 1962 * Property of a calculated member defined against a cube. 1963 * It must have either an expression or a value. 1964 */ 1965 public static class CalculatedMemberProperty extends org.eigenbase.xom.ElementDef 1966 { 1967 public CalculatedMemberProperty() 1968 { 1969 } 1970 1971 public CalculatedMemberProperty(org.eigenbase.xom.DOMWrapper _def) 1972 throws org.eigenbase.xom.XOMException 1973 { 1974 try { 1975 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 1976 name = (String)_parser.getAttribute("name", "String", null, null, true); 1977 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 1978 description = (String)_parser.getAttribute("description", "String", null, null, false); 1979 expression = (String)_parser.getAttribute("expression", "String", null, null, false); 1980 value = (String)_parser.getAttribute("value", "String", null, null, false); 1981 } catch(org.eigenbase.xom.XOMException _ex) { 1982 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 1983 } 1984 } 1985 1986 public String name; // required attribute 1987 public String caption; // optional attribute 1988 public String description; // optional attribute 1989 public String expression; // optional attribute 1990 public String value; // optional attribute 1991 1992 1993 public String getName() 1994 { 1995 return "CalculatedMemberProperty"; 1996 } 1997 1998 public void display(java.io.PrintWriter _out, int _indent) 1999 { 2000 _out.println(getName()); 2001 displayAttribute(_out, "name", name, _indent+1); 2002 displayAttribute(_out, "caption", caption, _indent+1); 2003 displayAttribute(_out, "description", description, _indent+1); 2004 displayAttribute(_out, "expression", expression, _indent+1); 2005 displayAttribute(_out, "value", value, _indent+1); 2006 } 2007 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2008 { 2009 _out.beginTag("CalculatedMemberProperty", new org.eigenbase.xom.XMLAttrVector() 2010 .add("name", name) 2011 .add("caption", caption) 2012 .add("description", description) 2013 .add("expression", expression) 2014 .add("value", value) 2015 ); 2016 _out.endTag("CalculatedMemberProperty"); 2017 } 2018 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2019 { 2020 CalculatedMemberProperty _cother = (CalculatedMemberProperty)_other; 2021 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 2022 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 2023 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 2024 _diff = _diff && displayAttributeDiff("expression", expression, _cother.expression, _out, _indent+1); 2025 _diff = _diff && displayAttributeDiff("value", value, _cother.value, _out, _indent+1); 2026 return _diff; 2027 } 2028 } 2029 2030 /** 2031 * <p>Defines a named set which can be used in queries in the 2032 * same way as a set defined using a WITH SET clause.</p> 2033 * <p>A named set can be defined against a particular cube, 2034 * or can be global to a schema. If it is defined against a 2035 * cube, it is only available to queries which use that cube.</p> 2036 * <p>A named set defined against a cube is not inherited by 2037 * a virtual cubes defined against that cube. (But you can 2038 * define a named set against a virtual cube.)</p> 2039 * <p>A named set defined against a schema is available in 2040 * all cubes and virtual cubes in that schema. However, it is 2041 * only valid if the cube contains dimensions with the names 2042 * required to make the formula valid.</p> 2043 */ 2044 public static class NamedSet extends org.eigenbase.xom.ElementDef 2045 { 2046 public NamedSet() 2047 { 2048 } 2049 2050 public NamedSet(org.eigenbase.xom.DOMWrapper _def) 2051 throws org.eigenbase.xom.XOMException 2052 { 2053 try { 2054 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2055 name = (String)_parser.getAttribute("name", "String", null, null, true); 2056 caption = (String)_parser.getAttribute("caption", "String", null, null, false); 2057 description = (String)_parser.getAttribute("description", "String", null, null, false); 2058 formula = (String)_parser.getAttribute("formula", "String", null, null, false); 2059 annotations = (Annotations)_parser.getElement(Annotations.class, false); 2060 formulaElement = (Formula)_parser.getElement(Formula.class, false); 2061 } catch(org.eigenbase.xom.XOMException _ex) { 2062 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2063 } 2064 } 2065 2066 public String name; // required attribute 2067 public String caption; // optional attribute 2068 public String description; // optional attribute 2069 public String formula; // optional attribute 2070 2071 /** 2072 * Contains values of user-defined properties. 2073 */ 2074 public Annotations annotations; //optional element 2075 /** 2076 * MDX expression which gives the value of this set. 2077 */ 2078 public Formula formulaElement; //optional element 2079 2080 public String getName() 2081 { 2082 return "NamedSet"; 2083 } 2084 2085 public void display(java.io.PrintWriter _out, int _indent) 2086 { 2087 _out.println(getName()); 2088 displayAttribute(_out, "name", name, _indent+1); 2089 displayAttribute(_out, "caption", caption, _indent+1); 2090 displayAttribute(_out, "description", description, _indent+1); 2091 displayAttribute(_out, "formula", formula, _indent+1); 2092 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 2093 displayElement(_out, "formulaElement", (org.eigenbase.xom.ElementDef) formulaElement, _indent+1); 2094 } 2095 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2096 { 2097 _out.beginTag("NamedSet", new org.eigenbase.xom.XMLAttrVector() 2098 .add("name", name) 2099 .add("caption", caption) 2100 .add("description", description) 2101 .add("formula", formula) 2102 ); 2103 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 2104 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) formulaElement); 2105 _out.endTag("NamedSet"); 2106 } 2107 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2108 { 2109 NamedSet _cother = (NamedSet)_other; 2110 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 2111 _diff = _diff && displayAttributeDiff("caption", caption, _cother.caption, _out, _indent+1); 2112 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 2113 _diff = _diff && displayAttributeDiff("formula", formula, _cother.formula, _out, _indent+1); 2114 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 2115 _diff = _diff && displayElementDiff("formulaElement", formulaElement, _cother.formulaElement, _out, _indent+1); 2116 return _diff; 2117 } 2118 // BEGIN pass-through code block --- 2119/** 2120 * Returns the formula, looking for a sub-element called 2121 * "Formula" first, then looking for an attribute called 2122 * "formula". 2123 */ 2124 public String getFormula() { 2125 if (formulaElement != null) { 2126 return formulaElement.cdata; 2127 } else { 2128 return formula; 2129 } 2130 } 2131 // END pass-through code block --- 2132 } 2133 2134 public static class Formula extends org.eigenbase.xom.ElementDef 2135 { 2136 public Formula() 2137 { 2138 } 2139 2140 public Formula(org.eigenbase.xom.DOMWrapper _def) 2141 throws org.eigenbase.xom.XOMException 2142 { 2143 try { 2144 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2145 cdata = _parser.getText(); 2146 } catch(org.eigenbase.xom.XOMException _ex) { 2147 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2148 } 2149 } 2150 2151 2152 public String cdata; // All text goes here 2153 public String getName() 2154 { 2155 return "Formula"; 2156 } 2157 2158 public void display(java.io.PrintWriter _out, int _indent) 2159 { 2160 _out.println(getName()); 2161 displayString(_out, "cdata", cdata, _indent+1); 2162 } 2163 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2164 { 2165 _out.beginTag("Formula", new org.eigenbase.xom.XMLAttrVector() 2166 ); 2167 _out.cdata(cdata); 2168 _out.endTag("Formula"); 2169 } 2170 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2171 { 2172 Formula _cother = (Formula)_other; 2173 boolean _diff = displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1); 2174 return _diff; 2175 } 2176 } 2177 2178 /** 2179 * Not used 2180 */ 2181 public static class MemberReaderParameter extends org.eigenbase.xom.ElementDef 2182 { 2183 public MemberReaderParameter() 2184 { 2185 } 2186 2187 public MemberReaderParameter(org.eigenbase.xom.DOMWrapper _def) 2188 throws org.eigenbase.xom.XOMException 2189 { 2190 try { 2191 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2192 name = (String)_parser.getAttribute("name", "String", null, null, false); 2193 value = (String)_parser.getAttribute("value", "String", null, null, false); 2194 } catch(org.eigenbase.xom.XOMException _ex) { 2195 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2196 } 2197 } 2198 2199 public String name; // optional attribute 2200 public String value; // optional attribute 2201 2202 2203 public String getName() 2204 { 2205 return "MemberReaderParameter"; 2206 } 2207 2208 public void display(java.io.PrintWriter _out, int _indent) 2209 { 2210 _out.println(getName()); 2211 displayAttribute(_out, "name", name, _indent+1); 2212 displayAttribute(_out, "value", value, _indent+1); 2213 } 2214 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2215 { 2216 _out.beginTag("MemberReaderParameter", new org.eigenbase.xom.XMLAttrVector() 2217 .add("name", name) 2218 .add("value", value) 2219 ); 2220 _out.endTag("MemberReaderParameter"); 2221 } 2222 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2223 { 2224 MemberReaderParameter _cother = (MemberReaderParameter)_other; 2225 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 2226 _diff = _diff && displayAttributeDiff("value", value, _cother.value, _out, _indent+1); 2227 return _diff; 2228 } 2229 } 2230 2231 /** 2232 * A table or a join 2233 */ 2234 public static abstract class RelationOrJoin extends org.eigenbase.xom.ElementDef 2235 { 2236 public RelationOrJoin() 2237 { 2238 } 2239 2240 public RelationOrJoin(org.eigenbase.xom.DOMWrapper _def) 2241 throws org.eigenbase.xom.XOMException 2242 { 2243 } 2244 2245 2246 2247 public String getName() 2248 { 2249 return "RelationOrJoin"; 2250 } 2251 2252 public void display(java.io.PrintWriter _out, int _indent) 2253 { 2254 _out.println(getName()); 2255 } 2256 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2257 { 2258 _out.beginTag("RelationOrJoin", new org.eigenbase.xom.XMLAttrVector() 2259 ); 2260 _out.endTag("RelationOrJoin"); 2261 } 2262 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2263 { 2264 return true; 2265 } 2266 // BEGIN pass-through code block --- 2267public abstract Relation find(String seekAlias); 2268 public boolean equals(Object o) { 2269 return this == o; 2270 } 2271 public int hashCode() { 2272 return System.identityHashCode(this); 2273 } 2274 // END pass-through code block --- 2275 } 2276 2277 /** 2278 * A table, inline table or view 2279 */ 2280 public static abstract class Relation extends RelationOrJoin 2281 { 2282 public Relation() 2283 { 2284 } 2285 2286 public Relation(org.eigenbase.xom.DOMWrapper _def) 2287 throws org.eigenbase.xom.XOMException 2288 { 2289 } 2290 2291 2292 2293 public String getName() 2294 { 2295 return "Relation"; 2296 } 2297 2298 public void display(java.io.PrintWriter _out, int _indent) 2299 { 2300 _out.println(getName()); 2301 } 2302 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2303 { 2304 _out.beginTag("Relation", new org.eigenbase.xom.XMLAttrVector() 2305 ); 2306 _out.endTag("Relation"); 2307 } 2308 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2309 { 2310 return true; 2311 } 2312 // BEGIN pass-through code block --- 2313public abstract String getAlias(); 2314 // END pass-through code block --- 2315 } 2316 2317 /** 2318 * A collection of SQL statements, one per dialect. 2319 */ 2320 public static class View extends Relation 2321 { 2322 public View() 2323 { 2324 } 2325 2326 public View(org.eigenbase.xom.DOMWrapper _def) 2327 throws org.eigenbase.xom.XOMException 2328 { 2329 try { 2330 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2331 org.eigenbase.xom.NodeDef[] _tempArray; 2332 alias = (String)_parser.getAttribute("alias", "String", null, null, true); 2333 _tempArray = _parser.getArray(SQL.class, 1, 0); 2334 selects = new SQL[_tempArray.length]; 2335 for (int _i = 0; _i < selects.length; _i++) 2336 selects[_i] = (SQL)_tempArray[_i]; 2337 } catch(org.eigenbase.xom.XOMException _ex) { 2338 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2339 } 2340 } 2341 2342 public String alias; // required attribute 2343 2344 public SQL[] selects; //min 1 2345 2346 public String getName() 2347 { 2348 return "View"; 2349 } 2350 2351 public void display(java.io.PrintWriter _out, int _indent) 2352 { 2353 _out.println(getName()); 2354 displayAttribute(_out, "alias", alias, _indent+1); 2355 displayElementArray(_out, "selects", selects, _indent+1); 2356 } 2357 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2358 { 2359 _out.beginTag("View", new org.eigenbase.xom.XMLAttrVector() 2360 .add("alias", alias) 2361 ); 2362 displayXMLElementArray(_out, selects); 2363 _out.endTag("View"); 2364 } 2365 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2366 { 2367 View _cother = (View)_other; 2368 boolean _diff = displayAttributeDiff("alias", alias, _cother.alias, _out, _indent+1); 2369 _diff = _diff && displayElementArrayDiff("selects", selects, _cother.selects, _out, _indent+1); 2370 return _diff; 2371 } 2372 // BEGIN pass-through code block --- 2373/** 2374 * Copy constructor. 2375 */ 2376 public View(View view) { 2377 this.alias = view.alias; 2378 this.selects = view.selects.clone(); 2379 } 2380 public String toString() { 2381 return selects[0].cdata; 2382 } 2383 2384 public View find(String seekAlias) { 2385 if (seekAlias.equals(alias)) { 2386 return this; 2387 } else { 2388 return null; 2389 } 2390 } 2391 2392 public String getAlias() { 2393 return alias; 2394 } 2395 2396 public SqlQuery.CodeSet getCodeSet() { 2397 return SQL.toCodeSet(selects); 2398 } 2399 2400 public void addCode(String dialect, String code) { 2401 if (selects == null) { 2402 selects = new SQL[1]; 2403 } else { 2404 SQL[] olds = selects; 2405 selects = new SQL[olds.length + 1]; 2406 System.arraycopy(olds, 0, selects, 0, olds.length); 2407 } 2408 SQL sql = new SQL(); 2409 sql.dialect = dialect; 2410 sql.cdata = code; 2411 selects[selects.length - 1] = sql; 2412 } 2413 2414 public boolean equals(Object o) { 2415 if (o instanceof View) { 2416 View that = (View) o; 2417 if (!this.alias.equals(that.alias)) { 2418 return false; 2419 } 2420 if (this.selects == null || that.selects == null || this.selects.length != that.selects.length) { 2421 return false; 2422 } 2423 for (int i = 0; i < selects.length; i++) { 2424 if (!Util.equals(this.selects[i].dialect, that.selects[i].dialect) 2425 || !Util.equals(this.selects[i].cdata, that.selects[i].cdata)) 2426 { 2427 return false; 2428 } 2429 } 2430 return true; 2431 } else { 2432 return false; 2433 } 2434 } 2435 // END pass-through code block --- 2436 } 2437 2438 public static class SQL extends org.eigenbase.xom.ElementDef 2439 { 2440 public SQL() 2441 { 2442 } 2443 2444 public SQL(org.eigenbase.xom.DOMWrapper _def) 2445 throws org.eigenbase.xom.XOMException 2446 { 2447 try { 2448 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2449 dialect = (String)_parser.getAttribute("dialect", "String", "generic", _dialect_values, true); 2450 cdata = _parser.getText(); 2451 } catch(org.eigenbase.xom.XOMException _ex) { 2452 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2453 } 2454 } 2455 2456 /** Allowable values for {@link #dialect}. */ 2457 public static final String[] _dialect_values = {"generic", "access", "db2", "derby", "firebird", "hsqldb", "mssql", "mysql", "oracle", "postgres", "sybase", "teradata", "ingres", "infobright", "luciddb", "vertica", "neoview", "greenplum", "vectorwise", "hive"}; 2458 public String dialect; // attribute default: generic 2459 2460 public String cdata; // All text goes here 2461 public String getName() 2462 { 2463 return "SQL"; 2464 } 2465 2466 public void display(java.io.PrintWriter _out, int _indent) 2467 { 2468 _out.println(getName()); 2469 displayAttribute(_out, "dialect", dialect, _indent+1); 2470 displayString(_out, "cdata", cdata, _indent+1); 2471 } 2472 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2473 { 2474 _out.beginTag("SQL", new org.eigenbase.xom.XMLAttrVector() 2475 .add("dialect", dialect) 2476 ); 2477 _out.cdata(cdata); 2478 _out.endTag("SQL"); 2479 } 2480 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2481 { 2482 SQL _cother = (SQL)_other; 2483 boolean _diff = displayAttributeDiff("dialect", dialect, _cother.dialect, _out, _indent+1); 2484 _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1); 2485 return _diff; 2486 } 2487 // BEGIN pass-through code block --- 2488public int hashCode() { 2489 return dialect.hashCode(); 2490 } 2491 2492 public boolean equals(Object obj) { 2493 // Disabled this equality implementation because two sql objects 2494 // may be equal if their contents are equal. 2495 Throwable stack = new Throwable(); 2496 stack.fillInStackTrace(); 2497 for (StackTraceElement st : stack.getStackTrace()) { 2498 if (st.getClassName().equals("javax.swing.tree.TreePath")) { 2499 return this == obj; 2500 } 2501 } 2502 2503 if (!(obj instanceof SQL)) { 2504 return false; 2505 } 2506 SQL that = (SQL) obj; 2507 return this.dialect.equals(that.dialect) && 2508 Util.equals(this.cdata, that.cdata); 2509 } 2510 2511 /** 2512 * Converts an array of SQL to a 2513 * {@link mondrian.rolap.sql.SqlQuery.CodeSet} object. 2514 */ 2515 public static SqlQuery.CodeSet toCodeSet(SQL[] sqls) { 2516 SqlQuery.CodeSet codeSet = new SqlQuery.CodeSet(); 2517 for (SQL sql : sqls) { 2518 codeSet.put(sql.dialect, sql.cdata); 2519 } 2520 return codeSet; 2521 } 2522 // END pass-through code block --- 2523 } 2524 2525 public static class Join extends RelationOrJoin 2526 { 2527 public Join() 2528 { 2529 } 2530 2531 public Join(org.eigenbase.xom.DOMWrapper _def) 2532 throws org.eigenbase.xom.XOMException 2533 { 2534 try { 2535 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2536 leftAlias = (String)_parser.getAttribute("leftAlias", "String", null, null, false); 2537 leftKey = (String)_parser.getAttribute("leftKey", "String", null, null, true); 2538 rightAlias = (String)_parser.getAttribute("rightAlias", "String", null, null, false); 2539 rightKey = (String)_parser.getAttribute("rightKey", "String", null, null, true); 2540 left = (RelationOrJoin)_parser.getElement(RelationOrJoin.class, true); 2541 right = (RelationOrJoin)_parser.getElement(RelationOrJoin.class, true); 2542 } catch(org.eigenbase.xom.XOMException _ex) { 2543 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2544 } 2545 } 2546 2547 public String leftAlias; // optional attribute 2548 public String leftKey; // required attribute 2549 public String rightAlias; // optional attribute 2550 public String rightKey; // required attribute 2551 2552 public RelationOrJoin left; //required element 2553 public RelationOrJoin right; //required element 2554 2555 public String getName() 2556 { 2557 return "Join"; 2558 } 2559 2560 public void display(java.io.PrintWriter _out, int _indent) 2561 { 2562 _out.println(getName()); 2563 displayAttribute(_out, "leftAlias", leftAlias, _indent+1); 2564 displayAttribute(_out, "leftKey", leftKey, _indent+1); 2565 displayAttribute(_out, "rightAlias", rightAlias, _indent+1); 2566 displayAttribute(_out, "rightKey", rightKey, _indent+1); 2567 displayElement(_out, "left", (org.eigenbase.xom.ElementDef) left, _indent+1); 2568 displayElement(_out, "right", (org.eigenbase.xom.ElementDef) right, _indent+1); 2569 } 2570 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2571 { 2572 _out.beginTag("Join", new org.eigenbase.xom.XMLAttrVector() 2573 .add("leftAlias", leftAlias) 2574 .add("leftKey", leftKey) 2575 .add("rightAlias", rightAlias) 2576 .add("rightKey", rightKey) 2577 ); 2578 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) left); 2579 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) right); 2580 _out.endTag("Join"); 2581 } 2582 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2583 { 2584 Join _cother = (Join)_other; 2585 boolean _diff = displayAttributeDiff("leftAlias", leftAlias, _cother.leftAlias, _out, _indent+1); 2586 _diff = _diff && displayAttributeDiff("leftKey", leftKey, _cother.leftKey, _out, _indent+1); 2587 _diff = _diff && displayAttributeDiff("rightAlias", rightAlias, _cother.rightAlias, _out, _indent+1); 2588 _diff = _diff && displayAttributeDiff("rightKey", rightKey, _cother.rightKey, _out, _indent+1); 2589 _diff = _diff && displayElementDiff("left", left, _cother.left, _out, _indent+1); 2590 _diff = _diff && displayElementDiff("right", right, _cother.right, _out, _indent+1); 2591 return _diff; 2592 } 2593 // BEGIN pass-through code block --- 2594/** Convenience constructor. */ 2595 public Join( 2596 String leftAlias, 2597 String leftKey, 2598 RelationOrJoin left, 2599 String rightAlias, 2600 String rightKey, 2601 RelationOrJoin right) 2602 { 2603 this.leftAlias = leftAlias; 2604 this.leftKey = leftKey; 2605 this.left = left; 2606 this.rightAlias = rightAlias; 2607 this.rightKey = rightKey; 2608 this.right = right; 2609 } 2610 /** 2611 * Returns the alias of the left join key, defaulting to left's 2612 * alias if left is a table. 2613 */ 2614 public String getLeftAlias() { 2615 if (leftAlias != null) { 2616 return leftAlias; 2617 } 2618 if (left instanceof Relation) { 2619 return ((Relation) left).getAlias(); 2620 } 2621 throw Util.newInternal( 2622 "alias is required because " + left + " is not a table"); 2623 } 2624 /** 2625 * Returns the alias of the right join key, defaulting to right's 2626 * alias if right is a table. 2627 */ 2628 public String getRightAlias() { 2629 if (rightAlias != null) { 2630 return rightAlias; 2631 } 2632 if (right instanceof Relation) { 2633 return ((Relation) right).getAlias(); 2634 } 2635 if (right instanceof Join) { 2636 return ((Join) right).getLeftAlias(); 2637 } 2638 throw Util.newInternal( 2639 "alias is required because " + right + " is not a table"); 2640 } 2641 public String toString() { 2642 return "(" + left + ") join (" + right + ") on " + 2643 leftAlias + "." + leftKey + " = " + 2644 rightAlias + "." + rightKey; 2645 } 2646 public Relation find(String seekAlias) { 2647 Relation relation = left.find(seekAlias); 2648 if (relation == null) { 2649 relation = right.find(seekAlias); 2650 } 2651 return relation; 2652 } 2653 public boolean equals(Object o) { 2654 return (this == o); 2655 } 2656 // END pass-through code block --- 2657 } 2658 2659 public static class Table extends Relation 2660 { 2661 public Table() 2662 { 2663 } 2664 2665 public Table(org.eigenbase.xom.DOMWrapper _def) 2666 throws org.eigenbase.xom.XOMException 2667 { 2668 try { 2669 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2670 org.eigenbase.xom.NodeDef[] _tempArray; 2671 name = (String)_parser.getAttribute("name", "String", null, null, true); 2672 schema = (String)_parser.getAttribute("schema", "String", null, null, false); 2673 alias = (String)_parser.getAttribute("alias", "String", null, null, false); 2674 filter = (SQL)_parser.getElement(SQL.class, false); 2675 _tempArray = _parser.getArray(AggExclude.class, 0, 0); 2676 aggExcludes = new AggExclude[_tempArray.length]; 2677 for (int _i = 0; _i < aggExcludes.length; _i++) 2678 aggExcludes[_i] = (AggExclude)_tempArray[_i]; 2679 _tempArray = _parser.getArray(AggTable.class, 0, 0); 2680 aggTables = new AggTable[_tempArray.length]; 2681 for (int _i = 0; _i < aggTables.length; _i++) 2682 aggTables[_i] = (AggTable)_tempArray[_i]; 2683 _tempArray = _parser.getArray(Hint.class, 0, 0); 2684 tableHints = new Hint[_tempArray.length]; 2685 for (int _i = 0; _i < tableHints.length; _i++) 2686 tableHints[_i] = (Hint)_tempArray[_i]; 2687 } catch(org.eigenbase.xom.XOMException _ex) { 2688 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2689 } 2690 } 2691 2692 public String name; // required attribute 2693 public String schema; // optional attribute 2694 public String alias; // optional attribute 2695 2696 /** 2697 * The SQL WHERE clause expression to be appended to any select statement 2698 */ 2699 public SQL filter; //optional element 2700 public AggExclude[] aggExcludes; //optional array 2701 public AggTable[] aggTables; //optional array 2702 /** 2703 * Table optimization hints; may be ignored by dialect. 2704 */ 2705 public Hint[] tableHints; //optional array 2706 2707 public String getName() 2708 { 2709 return "Table"; 2710 } 2711 2712 public void display(java.io.PrintWriter _out, int _indent) 2713 { 2714 _out.println(getName()); 2715 displayAttribute(_out, "name", name, _indent+1); 2716 displayAttribute(_out, "schema", schema, _indent+1); 2717 displayAttribute(_out, "alias", alias, _indent+1); 2718 displayElement(_out, "filter", (org.eigenbase.xom.ElementDef) filter, _indent+1); 2719 displayElementArray(_out, "aggExcludes", aggExcludes, _indent+1); 2720 displayElementArray(_out, "aggTables", aggTables, _indent+1); 2721 displayElementArray(_out, "tableHints", tableHints, _indent+1); 2722 } 2723 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2724 { 2725 _out.beginTag("Table", new org.eigenbase.xom.XMLAttrVector() 2726 .add("name", name) 2727 .add("schema", schema) 2728 .add("alias", alias) 2729 ); 2730 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) filter); 2731 displayXMLElementArray(_out, aggExcludes); 2732 displayXMLElementArray(_out, aggTables); 2733 displayXMLElementArray(_out, tableHints); 2734 _out.endTag("Table"); 2735 } 2736 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2737 { 2738 Table _cother = (Table)_other; 2739 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 2740 _diff = _diff && displayAttributeDiff("schema", schema, _cother.schema, _out, _indent+1); 2741 _diff = _diff && displayAttributeDiff("alias", alias, _cother.alias, _out, _indent+1); 2742 _diff = _diff && displayElementDiff("filter", filter, _cother.filter, _out, _indent+1); 2743 _diff = _diff && displayElementArrayDiff("aggExcludes", aggExcludes, _cother.aggExcludes, _out, _indent+1); 2744 _diff = _diff && displayElementArrayDiff("aggTables", aggTables, _cother.aggTables, _out, _indent+1); 2745 _diff = _diff && displayElementArrayDiff("tableHints", tableHints, _cother.tableHints, _out, _indent+1); 2746 return _diff; 2747 } 2748 // BEGIN pass-through code block --- 2749private java.util.Map<String,String> hintMap; 2750 /** Convenience constructor. */ 2751 public Table(Table table) { 2752 this(table.schema, table.name, table.alias, table.tableHints); 2753 } 2754 public Table(String schema, String name, String alias, Hint[] tablehints) { 2755 this(); 2756 this.schema = schema; 2757 this.name = name; 2758 this.alias = alias; 2759 this.hintMap = buildHintMap(tablehints); 2760 } 2761 private java.util.Map<String,String> buildHintMap(Hint[] th) { 2762 java.util.Map<String,String> h = 2763 new java.util.HashMap<String,String>(); 2764 if (th != null) { 2765 for (int i = 0; i < th.length; i++) { 2766 h.put(th[i].type, th[i].cdata); 2767 } 2768 } 2769 return h; 2770 } 2771 /** Returns the alias or, if it is null, the table name. */ 2772 public String getAlias() { 2773 return (alias != null) ? alias : name; 2774 } 2775 public String toString() { 2776 return (schema == null) ? 2777 name : 2778 schema + "." + name; 2779 } 2780 public Table find(String seekAlias) { 2781 return seekAlias.equals(name) ? this : 2782 (alias != null) && seekAlias.equals(alias) ? this : 2783 null; 2784 } 2785 public boolean equals(Object o) { 2786 if (true) return (this == o); 2787 // Following code is disabled to resolve problem of disappearing 2788 // schema elements from tree panel. 2789 if (o instanceof Table) { 2790 Table that = (Table) o; 2791 return this.name.equals(that.name) && 2792 Util.equals(this.alias, that.alias) && 2793 Util.equals(this.schema, that.schema); 2794 } else { 2795 return false; 2796 } 2797 } 2798 public int hashCode() { 2799 return toString().hashCode(); 2800 } 2801 public String getFilter() { 2802 return (filter == null) ? null : filter.cdata; 2803 } 2804 public AggExclude[] getAggExcludes() { 2805 return aggExcludes; 2806 } 2807 public AggTable[] getAggTables() { 2808 return aggTables; 2809 } 2810 public java.util.Map<String,String> getHintMap() { 2811 if (hintMap == null) { 2812 hintMap = buildHintMap(this.tableHints); 2813 } 2814 return hintMap; 2815 } 2816 // END pass-through code block --- 2817 } 2818 2819 /** 2820 * Dialect-specific table optimization hints. 2821 */ 2822 public static class Hint extends org.eigenbase.xom.ElementDef 2823 { 2824 public Hint() 2825 { 2826 } 2827 2828 public Hint(org.eigenbase.xom.DOMWrapper _def) 2829 throws org.eigenbase.xom.XOMException 2830 { 2831 try { 2832 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2833 type = (String)_parser.getAttribute("type", "String", null, null, true); 2834 cdata = _parser.getText(); 2835 } catch(org.eigenbase.xom.XOMException _ex) { 2836 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2837 } 2838 } 2839 2840 public String type; // required attribute 2841 2842 public String cdata; // All text goes here 2843 public String getName() 2844 { 2845 return "Hint"; 2846 } 2847 2848 public void display(java.io.PrintWriter _out, int _indent) 2849 { 2850 _out.println(getName()); 2851 displayAttribute(_out, "type", type, _indent+1); 2852 displayString(_out, "cdata", cdata, _indent+1); 2853 } 2854 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2855 { 2856 _out.beginTag("Hint", new org.eigenbase.xom.XMLAttrVector() 2857 .add("type", type) 2858 ); 2859 _out.cdata(cdata); 2860 _out.endTag("Hint"); 2861 } 2862 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2863 { 2864 Hint _cother = (Hint)_other; 2865 boolean _diff = displayAttributeDiff("type", type, _cother.type, _out, _indent+1); 2866 _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1); 2867 return _diff; 2868 } 2869 } 2870 2871 public static class InlineTable extends Relation 2872 { 2873 public InlineTable() 2874 { 2875 } 2876 2877 public InlineTable(org.eigenbase.xom.DOMWrapper _def) 2878 throws org.eigenbase.xom.XOMException 2879 { 2880 try { 2881 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2882 alias = (String)_parser.getAttribute("alias", "String", null, null, false); 2883 columnDefs = (ColumnDefs)_parser.getElement(ColumnDefs.class, true); 2884 rows = (Rows)_parser.getElement(Rows.class, true); 2885 } catch(org.eigenbase.xom.XOMException _ex) { 2886 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2887 } 2888 } 2889 2890 public String alias; // optional attribute 2891 2892 public ColumnDefs columnDefs; //required element 2893 public Rows rows; //required element 2894 2895 public String getName() 2896 { 2897 return "InlineTable"; 2898 } 2899 2900 public void display(java.io.PrintWriter _out, int _indent) 2901 { 2902 _out.println(getName()); 2903 displayAttribute(_out, "alias", alias, _indent+1); 2904 displayElement(_out, "columnDefs", (org.eigenbase.xom.ElementDef) columnDefs, _indent+1); 2905 displayElement(_out, "rows", (org.eigenbase.xom.ElementDef) rows, _indent+1); 2906 } 2907 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2908 { 2909 _out.beginTag("InlineTable", new org.eigenbase.xom.XMLAttrVector() 2910 .add("alias", alias) 2911 ); 2912 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) columnDefs); 2913 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) rows); 2914 _out.endTag("InlineTable"); 2915 } 2916 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 2917 { 2918 InlineTable _cother = (InlineTable)_other; 2919 boolean _diff = displayAttributeDiff("alias", alias, _cother.alias, _out, _indent+1); 2920 _diff = _diff && displayElementDiff("columnDefs", columnDefs, _cother.columnDefs, _out, _indent+1); 2921 _diff = _diff && displayElementDiff("rows", rows, _cother.rows, _out, _indent+1); 2922 return _diff; 2923 } 2924 // BEGIN pass-through code block --- 2925/** Convenience constructor. */ 2926 public InlineTable(InlineTable inlineTable) { 2927 this.alias = inlineTable.alias; 2928 this.columnDefs = new ColumnDefs(); 2929 this.columnDefs.array = inlineTable.columnDefs.array.clone(); 2930 this.rows = new Rows(); 2931 this.rows.array = inlineTable.rows.array.clone(); 2932 } 2933 public String getAlias() { 2934 return alias; 2935 } 2936 public String toString() { 2937 return "<inline data>"; 2938 } 2939 public InlineTable find(String seekAlias) { 2940 return seekAlias.equals(this.alias) ? this : null; 2941 } 2942 public boolean equals(Object o) { 2943 if (o instanceof InlineTable) { 2944 InlineTable that = (InlineTable) o; 2945 return this.alias.equals(that.alias); 2946 } else { 2947 return false; 2948 } 2949 } 2950 public int hashCode() { 2951 return toString().hashCode(); 2952 } 2953 // END pass-through code block --- 2954 } 2955 2956 /** 2957 * Holder for an array of ColumnDef elements 2958 */ 2959 public static class ColumnDefs extends org.eigenbase.xom.ElementDef 2960 { 2961 public ColumnDefs() 2962 { 2963 } 2964 2965 public ColumnDefs(org.eigenbase.xom.DOMWrapper _def) 2966 throws org.eigenbase.xom.XOMException 2967 { 2968 try { 2969 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 2970 org.eigenbase.xom.NodeDef[] _tempArray; 2971 _tempArray = _parser.getArray(ColumnDef.class, 0, 0); 2972 array = new ColumnDef[_tempArray.length]; 2973 for (int _i = 0; _i < array.length; _i++) 2974 array[_i] = (ColumnDef)_tempArray[_i]; 2975 } catch(org.eigenbase.xom.XOMException _ex) { 2976 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 2977 } 2978 } 2979 2980 2981 public ColumnDef[] array; //optional array 2982 2983 public String getName() 2984 { 2985 return "ColumnDefs"; 2986 } 2987 2988 public void display(java.io.PrintWriter _out, int _indent) 2989 { 2990 _out.println(getName()); 2991 displayElementArray(_out, "array", array, _indent+1); 2992 } 2993 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 2994 { 2995 _out.beginTag("ColumnDefs", new org.eigenbase.xom.XMLAttrVector() 2996 ); 2997 displayXMLElementArray(_out, array); 2998 _out.endTag("ColumnDefs"); 2999 } 3000 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3001 { 3002 ColumnDefs _cother = (ColumnDefs)_other; 3003 boolean _diff = displayElementArrayDiff("array", array, _cother.array, _out, _indent+1); 3004 return _diff; 3005 } 3006 } 3007 3008 /** 3009 * Column definition for an inline table. 3010 */ 3011 public static class ColumnDef extends org.eigenbase.xom.ElementDef 3012 { 3013 public ColumnDef() 3014 { 3015 } 3016 3017 public ColumnDef(org.eigenbase.xom.DOMWrapper _def) 3018 throws org.eigenbase.xom.XOMException 3019 { 3020 try { 3021 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3022 name = (String)_parser.getAttribute("name", "String", null, null, true); 3023 type = (String)_parser.getAttribute("type", "String", null, _type_values, true); 3024 } catch(org.eigenbase.xom.XOMException _ex) { 3025 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3026 } 3027 } 3028 3029 public String name; // required attribute 3030 /** Allowable values for {@link #type}. */ 3031 public static final String[] _type_values = {"String", "Numeric", "Integer", "Boolean", "Date", "Time", "Timestamp"}; 3032 public String type; // required attribute 3033 3034 3035 public String getName() 3036 { 3037 return "ColumnDef"; 3038 } 3039 3040 public void display(java.io.PrintWriter _out, int _indent) 3041 { 3042 _out.println(getName()); 3043 displayAttribute(_out, "name", name, _indent+1); 3044 displayAttribute(_out, "type", type, _indent+1); 3045 } 3046 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3047 { 3048 _out.beginTag("ColumnDef", new org.eigenbase.xom.XMLAttrVector() 3049 .add("name", name) 3050 .add("type", type) 3051 ); 3052 _out.endTag("ColumnDef"); 3053 } 3054 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3055 { 3056 ColumnDef _cother = (ColumnDef)_other; 3057 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 3058 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1); 3059 return _diff; 3060 } 3061 } 3062 3063 /** 3064 * Holder for an array of Row elements 3065 */ 3066 public static class Rows extends org.eigenbase.xom.ElementDef 3067 { 3068 public Rows() 3069 { 3070 } 3071 3072 public Rows(org.eigenbase.xom.DOMWrapper _def) 3073 throws org.eigenbase.xom.XOMException 3074 { 3075 try { 3076 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3077 org.eigenbase.xom.NodeDef[] _tempArray; 3078 _tempArray = _parser.getArray(Row.class, 0, 0); 3079 array = new Row[_tempArray.length]; 3080 for (int _i = 0; _i < array.length; _i++) 3081 array[_i] = (Row)_tempArray[_i]; 3082 } catch(org.eigenbase.xom.XOMException _ex) { 3083 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3084 } 3085 } 3086 3087 3088 public Row[] array; //optional array 3089 3090 public String getName() 3091 { 3092 return "Rows"; 3093 } 3094 3095 public void display(java.io.PrintWriter _out, int _indent) 3096 { 3097 _out.println(getName()); 3098 displayElementArray(_out, "array", array, _indent+1); 3099 } 3100 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3101 { 3102 _out.beginTag("Rows", new org.eigenbase.xom.XMLAttrVector() 3103 ); 3104 displayXMLElementArray(_out, array); 3105 _out.endTag("Rows"); 3106 } 3107 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3108 { 3109 Rows _cother = (Rows)_other; 3110 boolean _diff = displayElementArrayDiff("array", array, _cother.array, _out, _indent+1); 3111 return _diff; 3112 } 3113 } 3114 3115 /** 3116 * Row definition for an inline table. 3117 * Must have one Column for each ColumnDef in the InlineTable. 3118 */ 3119 public static class Row extends org.eigenbase.xom.ElementDef 3120 { 3121 public Row() 3122 { 3123 } 3124 3125 public Row(org.eigenbase.xom.DOMWrapper _def) 3126 throws org.eigenbase.xom.XOMException 3127 { 3128 try { 3129 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3130 org.eigenbase.xom.NodeDef[] _tempArray; 3131 _tempArray = _parser.getArray(Value.class, 0, 0); 3132 values = new Value[_tempArray.length]; 3133 for (int _i = 0; _i < values.length; _i++) 3134 values[_i] = (Value)_tempArray[_i]; 3135 } catch(org.eigenbase.xom.XOMException _ex) { 3136 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3137 } 3138 } 3139 3140 3141 public Value[] values; //optional array 3142 3143 public String getName() 3144 { 3145 return "Row"; 3146 } 3147 3148 public void display(java.io.PrintWriter _out, int _indent) 3149 { 3150 _out.println(getName()); 3151 displayElementArray(_out, "values", values, _indent+1); 3152 } 3153 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3154 { 3155 _out.beginTag("Row", new org.eigenbase.xom.XMLAttrVector() 3156 ); 3157 displayXMLElementArray(_out, values); 3158 _out.endTag("Row"); 3159 } 3160 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3161 { 3162 Row _cother = (Row)_other; 3163 boolean _diff = displayElementArrayDiff("values", values, _cother.values, _out, _indent+1); 3164 return _diff; 3165 } 3166 } 3167 3168 /** 3169 * Column value for an inline table. 3170 * The CDATA holds the value of the column. 3171 */ 3172 public static class Value extends org.eigenbase.xom.ElementDef 3173 { 3174 public Value() 3175 { 3176 } 3177 3178 public Value(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 column = (String)_parser.getAttribute("column", "String", null, null, true); 3184 cdata = _parser.getText(); 3185 } catch(org.eigenbase.xom.XOMException _ex) { 3186 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3187 } 3188 } 3189 3190 public String column; // required attribute 3191 3192 public String cdata; // All text goes here 3193 public String getName() 3194 { 3195 return "Value"; 3196 } 3197 3198 public void display(java.io.PrintWriter _out, int _indent) 3199 { 3200 _out.println(getName()); 3201 displayAttribute(_out, "column", column, _indent+1); 3202 displayString(_out, "cdata", cdata, _indent+1); 3203 } 3204 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3205 { 3206 _out.beginTag("Value", new org.eigenbase.xom.XMLAttrVector() 3207 .add("column", column) 3208 ); 3209 _out.cdata(cdata); 3210 _out.endTag("Value"); 3211 } 3212 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3213 { 3214 Value _cother = (Value)_other; 3215 boolean _diff = displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 3216 _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1); 3217 return _diff; 3218 } 3219 } 3220 3221 /** 3222 * A definition of an aggregate table for a base fact table. 3223 * This aggregate table must be in the same schema as the 3224 * base fact table. 3225 */ 3226 public static abstract class AggTable extends org.eigenbase.xom.ElementDef 3227 { 3228 public AggTable() 3229 { 3230 } 3231 3232 public AggTable(org.eigenbase.xom.DOMWrapper _def) 3233 throws org.eigenbase.xom.XOMException 3234 { 3235 try { 3236 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3237 org.eigenbase.xom.NodeDef[] _tempArray; 3238 ignorecase = (Boolean)_parser.getAttribute("ignorecase", "Boolean", "true", null, false); 3239 factcount = (AggFactCount)_parser.getElement(AggFactCount.class, true); 3240 _tempArray = _parser.getArray(AggIgnoreColumn.class, 0, 0); 3241 ignoreColumns = new AggIgnoreColumn[_tempArray.length]; 3242 for (int _i = 0; _i < ignoreColumns.length; _i++) 3243 ignoreColumns[_i] = (AggIgnoreColumn)_tempArray[_i]; 3244 _tempArray = _parser.getArray(AggForeignKey.class, 0, 0); 3245 foreignKeys = new AggForeignKey[_tempArray.length]; 3246 for (int _i = 0; _i < foreignKeys.length; _i++) 3247 foreignKeys[_i] = (AggForeignKey)_tempArray[_i]; 3248 _tempArray = _parser.getArray(AggMeasure.class, 0, 0); 3249 measures = new AggMeasure[_tempArray.length]; 3250 for (int _i = 0; _i < measures.length; _i++) 3251 measures[_i] = (AggMeasure)_tempArray[_i]; 3252 _tempArray = _parser.getArray(AggLevel.class, 0, 0); 3253 levels = new AggLevel[_tempArray.length]; 3254 for (int _i = 0; _i < levels.length; _i++) 3255 levels[_i] = (AggLevel)_tempArray[_i]; 3256 } catch(org.eigenbase.xom.XOMException _ex) { 3257 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3258 } 3259 } 3260 3261 public Boolean ignorecase; // attribute default: true 3262 3263 /** 3264 * What does the fact_count column look like. 3265 */ 3266 public AggFactCount factcount; //required element 3267 public AggIgnoreColumn[] ignoreColumns; //optional array 3268 public AggForeignKey[] foreignKeys; //optional array 3269 public AggMeasure[] measures; //optional array 3270 public AggLevel[] levels; //optional array 3271 3272 public String getName() 3273 { 3274 return "AggTable"; 3275 } 3276 3277 public void display(java.io.PrintWriter _out, int _indent) 3278 { 3279 _out.println(getName()); 3280 displayAttribute(_out, "ignorecase", ignorecase, _indent+1); 3281 displayElement(_out, "factcount", (org.eigenbase.xom.ElementDef) factcount, _indent+1); 3282 displayElementArray(_out, "ignoreColumns", ignoreColumns, _indent+1); 3283 displayElementArray(_out, "foreignKeys", foreignKeys, _indent+1); 3284 displayElementArray(_out, "measures", measures, _indent+1); 3285 displayElementArray(_out, "levels", levels, _indent+1); 3286 } 3287 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3288 { 3289 _out.beginTag("AggTable", new org.eigenbase.xom.XMLAttrVector() 3290 .add("ignorecase", ignorecase) 3291 ); 3292 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) factcount); 3293 displayXMLElementArray(_out, ignoreColumns); 3294 displayXMLElementArray(_out, foreignKeys); 3295 displayXMLElementArray(_out, measures); 3296 displayXMLElementArray(_out, levels); 3297 _out.endTag("AggTable"); 3298 } 3299 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3300 { 3301 AggTable _cother = (AggTable)_other; 3302 boolean _diff = displayAttributeDiff("ignorecase", ignorecase, _cother.ignorecase, _out, _indent+1); 3303 _diff = _diff && displayElementDiff("factcount", factcount, _cother.factcount, _out, _indent+1); 3304 _diff = _diff && displayElementArrayDiff("ignoreColumns", ignoreColumns, _cother.ignoreColumns, _out, _indent+1); 3305 _diff = _diff && displayElementArrayDiff("foreignKeys", foreignKeys, _cother.foreignKeys, _out, _indent+1); 3306 _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1); 3307 _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1); 3308 return _diff; 3309 } 3310 // BEGIN pass-through code block --- 3311public boolean isIgnoreCase() { 3312 return ignorecase.booleanValue(); 3313 } 3314 public AggFactCount getAggFactCount() { 3315 return factcount; 3316 } 3317 public AggIgnoreColumn[] getAggIgnoreColumns() { 3318 return ignoreColumns; 3319 } 3320 public AggForeignKey[] getAggForeignKeys() { 3321 return foreignKeys; 3322 } 3323 public AggMeasure[] getAggMeasures() { 3324 return measures; 3325 } 3326 public AggLevel[] getAggLevels() { 3327 return levels; 3328 } 3329 // END pass-through code block --- 3330 } 3331 3332 public static class AggName extends AggTable 3333 { 3334 public AggName() 3335 { 3336 } 3337 3338 public AggName(org.eigenbase.xom.DOMWrapper _def) 3339 throws org.eigenbase.xom.XOMException 3340 { 3341 try { 3342 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3343 org.eigenbase.xom.NodeDef[] _tempArray; 3344 name = (String)_parser.getAttribute("name", "String", null, null, true); 3345 approxRowCount = (String)_parser.getAttribute("approxRowCount", "String", null, null, false); 3346 ignorecase = (Boolean)_parser.getAttribute("ignorecase", "Boolean", "true", null, false); 3347 factcount = (AggFactCount)_parser.getElement(AggFactCount.class, true); 3348 _tempArray = _parser.getArray(AggIgnoreColumn.class, 0, 0); 3349 ignoreColumns = new AggIgnoreColumn[_tempArray.length]; 3350 for (int _i = 0; _i < ignoreColumns.length; _i++) 3351 ignoreColumns[_i] = (AggIgnoreColumn)_tempArray[_i]; 3352 _tempArray = _parser.getArray(AggForeignKey.class, 0, 0); 3353 foreignKeys = new AggForeignKey[_tempArray.length]; 3354 for (int _i = 0; _i < foreignKeys.length; _i++) 3355 foreignKeys[_i] = (AggForeignKey)_tempArray[_i]; 3356 _tempArray = _parser.getArray(AggMeasure.class, 0, 0); 3357 measures = new AggMeasure[_tempArray.length]; 3358 for (int _i = 0; _i < measures.length; _i++) 3359 measures[_i] = (AggMeasure)_tempArray[_i]; 3360 _tempArray = _parser.getArray(AggLevel.class, 0, 0); 3361 levels = new AggLevel[_tempArray.length]; 3362 for (int _i = 0; _i < levels.length; _i++) 3363 levels[_i] = (AggLevel)_tempArray[_i]; 3364 } catch(org.eigenbase.xom.XOMException _ex) { 3365 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3366 } 3367 } 3368 3369 public String name; // required attribute 3370 public String approxRowCount; // optional attribute 3371 3372 3373 public String getName() 3374 { 3375 return "AggName"; 3376 } 3377 3378 public void display(java.io.PrintWriter _out, int _indent) 3379 { 3380 _out.println(getName()); 3381 displayAttribute(_out, "name", name, _indent+1); 3382 displayAttribute(_out, "approxRowCount", approxRowCount, _indent+1); 3383 displayAttribute(_out, "ignorecase", ignorecase, _indent+1); 3384 displayElement(_out, "factcount", (org.eigenbase.xom.ElementDef) factcount, _indent+1); 3385 displayElementArray(_out, "ignoreColumns", ignoreColumns, _indent+1); 3386 displayElementArray(_out, "foreignKeys", foreignKeys, _indent+1); 3387 displayElementArray(_out, "measures", measures, _indent+1); 3388 displayElementArray(_out, "levels", levels, _indent+1); 3389 } 3390 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3391 { 3392 _out.beginTag("AggName", new org.eigenbase.xom.XMLAttrVector() 3393 .add("name", name) 3394 .add("approxRowCount", approxRowCount) 3395 .add("ignorecase", ignorecase) 3396 ); 3397 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) factcount); 3398 displayXMLElementArray(_out, ignoreColumns); 3399 displayXMLElementArray(_out, foreignKeys); 3400 displayXMLElementArray(_out, measures); 3401 displayXMLElementArray(_out, levels); 3402 _out.endTag("AggName"); 3403 } 3404 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3405 { 3406 AggName _cother = (AggName)_other; 3407 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 3408 _diff = _diff && displayAttributeDiff("approxRowCount", approxRowCount, _cother.approxRowCount, _out, _indent+1); 3409 _diff = _diff && displayElementDiff("factcount", factcount, _cother.factcount, _out, _indent+1); 3410 _diff = _diff && displayElementArrayDiff("ignoreColumns", ignoreColumns, _cother.ignoreColumns, _out, _indent+1); 3411 _diff = _diff && displayElementArrayDiff("foreignKeys", foreignKeys, _cother.foreignKeys, _out, _indent+1); 3412 _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1); 3413 _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1); 3414 return _diff; 3415 } 3416 // BEGIN pass-through code block --- 3417public String getNameAttribute() { 3418 return name; 3419 } 3420 public String getApproxRowCountAttribute() { 3421 return approxRowCount; 3422 } 3423 // END pass-through code block --- 3424 } 3425 3426 public static class AggPattern extends AggTable 3427 { 3428 public AggPattern() 3429 { 3430 } 3431 3432 public AggPattern(org.eigenbase.xom.DOMWrapper _def) 3433 throws org.eigenbase.xom.XOMException 3434 { 3435 try { 3436 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3437 org.eigenbase.xom.NodeDef[] _tempArray; 3438 pattern = (String)_parser.getAttribute("pattern", "String", null, null, true); 3439 ignorecase = (Boolean)_parser.getAttribute("ignorecase", "Boolean", "true", null, false); 3440 factcount = (AggFactCount)_parser.getElement(AggFactCount.class, true); 3441 _tempArray = _parser.getArray(AggIgnoreColumn.class, 0, 0); 3442 ignoreColumns = new AggIgnoreColumn[_tempArray.length]; 3443 for (int _i = 0; _i < ignoreColumns.length; _i++) 3444 ignoreColumns[_i] = (AggIgnoreColumn)_tempArray[_i]; 3445 _tempArray = _parser.getArray(AggForeignKey.class, 0, 0); 3446 foreignKeys = new AggForeignKey[_tempArray.length]; 3447 for (int _i = 0; _i < foreignKeys.length; _i++) 3448 foreignKeys[_i] = (AggForeignKey)_tempArray[_i]; 3449 _tempArray = _parser.getArray(AggMeasure.class, 0, 0); 3450 measures = new AggMeasure[_tempArray.length]; 3451 for (int _i = 0; _i < measures.length; _i++) 3452 measures[_i] = (AggMeasure)_tempArray[_i]; 3453 _tempArray = _parser.getArray(AggLevel.class, 0, 0); 3454 levels = new AggLevel[_tempArray.length]; 3455 for (int _i = 0; _i < levels.length; _i++) 3456 levels[_i] = (AggLevel)_tempArray[_i]; 3457 _tempArray = _parser.getArray(AggExclude.class, 0, 0); 3458 excludes = new AggExclude[_tempArray.length]; 3459 for (int _i = 0; _i < excludes.length; _i++) 3460 excludes[_i] = (AggExclude)_tempArray[_i]; 3461 } catch(org.eigenbase.xom.XOMException _ex) { 3462 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3463 } 3464 } 3465 3466 public String pattern; // required attribute 3467 3468 public AggExclude[] excludes; //optional array 3469 3470 public String getName() 3471 { 3472 return "AggPattern"; 3473 } 3474 3475 public void display(java.io.PrintWriter _out, int _indent) 3476 { 3477 _out.println(getName()); 3478 displayAttribute(_out, "pattern", pattern, _indent+1); 3479 displayAttribute(_out, "ignorecase", ignorecase, _indent+1); 3480 displayElement(_out, "factcount", (org.eigenbase.xom.ElementDef) factcount, _indent+1); 3481 displayElementArray(_out, "ignoreColumns", ignoreColumns, _indent+1); 3482 displayElementArray(_out, "foreignKeys", foreignKeys, _indent+1); 3483 displayElementArray(_out, "measures", measures, _indent+1); 3484 displayElementArray(_out, "levels", levels, _indent+1); 3485 displayElementArray(_out, "excludes", excludes, _indent+1); 3486 } 3487 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3488 { 3489 _out.beginTag("AggPattern", new org.eigenbase.xom.XMLAttrVector() 3490 .add("pattern", pattern) 3491 .add("ignorecase", ignorecase) 3492 ); 3493 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) factcount); 3494 displayXMLElementArray(_out, ignoreColumns); 3495 displayXMLElementArray(_out, foreignKeys); 3496 displayXMLElementArray(_out, measures); 3497 displayXMLElementArray(_out, levels); 3498 displayXMLElementArray(_out, excludes); 3499 _out.endTag("AggPattern"); 3500 } 3501 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3502 { 3503 AggPattern _cother = (AggPattern)_other; 3504 boolean _diff = displayAttributeDiff("pattern", pattern, _cother.pattern, _out, _indent+1); 3505 _diff = _diff && displayElementDiff("factcount", factcount, _cother.factcount, _out, _indent+1); 3506 _diff = _diff && displayElementArrayDiff("ignoreColumns", ignoreColumns, _cother.ignoreColumns, _out, _indent+1); 3507 _diff = _diff && displayElementArrayDiff("foreignKeys", foreignKeys, _cother.foreignKeys, _out, _indent+1); 3508 _diff = _diff && displayElementArrayDiff("measures", measures, _cother.measures, _out, _indent+1); 3509 _diff = _diff && displayElementArrayDiff("levels", levels, _cother.levels, _out, _indent+1); 3510 _diff = _diff && displayElementArrayDiff("excludes", excludes, _cother.excludes, _out, _indent+1); 3511 return _diff; 3512 } 3513 // BEGIN pass-through code block --- 3514public String getPattern() { 3515 return pattern; 3516 } 3517 public AggExclude[] getAggExcludes() { 3518 return excludes; 3519 } 3520 // END pass-through code block --- 3521 } 3522 3523 public static class AggExclude extends org.eigenbase.xom.ElementDef 3524 { 3525 public AggExclude() 3526 { 3527 } 3528 3529 public AggExclude(org.eigenbase.xom.DOMWrapper _def) 3530 throws org.eigenbase.xom.XOMException 3531 { 3532 try { 3533 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3534 pattern = (String)_parser.getAttribute("pattern", "String", null, null, false); 3535 name = (String)_parser.getAttribute("name", "String", null, null, false); 3536 ignorecase = (Boolean)_parser.getAttribute("ignorecase", "Boolean", "true", null, false); 3537 } catch(org.eigenbase.xom.XOMException _ex) { 3538 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3539 } 3540 } 3541 3542 public String pattern; // optional attribute 3543 public String name; // optional attribute 3544 public Boolean ignorecase; // attribute default: true 3545 3546 3547 public String getName() 3548 { 3549 return "AggExclude"; 3550 } 3551 3552 public void display(java.io.PrintWriter _out, int _indent) 3553 { 3554 _out.println(getName()); 3555 displayAttribute(_out, "pattern", pattern, _indent+1); 3556 displayAttribute(_out, "name", name, _indent+1); 3557 displayAttribute(_out, "ignorecase", ignorecase, _indent+1); 3558 } 3559 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3560 { 3561 _out.beginTag("AggExclude", new org.eigenbase.xom.XMLAttrVector() 3562 .add("pattern", pattern) 3563 .add("name", name) 3564 .add("ignorecase", ignorecase) 3565 ); 3566 _out.endTag("AggExclude"); 3567 } 3568 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3569 { 3570 AggExclude _cother = (AggExclude)_other; 3571 boolean _diff = displayAttributeDiff("pattern", pattern, _cother.pattern, _out, _indent+1); 3572 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 3573 _diff = _diff && displayAttributeDiff("ignorecase", ignorecase, _cother.ignorecase, _out, _indent+1); 3574 return _diff; 3575 } 3576 // BEGIN pass-through code block --- 3577public String getNameAttribute() { 3578 return name; 3579 } 3580 public String getPattern() { 3581 return pattern; 3582 } 3583 public boolean isIgnoreCase() { 3584 return ignorecase.booleanValue(); 3585 } 3586 // END pass-through code block --- 3587 } 3588 3589 public static abstract class AggColumnName extends org.eigenbase.xom.ElementDef 3590 { 3591 public AggColumnName() 3592 { 3593 } 3594 3595 public AggColumnName(org.eigenbase.xom.DOMWrapper _def) 3596 throws org.eigenbase.xom.XOMException 3597 { 3598 try { 3599 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3600 column = (String)_parser.getAttribute("column", "String", null, null, true); 3601 } catch(org.eigenbase.xom.XOMException _ex) { 3602 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3603 } 3604 } 3605 3606 public String column; // required attribute 3607 3608 3609 public String getName() 3610 { 3611 return "AggColumnName"; 3612 } 3613 3614 public void display(java.io.PrintWriter _out, int _indent) 3615 { 3616 _out.println(getName()); 3617 displayAttribute(_out, "column", column, _indent+1); 3618 } 3619 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3620 { 3621 _out.beginTag("AggColumnName", new org.eigenbase.xom.XMLAttrVector() 3622 .add("column", column) 3623 ); 3624 _out.endTag("AggColumnName"); 3625 } 3626 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3627 { 3628 AggColumnName _cother = (AggColumnName)_other; 3629 boolean _diff = displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 3630 return _diff; 3631 } 3632 // BEGIN pass-through code block --- 3633public String getColumnName() { 3634 return column; 3635 } 3636 // END pass-through code block --- 3637 } 3638 3639 public static class AggFactCount extends AggColumnName 3640 { 3641 public AggFactCount() 3642 { 3643 } 3644 3645 public AggFactCount(org.eigenbase.xom.DOMWrapper _def) 3646 throws org.eigenbase.xom.XOMException 3647 { 3648 try { 3649 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3650 column = (String)_parser.getAttribute("column", "String", null, null, true); 3651 } catch(org.eigenbase.xom.XOMException _ex) { 3652 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3653 } 3654 } 3655 3656 3657 3658 public String getName() 3659 { 3660 return "AggFactCount"; 3661 } 3662 3663 public void display(java.io.PrintWriter _out, int _indent) 3664 { 3665 _out.println(getName()); 3666 displayAttribute(_out, "column", column, _indent+1); 3667 } 3668 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3669 { 3670 _out.beginTag("AggFactCount", new org.eigenbase.xom.XMLAttrVector() 3671 .add("column", column) 3672 ); 3673 _out.endTag("AggFactCount"); 3674 } 3675 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3676 { 3677 AggFactCount _cother = (AggFactCount)_other; 3678 return true; 3679 } 3680 } 3681 3682 public static class AggIgnoreColumn extends AggColumnName 3683 { 3684 public AggIgnoreColumn() 3685 { 3686 } 3687 3688 public AggIgnoreColumn(org.eigenbase.xom.DOMWrapper _def) 3689 throws org.eigenbase.xom.XOMException 3690 { 3691 try { 3692 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3693 column = (String)_parser.getAttribute("column", "String", null, null, true); 3694 } catch(org.eigenbase.xom.XOMException _ex) { 3695 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3696 } 3697 } 3698 3699 3700 3701 public String getName() 3702 { 3703 return "AggIgnoreColumn"; 3704 } 3705 3706 public void display(java.io.PrintWriter _out, int _indent) 3707 { 3708 _out.println(getName()); 3709 displayAttribute(_out, "column", column, _indent+1); 3710 } 3711 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3712 { 3713 _out.beginTag("AggIgnoreColumn", new org.eigenbase.xom.XMLAttrVector() 3714 .add("column", column) 3715 ); 3716 _out.endTag("AggIgnoreColumn"); 3717 } 3718 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3719 { 3720 AggIgnoreColumn _cother = (AggIgnoreColumn)_other; 3721 return true; 3722 } 3723 } 3724 3725 /** 3726 * The name of the column mapping from base fact table foreign key 3727 * to aggregate table foreign key. 3728 */ 3729 public static class AggForeignKey extends org.eigenbase.xom.ElementDef 3730 { 3731 public AggForeignKey() 3732 { 3733 } 3734 3735 public AggForeignKey(org.eigenbase.xom.DOMWrapper _def) 3736 throws org.eigenbase.xom.XOMException 3737 { 3738 try { 3739 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3740 factColumn = (String)_parser.getAttribute("factColumn", "String", null, null, true); 3741 aggColumn = (String)_parser.getAttribute("aggColumn", "String", null, null, true); 3742 } catch(org.eigenbase.xom.XOMException _ex) { 3743 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3744 } 3745 } 3746 3747 public String factColumn; // required attribute 3748 public String aggColumn; // required attribute 3749 3750 3751 public String getName() 3752 { 3753 return "AggForeignKey"; 3754 } 3755 3756 public void display(java.io.PrintWriter _out, int _indent) 3757 { 3758 _out.println(getName()); 3759 displayAttribute(_out, "factColumn", factColumn, _indent+1); 3760 displayAttribute(_out, "aggColumn", aggColumn, _indent+1); 3761 } 3762 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3763 { 3764 _out.beginTag("AggForeignKey", new org.eigenbase.xom.XMLAttrVector() 3765 .add("factColumn", factColumn) 3766 .add("aggColumn", aggColumn) 3767 ); 3768 _out.endTag("AggForeignKey"); 3769 } 3770 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3771 { 3772 AggForeignKey _cother = (AggForeignKey)_other; 3773 boolean _diff = displayAttributeDiff("factColumn", factColumn, _cother.factColumn, _out, _indent+1); 3774 _diff = _diff && displayAttributeDiff("aggColumn", aggColumn, _cother.aggColumn, _out, _indent+1); 3775 return _diff; 3776 } 3777 // BEGIN pass-through code block --- 3778public String getFactFKColumnName() { 3779 return factColumn; 3780 } 3781 public String getAggregateFKColumnName() { 3782 return aggColumn; 3783 } 3784 // END pass-through code block --- 3785 } 3786 3787 public static class AggLevel extends org.eigenbase.xom.ElementDef 3788 { 3789 public AggLevel() 3790 { 3791 } 3792 3793 public AggLevel(org.eigenbase.xom.DOMWrapper _def) 3794 throws org.eigenbase.xom.XOMException 3795 { 3796 try { 3797 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3798 column = (String)_parser.getAttribute("column", "String", null, null, true); 3799 name = (String)_parser.getAttribute("name", "String", null, null, true); 3800 collapsed = (Boolean)_parser.getAttribute("collapsed", "Boolean", "true", null, false); 3801 } catch(org.eigenbase.xom.XOMException _ex) { 3802 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3803 } 3804 } 3805 3806 public String column; // required attribute 3807 public String name; // required attribute 3808 public Boolean collapsed; // attribute default: true 3809 3810 3811 public String getName() 3812 { 3813 return "AggLevel"; 3814 } 3815 3816 public void display(java.io.PrintWriter _out, int _indent) 3817 { 3818 _out.println(getName()); 3819 displayAttribute(_out, "column", column, _indent+1); 3820 displayAttribute(_out, "name", name, _indent+1); 3821 displayAttribute(_out, "collapsed", collapsed, _indent+1); 3822 } 3823 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3824 { 3825 _out.beginTag("AggLevel", new org.eigenbase.xom.XMLAttrVector() 3826 .add("column", column) 3827 .add("name", name) 3828 .add("collapsed", collapsed) 3829 ); 3830 _out.endTag("AggLevel"); 3831 } 3832 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3833 { 3834 AggLevel _cother = (AggLevel)_other; 3835 boolean _diff = displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 3836 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 3837 _diff = _diff && displayAttributeDiff("collapsed", collapsed, _cother.collapsed, _out, _indent+1); 3838 return _diff; 3839 } 3840 // BEGIN pass-through code block --- 3841public String getNameAttribute() { 3842 return name; 3843 } 3844 public String getColumnName() { 3845 return column; 3846 } 3847 public boolean isCollapsed() { 3848 return collapsed; 3849 } 3850 // END pass-through code block --- 3851 } 3852 3853 public static class AggMeasure extends org.eigenbase.xom.ElementDef 3854 { 3855 public AggMeasure() 3856 { 3857 } 3858 3859 public AggMeasure(org.eigenbase.xom.DOMWrapper _def) 3860 throws org.eigenbase.xom.XOMException 3861 { 3862 try { 3863 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3864 column = (String)_parser.getAttribute("column", "String", null, null, true); 3865 name = (String)_parser.getAttribute("name", "String", null, null, true); 3866 } catch(org.eigenbase.xom.XOMException _ex) { 3867 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3868 } 3869 } 3870 3871 public String column; // required attribute 3872 public String name; // required attribute 3873 3874 3875 public String getName() 3876 { 3877 return "AggMeasure"; 3878 } 3879 3880 public void display(java.io.PrintWriter _out, int _indent) 3881 { 3882 _out.println(getName()); 3883 displayAttribute(_out, "column", column, _indent+1); 3884 displayAttribute(_out, "name", name, _indent+1); 3885 } 3886 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3887 { 3888 _out.beginTag("AggMeasure", new org.eigenbase.xom.XMLAttrVector() 3889 .add("column", column) 3890 .add("name", name) 3891 ); 3892 _out.endTag("AggMeasure"); 3893 } 3894 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3895 { 3896 AggMeasure _cother = (AggMeasure)_other; 3897 boolean _diff = displayAttributeDiff("column", column, _cother.column, _out, _indent+1); 3898 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 3899 return _diff; 3900 } 3901 // BEGIN pass-through code block --- 3902public String getNameAttribute() { 3903 return name; 3904 } 3905 public String getColumn() { 3906 return column; 3907 } 3908 // END pass-through code block --- 3909 } 3910 3911 public interface Expression extends org.eigenbase.xom.NodeDef 3912 { 3913 // BEGIN pass-through code block --- 3914public abstract String getExpression(SqlQuery query); 3915 public abstract String getGenericExpression(); 3916 public abstract String getTableAlias(); 3917 // END pass-through code block --- 3918 } 3919 3920 public static class Column extends org.eigenbase.xom.ElementDef implements Expression 3921 { 3922 public Column() 3923 { 3924 } 3925 3926 public Column(org.eigenbase.xom.DOMWrapper _def) 3927 throws org.eigenbase.xom.XOMException 3928 { 3929 try { 3930 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 3931 table = (String)_parser.getAttribute("table", "String", null, null, false); 3932 name = (String)_parser.getAttribute("name", "String", null, null, true); 3933 } catch(org.eigenbase.xom.XOMException _ex) { 3934 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 3935 } 3936 } 3937 3938 public String table; // optional attribute 3939 public String name; // required attribute 3940 3941 3942 public String getName() 3943 { 3944 return "Column"; 3945 } 3946 3947 public void display(java.io.PrintWriter _out, int _indent) 3948 { 3949 _out.println(getName()); 3950 displayAttribute(_out, "table", table, _indent+1); 3951 displayAttribute(_out, "name", name, _indent+1); 3952 } 3953 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 3954 { 3955 _out.beginTag("Column", new org.eigenbase.xom.XMLAttrVector() 3956 .add("table", table) 3957 .add("name", name) 3958 ); 3959 _out.endTag("Column"); 3960 } 3961 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 3962 { 3963 Column _cother = (Column)_other; 3964 boolean _diff = displayAttributeDiff("table", table, _cother.table, _out, _indent+1); 3965 _diff = _diff && displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 3966 return _diff; 3967 } 3968 // BEGIN pass-through code block --- 3969/** Convenience constructor. */ 3970 public Column(String table, String name) { 3971 this(); 3972 Util.assertTrue(name != null); 3973 this.table = table; 3974 this.name = name; 3975 } 3976 3977 public String getExpression(SqlQuery query) { 3978 return query.getDialect().quoteIdentifier(table, name); 3979 } 3980 3981 public String getGenericExpression() { 3982 if (table == null) { 3983 return name; 3984 } else { 3985 return table + "." + name; 3986 } 3987 } 3988 3989 public String getColumnName() { 3990 return name; 3991 } 3992 public String getTableAlias() { 3993 return table; 3994 } 3995 public int hashCode() { 3996 return name.hashCode() ^ (table==null ? 0 : table.hashCode()); 3997 } 3998 3999 public boolean equals(Object obj) { 4000 if (!(obj instanceof Column)) { 4001 return false; 4002 } 4003 Column that = (Column) obj; 4004 return this.name.equals(that.name) && 4005 Util.equals(this.table, that.table); 4006 } 4007 // END pass-through code block --- 4008 } 4009 4010 /** 4011 * A collection of SQL expressions, one per dialect. 4012 */ 4013 public static abstract class ExpressionView extends org.eigenbase.xom.ElementDef implements Expression 4014 { 4015 public ExpressionView() 4016 { 4017 } 4018 4019 public ExpressionView(org.eigenbase.xom.DOMWrapper _def) 4020 throws org.eigenbase.xom.XOMException 4021 { 4022 try { 4023 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4024 org.eigenbase.xom.NodeDef[] _tempArray; 4025 _tempArray = _parser.getArray(SQL.class, 1, 0); 4026 expressions = new SQL[_tempArray.length]; 4027 for (int _i = 0; _i < expressions.length; _i++) 4028 expressions[_i] = (SQL)_tempArray[_i]; 4029 } catch(org.eigenbase.xom.XOMException _ex) { 4030 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4031 } 4032 } 4033 4034 4035 public SQL[] expressions; //min 1 4036 4037 public String getName() 4038 { 4039 return "ExpressionView"; 4040 } 4041 4042 public void display(java.io.PrintWriter _out, int _indent) 4043 { 4044 _out.println(getName()); 4045 displayElementArray(_out, "expressions", expressions, _indent+1); 4046 } 4047 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4048 { 4049 _out.beginTag("ExpressionView", new org.eigenbase.xom.XMLAttrVector() 4050 ); 4051 displayXMLElementArray(_out, expressions); 4052 _out.endTag("ExpressionView"); 4053 } 4054 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4055 { 4056 ExpressionView _cother = (ExpressionView)_other; 4057 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4058 return _diff; 4059 } 4060 // BEGIN pass-through code block --- 4061public String toString() { 4062 return expressions[0].cdata; 4063 } 4064 4065 public String getExpression(SqlQuery query) { 4066 return SQL.toCodeSet(expressions).chooseQuery(query.getDialect()); 4067 } 4068 4069 public String getGenericExpression() { 4070 for (int i = 0; i < expressions.length; i++) { 4071 if (expressions[i].dialect.equals("generic")) { 4072 return expressions[i].cdata; 4073 } 4074 } 4075 return expressions[0].cdata; 4076 } 4077 4078 public String getTableAlias() { 4079 return null; 4080 } 4081 4082 public int hashCode() { 4083 int h = 17; 4084 for (int i = 0; i < expressions.length; i++) { 4085 h = 37 * h + expressions[i].hashCode(); 4086 } 4087 return h; 4088 } 4089 4090 public boolean equals(Object obj) { 4091 if (!(obj instanceof ExpressionView)) { 4092 return false; 4093 } 4094 ExpressionView that = (ExpressionView) obj; 4095 if (this.expressions.length != that.expressions.length) { 4096 return false; 4097 } 4098 for (int i = 0; i < expressions.length; i++) { 4099 if (! this.expressions[i].equals(that.expressions[i])) { 4100 return false; 4101 } 4102 } 4103 return true; 4104 } 4105 // END pass-through code block --- 4106 } 4107 4108 public static class KeyExpression extends ExpressionView 4109 { 4110 public KeyExpression() 4111 { 4112 } 4113 4114 public KeyExpression(org.eigenbase.xom.DOMWrapper _def) 4115 throws org.eigenbase.xom.XOMException 4116 { 4117 try { 4118 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4119 org.eigenbase.xom.NodeDef[] _tempArray; 4120 _tempArray = _parser.getArray(SQL.class, 1, 0); 4121 expressions = new SQL[_tempArray.length]; 4122 for (int _i = 0; _i < expressions.length; _i++) 4123 expressions[_i] = (SQL)_tempArray[_i]; 4124 } catch(org.eigenbase.xom.XOMException _ex) { 4125 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4126 } 4127 } 4128 4129 4130 4131 public String getName() 4132 { 4133 return "KeyExpression"; 4134 } 4135 4136 public void display(java.io.PrintWriter _out, int _indent) 4137 { 4138 _out.println(getName()); 4139 displayElementArray(_out, "expressions", expressions, _indent+1); 4140 } 4141 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4142 { 4143 _out.beginTag("KeyExpression", new org.eigenbase.xom.XMLAttrVector() 4144 ); 4145 displayXMLElementArray(_out, expressions); 4146 _out.endTag("KeyExpression"); 4147 } 4148 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4149 { 4150 KeyExpression _cother = (KeyExpression)_other; 4151 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4152 return _diff; 4153 } 4154 } 4155 4156 public static class ParentExpression extends ExpressionView 4157 { 4158 public ParentExpression() 4159 { 4160 } 4161 4162 public ParentExpression(org.eigenbase.xom.DOMWrapper _def) 4163 throws org.eigenbase.xom.XOMException 4164 { 4165 try { 4166 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4167 org.eigenbase.xom.NodeDef[] _tempArray; 4168 _tempArray = _parser.getArray(SQL.class, 1, 0); 4169 expressions = new SQL[_tempArray.length]; 4170 for (int _i = 0; _i < expressions.length; _i++) 4171 expressions[_i] = (SQL)_tempArray[_i]; 4172 } catch(org.eigenbase.xom.XOMException _ex) { 4173 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4174 } 4175 } 4176 4177 4178 4179 public String getName() 4180 { 4181 return "ParentExpression"; 4182 } 4183 4184 public void display(java.io.PrintWriter _out, int _indent) 4185 { 4186 _out.println(getName()); 4187 displayElementArray(_out, "expressions", expressions, _indent+1); 4188 } 4189 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4190 { 4191 _out.beginTag("ParentExpression", new org.eigenbase.xom.XMLAttrVector() 4192 ); 4193 displayXMLElementArray(_out, expressions); 4194 _out.endTag("ParentExpression"); 4195 } 4196 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4197 { 4198 ParentExpression _cother = (ParentExpression)_other; 4199 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4200 return _diff; 4201 } 4202 } 4203 4204 public static class OrdinalExpression extends ExpressionView 4205 { 4206 public OrdinalExpression() 4207 { 4208 } 4209 4210 public OrdinalExpression(org.eigenbase.xom.DOMWrapper _def) 4211 throws org.eigenbase.xom.XOMException 4212 { 4213 try { 4214 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4215 org.eigenbase.xom.NodeDef[] _tempArray; 4216 _tempArray = _parser.getArray(SQL.class, 1, 0); 4217 expressions = new SQL[_tempArray.length]; 4218 for (int _i = 0; _i < expressions.length; _i++) 4219 expressions[_i] = (SQL)_tempArray[_i]; 4220 } catch(org.eigenbase.xom.XOMException _ex) { 4221 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4222 } 4223 } 4224 4225 4226 4227 public String getName() 4228 { 4229 return "OrdinalExpression"; 4230 } 4231 4232 public void display(java.io.PrintWriter _out, int _indent) 4233 { 4234 _out.println(getName()); 4235 displayElementArray(_out, "expressions", expressions, _indent+1); 4236 } 4237 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4238 { 4239 _out.beginTag("OrdinalExpression", new org.eigenbase.xom.XMLAttrVector() 4240 ); 4241 displayXMLElementArray(_out, expressions); 4242 _out.endTag("OrdinalExpression"); 4243 } 4244 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4245 { 4246 OrdinalExpression _cother = (OrdinalExpression)_other; 4247 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4248 return _diff; 4249 } 4250 } 4251 4252 public static class NameExpression extends ExpressionView 4253 { 4254 public NameExpression() 4255 { 4256 } 4257 4258 public NameExpression(org.eigenbase.xom.DOMWrapper _def) 4259 throws org.eigenbase.xom.XOMException 4260 { 4261 try { 4262 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4263 org.eigenbase.xom.NodeDef[] _tempArray; 4264 _tempArray = _parser.getArray(SQL.class, 1, 0); 4265 expressions = new SQL[_tempArray.length]; 4266 for (int _i = 0; _i < expressions.length; _i++) 4267 expressions[_i] = (SQL)_tempArray[_i]; 4268 } catch(org.eigenbase.xom.XOMException _ex) { 4269 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4270 } 4271 } 4272 4273 4274 4275 public String getName() 4276 { 4277 return "NameExpression"; 4278 } 4279 4280 public void display(java.io.PrintWriter _out, int _indent) 4281 { 4282 _out.println(getName()); 4283 displayElementArray(_out, "expressions", expressions, _indent+1); 4284 } 4285 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4286 { 4287 _out.beginTag("NameExpression", new org.eigenbase.xom.XMLAttrVector() 4288 ); 4289 displayXMLElementArray(_out, expressions); 4290 _out.endTag("NameExpression"); 4291 } 4292 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4293 { 4294 NameExpression _cother = (NameExpression)_other; 4295 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4296 return _diff; 4297 } 4298 } 4299 4300 public static class CaptionExpression extends ExpressionView 4301 { 4302 public CaptionExpression() 4303 { 4304 } 4305 4306 public CaptionExpression(org.eigenbase.xom.DOMWrapper _def) 4307 throws org.eigenbase.xom.XOMException 4308 { 4309 try { 4310 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4311 org.eigenbase.xom.NodeDef[] _tempArray; 4312 _tempArray = _parser.getArray(SQL.class, 1, 0); 4313 expressions = new SQL[_tempArray.length]; 4314 for (int _i = 0; _i < expressions.length; _i++) 4315 expressions[_i] = (SQL)_tempArray[_i]; 4316 } catch(org.eigenbase.xom.XOMException _ex) { 4317 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4318 } 4319 } 4320 4321 4322 4323 public String getName() 4324 { 4325 return "CaptionExpression"; 4326 } 4327 4328 public void display(java.io.PrintWriter _out, int _indent) 4329 { 4330 _out.println(getName()); 4331 displayElementArray(_out, "expressions", expressions, _indent+1); 4332 } 4333 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4334 { 4335 _out.beginTag("CaptionExpression", new org.eigenbase.xom.XMLAttrVector() 4336 ); 4337 displayXMLElementArray(_out, expressions); 4338 _out.endTag("CaptionExpression"); 4339 } 4340 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4341 { 4342 CaptionExpression _cother = (CaptionExpression)_other; 4343 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4344 return _diff; 4345 } 4346 } 4347 4348 public static class MeasureExpression extends ExpressionView 4349 { 4350 public MeasureExpression() 4351 { 4352 } 4353 4354 public MeasureExpression(org.eigenbase.xom.DOMWrapper _def) 4355 throws org.eigenbase.xom.XOMException 4356 { 4357 try { 4358 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4359 org.eigenbase.xom.NodeDef[] _tempArray; 4360 _tempArray = _parser.getArray(SQL.class, 1, 0); 4361 expressions = new SQL[_tempArray.length]; 4362 for (int _i = 0; _i < expressions.length; _i++) 4363 expressions[_i] = (SQL)_tempArray[_i]; 4364 } catch(org.eigenbase.xom.XOMException _ex) { 4365 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4366 } 4367 } 4368 4369 4370 4371 public String getName() 4372 { 4373 return "MeasureExpression"; 4374 } 4375 4376 public void display(java.io.PrintWriter _out, int _indent) 4377 { 4378 _out.println(getName()); 4379 displayElementArray(_out, "expressions", expressions, _indent+1); 4380 } 4381 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4382 { 4383 _out.beginTag("MeasureExpression", new org.eigenbase.xom.XMLAttrVector() 4384 ); 4385 displayXMLElementArray(_out, expressions); 4386 _out.endTag("MeasureExpression"); 4387 } 4388 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4389 { 4390 MeasureExpression _cother = (MeasureExpression)_other; 4391 boolean _diff = displayElementArrayDiff("expressions", expressions, _cother.expressions, _out, _indent+1); 4392 return _diff; 4393 } 4394 } 4395 4396 /** 4397 * A role defines an access-control profile. It has a series of grants 4398 * (or denials) for schema elements. 4399 */ 4400 public static class Role extends org.eigenbase.xom.ElementDef 4401 { 4402 public Role() 4403 { 4404 } 4405 4406 public Role(org.eigenbase.xom.DOMWrapper _def) 4407 throws org.eigenbase.xom.XOMException 4408 { 4409 try { 4410 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4411 org.eigenbase.xom.NodeDef[] _tempArray; 4412 name = (String)_parser.getAttribute("name", "String", null, null, true); 4413 annotations = (Annotations)_parser.getElement(Annotations.class, false); 4414 _tempArray = _parser.getArray(SchemaGrant.class, 0, 0); 4415 schemaGrants = new SchemaGrant[_tempArray.length]; 4416 for (int _i = 0; _i < schemaGrants.length; _i++) 4417 schemaGrants[_i] = (SchemaGrant)_tempArray[_i]; 4418 union = (Union)_parser.getElement(Union.class, false); 4419 } catch(org.eigenbase.xom.XOMException _ex) { 4420 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4421 } 4422 } 4423 4424 public String name; // required attribute 4425 4426 /** 4427 * Contains values of user-defined properties. 4428 */ 4429 public Annotations annotations; //optional element 4430 public SchemaGrant[] schemaGrants; //optional array 4431 public Union union; //optional element 4432 4433 public String getName() 4434 { 4435 return "Role"; 4436 } 4437 4438 public void display(java.io.PrintWriter _out, int _indent) 4439 { 4440 _out.println(getName()); 4441 displayAttribute(_out, "name", name, _indent+1); 4442 displayElement(_out, "annotations", (org.eigenbase.xom.ElementDef) annotations, _indent+1); 4443 displayElementArray(_out, "schemaGrants", schemaGrants, _indent+1); 4444 displayElement(_out, "union", (org.eigenbase.xom.ElementDef) union, _indent+1); 4445 } 4446 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4447 { 4448 _out.beginTag("Role", new org.eigenbase.xom.XMLAttrVector() 4449 .add("name", name) 4450 ); 4451 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) annotations); 4452 displayXMLElementArray(_out, schemaGrants); 4453 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) union); 4454 _out.endTag("Role"); 4455 } 4456 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4457 { 4458 Role _cother = (Role)_other; 4459 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 4460 _diff = _diff && displayElementDiff("annotations", annotations, _cother.annotations, _out, _indent+1); 4461 _diff = _diff && displayElementArrayDiff("schemaGrants", schemaGrants, _cother.schemaGrants, _out, _indent+1); 4462 _diff = _diff && displayElementDiff("union", union, _cother.union, _out, _indent+1); 4463 return _diff; 4464 } 4465 } 4466 4467 public interface Grant extends org.eigenbase.xom.NodeDef 4468 { 4469 } 4470 4471 /** 4472 * Grants (or denies) this role access to this schema. 4473 * access may be "all", "all_dimensions", "custom" 4474 * or "none". 4475 * If access is "all_dimensions", the role has access 4476 * to all dimensions but still needs explicit access to cubes. 4477 * If access is "custom", no access will be inherited by 4478 * cubes for which no explicit rule is set. 4479 * If access is "all_dimensions", an implicut access is 4480 * given to all dimensions of the schema's cubes, provided the cube's 4481 * access attribute is either "custom" or "all". 4482 * See mondrian.olap.Role#grant(mondrian.olap.Schema,int). 4483 */ 4484 public static class SchemaGrant extends org.eigenbase.xom.ElementDef implements Grant 4485 { 4486 public SchemaGrant() 4487 { 4488 } 4489 4490 public SchemaGrant(org.eigenbase.xom.DOMWrapper _def) 4491 throws org.eigenbase.xom.XOMException 4492 { 4493 try { 4494 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4495 org.eigenbase.xom.NodeDef[] _tempArray; 4496 access = (String)_parser.getAttribute("access", "String", null, _access_values, true); 4497 _tempArray = _parser.getArray(CubeGrant.class, 0, 0); 4498 cubeGrants = new CubeGrant[_tempArray.length]; 4499 for (int _i = 0; _i < cubeGrants.length; _i++) 4500 cubeGrants[_i] = (CubeGrant)_tempArray[_i]; 4501 } catch(org.eigenbase.xom.XOMException _ex) { 4502 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4503 } 4504 } 4505 4506 /** Allowable values for {@link #access}. */ 4507 public static final String[] _access_values = {"all", "custom", "none", "all_dimensions"}; 4508 public String access; // required attribute 4509 4510 public CubeGrant[] cubeGrants; //optional array 4511 4512 public String getName() 4513 { 4514 return "SchemaGrant"; 4515 } 4516 4517 public void display(java.io.PrintWriter _out, int _indent) 4518 { 4519 _out.println(getName()); 4520 displayAttribute(_out, "access", access, _indent+1); 4521 displayElementArray(_out, "cubeGrants", cubeGrants, _indent+1); 4522 } 4523 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4524 { 4525 _out.beginTag("SchemaGrant", new org.eigenbase.xom.XMLAttrVector() 4526 .add("access", access) 4527 ); 4528 displayXMLElementArray(_out, cubeGrants); 4529 _out.endTag("SchemaGrant"); 4530 } 4531 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4532 { 4533 SchemaGrant _cother = (SchemaGrant)_other; 4534 boolean _diff = displayElementArrayDiff("cubeGrants", cubeGrants, _cother.cubeGrants, _out, _indent+1); 4535 return _diff; 4536 } 4537 } 4538 4539 /** 4540 * Grants (or denies) this role access to a cube. 4541 * access may be "all", "custom", or "none". 4542 * If access is "custom", no access will be inherited 4543 * by the dimensions of this cube, unless the parent SchemaGrant is 4544 * set to "ALL_DIMENSIONS". 4545 * See mondrian.olap.Role#grant(mondrian.olap.Cube,int). 4546 */ 4547 public static class CubeGrant extends org.eigenbase.xom.ElementDef implements Grant 4548 { 4549 public CubeGrant() 4550 { 4551 } 4552 4553 public CubeGrant(org.eigenbase.xom.DOMWrapper _def) 4554 throws org.eigenbase.xom.XOMException 4555 { 4556 try { 4557 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4558 org.eigenbase.xom.NodeDef[] _tempArray; 4559 cube = (String)_parser.getAttribute("cube", "String", null, null, true); 4560 access = (String)_parser.getAttribute("access", "String", null, _access_values, true); 4561 _tempArray = _parser.getArray(DimensionGrant.class, 0, 0); 4562 dimensionGrants = new DimensionGrant[_tempArray.length]; 4563 for (int _i = 0; _i < dimensionGrants.length; _i++) 4564 dimensionGrants[_i] = (DimensionGrant)_tempArray[_i]; 4565 _tempArray = _parser.getArray(HierarchyGrant.class, 0, 0); 4566 hierarchyGrants = new HierarchyGrant[_tempArray.length]; 4567 for (int _i = 0; _i < hierarchyGrants.length; _i++) 4568 hierarchyGrants[_i] = (HierarchyGrant)_tempArray[_i]; 4569 } catch(org.eigenbase.xom.XOMException _ex) { 4570 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4571 } 4572 } 4573 4574 /** Allowable values for {@link #access}. */ 4575 public static final String[] _access_values = {"all", "custom", "none", "all_dimensions"}; 4576 public String access; // required attribute 4577 public String cube; // required attribute 4578 4579 public DimensionGrant[] dimensionGrants; //optional array 4580 public HierarchyGrant[] hierarchyGrants; //optional array 4581 4582 public String getName() 4583 { 4584 return "CubeGrant"; 4585 } 4586 4587 public void display(java.io.PrintWriter _out, int _indent) 4588 { 4589 _out.println(getName()); 4590 displayAttribute(_out, "cube", cube, _indent+1); 4591 displayAttribute(_out, "access", access, _indent+1); 4592 displayElementArray(_out, "dimensionGrants", dimensionGrants, _indent+1); 4593 displayElementArray(_out, "hierarchyGrants", hierarchyGrants, _indent+1); 4594 } 4595 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4596 { 4597 _out.beginTag("CubeGrant", new org.eigenbase.xom.XMLAttrVector() 4598 .add("cube", cube) 4599 .add("access", access) 4600 ); 4601 displayXMLElementArray(_out, dimensionGrants); 4602 displayXMLElementArray(_out, hierarchyGrants); 4603 _out.endTag("CubeGrant"); 4604 } 4605 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4606 { 4607 CubeGrant _cother = (CubeGrant)_other; 4608 boolean _diff = displayAttributeDiff("cube", cube, _cother.cube, _out, _indent+1); 4609 _diff = _diff && displayElementArrayDiff("dimensionGrants", dimensionGrants, _cother.dimensionGrants, _out, _indent+1); 4610 _diff = _diff && displayElementArrayDiff("hierarchyGrants", hierarchyGrants, _cother.hierarchyGrants, _out, _indent+1); 4611 return _diff; 4612 } 4613 } 4614 4615 /** 4616 * Grants (or denies) this role access to a dimension. 4617 * access may be "all", "custom" or "none". 4618 * Note that a role is implicitly given access to a dimension when it 4619 * is given "ALL" acess to a cube. 4620 * If access is "custom", no access will be inherited 4621 * by the hierarchies of this dimension. 4622 * If the parent schema access is "ALL_DIMENSIONS", 4623 * this timension will inherit access "ALL". 4624 * See also the "all_dimensions" option of the "SchemaGrant" element. 4625 * See mondrian.olap.Role#grant(mondrian.olap.Dimension,int). 4626 */ 4627 public static class DimensionGrant extends org.eigenbase.xom.ElementDef implements Grant 4628 { 4629 public DimensionGrant() 4630 { 4631 } 4632 4633 public DimensionGrant(org.eigenbase.xom.DOMWrapper _def) 4634 throws org.eigenbase.xom.XOMException 4635 { 4636 try { 4637 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4638 dimension = (String)_parser.getAttribute("dimension", "String", null, null, true); 4639 access = (String)_parser.getAttribute("access", "String", null, _access_values, true); 4640 } catch(org.eigenbase.xom.XOMException _ex) { 4641 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4642 } 4643 } 4644 4645 /** Allowable values for {@link #access}. */ 4646 public static final String[] _access_values = {"all", "custom", "none", "all_dimensions"}; 4647 public String access; // required attribute 4648 public String dimension; // required attribute 4649 4650 4651 public String getName() 4652 { 4653 return "DimensionGrant"; 4654 } 4655 4656 public void display(java.io.PrintWriter _out, int _indent) 4657 { 4658 _out.println(getName()); 4659 displayAttribute(_out, "dimension", dimension, _indent+1); 4660 displayAttribute(_out, "access", access, _indent+1); 4661 } 4662 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4663 { 4664 _out.beginTag("DimensionGrant", new org.eigenbase.xom.XMLAttrVector() 4665 .add("dimension", dimension) 4666 .add("access", access) 4667 ); 4668 _out.endTag("DimensionGrant"); 4669 } 4670 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4671 { 4672 DimensionGrant _cother = (DimensionGrant)_other; 4673 boolean _diff = displayAttributeDiff("dimension", dimension, _cother.dimension, _out, _indent+1); 4674 return _diff; 4675 } 4676 } 4677 4678 /** 4679 * Grants (or denies) this role access to a hierarchy. 4680 * access may be "all", "custom" or "none". 4681 * If access is "custom", you may also specify the 4682 * attributes topLevel, bottomLevel, and 4683 * the member grants. 4684 * If access is "custom", the child levels of this 4685 * hierarchy will not inherit access rights from this hierarchy, 4686 * should there be no explicit rules defined for the said child level. 4687 * See mondrian.olap.Role#grant(mondrian.olap.Hierarchy, int, mondrian.olap.Level). 4688 */ 4689 public static class HierarchyGrant extends org.eigenbase.xom.ElementDef implements Grant 4690 { 4691 public HierarchyGrant() 4692 { 4693 } 4694 4695 public HierarchyGrant(org.eigenbase.xom.DOMWrapper _def) 4696 throws org.eigenbase.xom.XOMException 4697 { 4698 try { 4699 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4700 org.eigenbase.xom.NodeDef[] _tempArray; 4701 hierarchy = (String)_parser.getAttribute("hierarchy", "String", null, null, true); 4702 topLevel = (String)_parser.getAttribute("topLevel", "String", null, null, false); 4703 bottomLevel = (String)_parser.getAttribute("bottomLevel", "String", null, null, false); 4704 rollupPolicy = (String)_parser.getAttribute("rollupPolicy", "String", null, null, false); 4705 access = (String)_parser.getAttribute("access", "String", null, _access_values, true); 4706 _tempArray = _parser.getArray(MemberGrant.class, 0, 0); 4707 memberGrants = new MemberGrant[_tempArray.length]; 4708 for (int _i = 0; _i < memberGrants.length; _i++) 4709 memberGrants[_i] = (MemberGrant)_tempArray[_i]; 4710 } catch(org.eigenbase.xom.XOMException _ex) { 4711 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4712 } 4713 } 4714 4715 /** Allowable values for {@link #access}. */ 4716 public static final String[] _access_values = {"all", "custom", "none", "all_dimensions"}; 4717 public String access; // required attribute 4718 public String hierarchy; // required attribute 4719 public String topLevel; // optional attribute 4720 public String bottomLevel; // optional attribute 4721 public String rollupPolicy; // optional attribute 4722 4723 public MemberGrant[] memberGrants; //optional array 4724 4725 public String getName() 4726 { 4727 return "HierarchyGrant"; 4728 } 4729 4730 public void display(java.io.PrintWriter _out, int _indent) 4731 { 4732 _out.println(getName()); 4733 displayAttribute(_out, "hierarchy", hierarchy, _indent+1); 4734 displayAttribute(_out, "topLevel", topLevel, _indent+1); 4735 displayAttribute(_out, "bottomLevel", bottomLevel, _indent+1); 4736 displayAttribute(_out, "rollupPolicy", rollupPolicy, _indent+1); 4737 displayAttribute(_out, "access", access, _indent+1); 4738 displayElementArray(_out, "memberGrants", memberGrants, _indent+1); 4739 } 4740 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4741 { 4742 _out.beginTag("HierarchyGrant", new org.eigenbase.xom.XMLAttrVector() 4743 .add("hierarchy", hierarchy) 4744 .add("topLevel", topLevel) 4745 .add("bottomLevel", bottomLevel) 4746 .add("rollupPolicy", rollupPolicy) 4747 .add("access", access) 4748 ); 4749 displayXMLElementArray(_out, memberGrants); 4750 _out.endTag("HierarchyGrant"); 4751 } 4752 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4753 { 4754 HierarchyGrant _cother = (HierarchyGrant)_other; 4755 boolean _diff = displayAttributeDiff("hierarchy", hierarchy, _cother.hierarchy, _out, _indent+1); 4756 _diff = _diff && displayAttributeDiff("topLevel", topLevel, _cother.topLevel, _out, _indent+1); 4757 _diff = _diff && displayAttributeDiff("bottomLevel", bottomLevel, _cother.bottomLevel, _out, _indent+1); 4758 _diff = _diff && displayAttributeDiff("rollupPolicy", rollupPolicy, _cother.rollupPolicy, _out, _indent+1); 4759 _diff = _diff && displayElementArrayDiff("memberGrants", memberGrants, _cother.memberGrants, _out, _indent+1); 4760 return _diff; 4761 } 4762 } 4763 4764 /** 4765 * Grants (or denies) this role access to a member. 4766 * The children of this member inherit that access. 4767 * You can implicitly see a member if you can see any of its children. 4768 * See mondrian.olap.Role#grant(mondrian.olap.Member,int). 4769 */ 4770 public static class MemberGrant extends org.eigenbase.xom.ElementDef 4771 { 4772 public MemberGrant() 4773 { 4774 } 4775 4776 public MemberGrant(org.eigenbase.xom.DOMWrapper _def) 4777 throws org.eigenbase.xom.XOMException 4778 { 4779 try { 4780 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4781 member = (String)_parser.getAttribute("member", "String", null, null, true); 4782 access = (String)_parser.getAttribute("access", "String", null, _access_values, true); 4783 } catch(org.eigenbase.xom.XOMException _ex) { 4784 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4785 } 4786 } 4787 4788 public String member; // required attribute 4789 /** Allowable values for {@link #access}. */ 4790 public static final String[] _access_values = {"all", "none"}; 4791 public String access; // required attribute 4792 4793 4794 public String getName() 4795 { 4796 return "MemberGrant"; 4797 } 4798 4799 public void display(java.io.PrintWriter _out, int _indent) 4800 { 4801 _out.println(getName()); 4802 displayAttribute(_out, "member", member, _indent+1); 4803 displayAttribute(_out, "access", access, _indent+1); 4804 } 4805 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4806 { 4807 _out.beginTag("MemberGrant", new org.eigenbase.xom.XMLAttrVector() 4808 .add("member", member) 4809 .add("access", access) 4810 ); 4811 _out.endTag("MemberGrant"); 4812 } 4813 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4814 { 4815 MemberGrant _cother = (MemberGrant)_other; 4816 boolean _diff = displayAttributeDiff("member", member, _cother.member, _out, _indent+1); 4817 _diff = _diff && displayAttributeDiff("access", access, _cother.access, _out, _indent+1); 4818 return _diff; 4819 } 4820 } 4821 4822 /** 4823 * Body of a Role definition which defines a Role to be the union 4824 * of several Roles. The RoleUsage elements must refer to Roles that 4825 * have been declared earlier in this schema file. 4826 */ 4827 public static class Union extends org.eigenbase.xom.ElementDef 4828 { 4829 public Union() 4830 { 4831 } 4832 4833 public Union(org.eigenbase.xom.DOMWrapper _def) 4834 throws org.eigenbase.xom.XOMException 4835 { 4836 try { 4837 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4838 org.eigenbase.xom.NodeDef[] _tempArray; 4839 _tempArray = _parser.getArray(RoleUsage.class, 0, 0); 4840 roleUsages = new RoleUsage[_tempArray.length]; 4841 for (int _i = 0; _i < roleUsages.length; _i++) 4842 roleUsages[_i] = (RoleUsage)_tempArray[_i]; 4843 } catch(org.eigenbase.xom.XOMException _ex) { 4844 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4845 } 4846 } 4847 4848 4849 public RoleUsage[] roleUsages; //optional array 4850 4851 public String getName() 4852 { 4853 return "Union"; 4854 } 4855 4856 public void display(java.io.PrintWriter _out, int _indent) 4857 { 4858 _out.println(getName()); 4859 displayElementArray(_out, "roleUsages", roleUsages, _indent+1); 4860 } 4861 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4862 { 4863 _out.beginTag("Union", new org.eigenbase.xom.XMLAttrVector() 4864 ); 4865 displayXMLElementArray(_out, roleUsages); 4866 _out.endTag("Union"); 4867 } 4868 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4869 { 4870 Union _cother = (Union)_other; 4871 boolean _diff = displayElementArrayDiff("roleUsages", roleUsages, _cother.roleUsages, _out, _indent+1); 4872 return _diff; 4873 } 4874 } 4875 4876 /** 4877 * Usage of a Role in a union Role. 4878 */ 4879 public static class RoleUsage extends org.eigenbase.xom.ElementDef 4880 { 4881 public RoleUsage() 4882 { 4883 } 4884 4885 public RoleUsage(org.eigenbase.xom.DOMWrapper _def) 4886 throws org.eigenbase.xom.XOMException 4887 { 4888 try { 4889 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4890 roleName = (String)_parser.getAttribute("roleName", "String", null, null, true); 4891 } catch(org.eigenbase.xom.XOMException _ex) { 4892 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4893 } 4894 } 4895 4896 public String roleName; // required attribute 4897 4898 4899 public String getName() 4900 { 4901 return "RoleUsage"; 4902 } 4903 4904 public void display(java.io.PrintWriter _out, int _indent) 4905 { 4906 _out.println(getName()); 4907 displayAttribute(_out, "roleName", roleName, _indent+1); 4908 } 4909 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4910 { 4911 _out.beginTag("RoleUsage", new org.eigenbase.xom.XMLAttrVector() 4912 .add("roleName", roleName) 4913 ); 4914 _out.endTag("RoleUsage"); 4915 } 4916 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4917 { 4918 RoleUsage _cother = (RoleUsage)_other; 4919 boolean _diff = displayAttributeDiff("roleName", roleName, _cother.roleName, _out, _indent+1); 4920 return _diff; 4921 } 4922 } 4923 4924 /** 4925 * A UserDefinedFunction is a function which 4926 * extends the MDX language. It must be implemented by a Java 4927 * class which implements the interface 4928 * mondrian.spi.UserDefinedFunction. 4929 */ 4930 public static class UserDefinedFunction extends org.eigenbase.xom.ElementDef 4931 { 4932 public UserDefinedFunction() 4933 { 4934 } 4935 4936 public UserDefinedFunction(org.eigenbase.xom.DOMWrapper _def) 4937 throws org.eigenbase.xom.XOMException 4938 { 4939 try { 4940 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 4941 name = (String)_parser.getAttribute("name", "String", null, null, true); 4942 className = (String)_parser.getAttribute("className", "String", null, null, false); 4943 script = (Script)_parser.getElement(Script.class, false); 4944 } catch(org.eigenbase.xom.XOMException _ex) { 4945 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 4946 } 4947 } 4948 4949 public String name; // required attribute 4950 public String className; // optional attribute 4951 4952 /** 4953 * Script to implement this user-defined function. 4954 * Either the "Script" element or the "className" attribute 4955 * must be specified. 4956 */ 4957 public Script script; //optional element 4958 4959 public String getName() 4960 { 4961 return "UserDefinedFunction"; 4962 } 4963 4964 public void display(java.io.PrintWriter _out, int _indent) 4965 { 4966 _out.println(getName()); 4967 displayAttribute(_out, "name", name, _indent+1); 4968 displayAttribute(_out, "className", className, _indent+1); 4969 displayElement(_out, "script", (org.eigenbase.xom.ElementDef) script, _indent+1); 4970 } 4971 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 4972 { 4973 _out.beginTag("UserDefinedFunction", new org.eigenbase.xom.XMLAttrVector() 4974 .add("name", name) 4975 .add("className", className) 4976 ); 4977 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) script); 4978 _out.endTag("UserDefinedFunction"); 4979 } 4980 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 4981 { 4982 UserDefinedFunction _cother = (UserDefinedFunction)_other; 4983 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 4984 _diff = _diff && displayAttributeDiff("className", className, _cother.className, _out, _indent+1); 4985 _diff = _diff && displayElementDiff("script", script, _cother.script, _out, _indent+1); 4986 return _diff; 4987 } 4988 } 4989 4990 /** 4991 * A Parameter defines a schema parameter. 4992 * It can be referenced from an MDX statement using the ParamRef 4993 * function and, if not final, its value can be overridden. 4994 */ 4995 public static class Parameter extends org.eigenbase.xom.ElementDef 4996 { 4997 public Parameter() 4998 { 4999 } 5000 5001 public Parameter(org.eigenbase.xom.DOMWrapper _def) 5002 throws org.eigenbase.xom.XOMException 5003 { 5004 try { 5005 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5006 name = (String)_parser.getAttribute("name", "String", null, null, true); 5007 description = (String)_parser.getAttribute("description", "String", null, null, false); 5008 type = (String)_parser.getAttribute("type", "String", "String", _type_values, true); 5009 modifiable = (Boolean)_parser.getAttribute("modifiable", "Boolean", "true", null, false); 5010 defaultValue = (String)_parser.getAttribute("defaultValue", "String", null, null, false); 5011 } catch(org.eigenbase.xom.XOMException _ex) { 5012 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5013 } 5014 } 5015 5016 public String name; // required attribute 5017 public String description; // optional attribute 5018 /** Allowable values for {@link #type}. */ 5019 public static final String[] _type_values = {"String", "Numeric", "Integer", "Boolean", "Date", "Time", "Timestamp", "Member"}; 5020 public String type; // attribute default: String 5021 public Boolean modifiable; // attribute default: true 5022 public String defaultValue; // optional attribute 5023 5024 5025 public String getName() 5026 { 5027 return "Parameter"; 5028 } 5029 5030 public void display(java.io.PrintWriter _out, int _indent) 5031 { 5032 _out.println(getName()); 5033 displayAttribute(_out, "name", name, _indent+1); 5034 displayAttribute(_out, "description", description, _indent+1); 5035 displayAttribute(_out, "type", type, _indent+1); 5036 displayAttribute(_out, "modifiable", modifiable, _indent+1); 5037 displayAttribute(_out, "defaultValue", defaultValue, _indent+1); 5038 } 5039 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5040 { 5041 _out.beginTag("Parameter", new org.eigenbase.xom.XMLAttrVector() 5042 .add("name", name) 5043 .add("description", description) 5044 .add("type", type) 5045 .add("modifiable", modifiable) 5046 .add("defaultValue", defaultValue) 5047 ); 5048 _out.endTag("Parameter"); 5049 } 5050 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5051 { 5052 Parameter _cother = (Parameter)_other; 5053 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 5054 _diff = _diff && displayAttributeDiff("description", description, _cother.description, _out, _indent+1); 5055 _diff = _diff && displayAttributeDiff("type", type, _cother.type, _out, _indent+1); 5056 _diff = _diff && displayAttributeDiff("modifiable", modifiable, _cother.modifiable, _out, _indent+1); 5057 _diff = _diff && displayAttributeDiff("defaultValue", defaultValue, _cother.defaultValue, _out, _indent+1); 5058 return _diff; 5059 } 5060 } 5061 5062 /** 5063 * Holder for an array of Annotation elements 5064 */ 5065 public static class Annotations extends org.eigenbase.xom.ElementDef 5066 { 5067 public Annotations() 5068 { 5069 } 5070 5071 public Annotations(org.eigenbase.xom.DOMWrapper _def) 5072 throws org.eigenbase.xom.XOMException 5073 { 5074 try { 5075 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5076 org.eigenbase.xom.NodeDef[] _tempArray; 5077 _tempArray = _parser.getArray(Annotation.class, 0, 0); 5078 array = new Annotation[_tempArray.length]; 5079 for (int _i = 0; _i < array.length; _i++) 5080 array[_i] = (Annotation)_tempArray[_i]; 5081 } catch(org.eigenbase.xom.XOMException _ex) { 5082 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5083 } 5084 } 5085 5086 5087 public Annotation[] array; //optional array 5088 5089 public String getName() 5090 { 5091 return "Annotations"; 5092 } 5093 5094 public void display(java.io.PrintWriter _out, int _indent) 5095 { 5096 _out.println(getName()); 5097 displayElementArray(_out, "array", array, _indent+1); 5098 } 5099 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5100 { 5101 _out.beginTag("Annotations", new org.eigenbase.xom.XMLAttrVector() 5102 ); 5103 displayXMLElementArray(_out, array); 5104 _out.endTag("Annotations"); 5105 } 5106 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5107 { 5108 Annotations _cother = (Annotations)_other; 5109 boolean _diff = displayElementArrayDiff("array", array, _cother.array, _out, _indent+1); 5110 return _diff; 5111 } 5112 } 5113 5114 /** 5115 * User-defined property value. 5116 */ 5117 public static class Annotation extends org.eigenbase.xom.ElementDef 5118 { 5119 public Annotation() 5120 { 5121 } 5122 5123 public Annotation(org.eigenbase.xom.DOMWrapper _def) 5124 throws org.eigenbase.xom.XOMException 5125 { 5126 try { 5127 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5128 name = (String)_parser.getAttribute("name", "String", null, null, true); 5129 cdata = _parser.getText(); 5130 } catch(org.eigenbase.xom.XOMException _ex) { 5131 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5132 } 5133 } 5134 5135 public String name; // required attribute 5136 5137 public String cdata; // All text goes here 5138 public String getName() 5139 { 5140 return "Annotation"; 5141 } 5142 5143 public void display(java.io.PrintWriter _out, int _indent) 5144 { 5145 _out.println(getName()); 5146 displayAttribute(_out, "name", name, _indent+1); 5147 displayString(_out, "cdata", cdata, _indent+1); 5148 } 5149 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5150 { 5151 _out.beginTag("Annotation", new org.eigenbase.xom.XMLAttrVector() 5152 .add("name", name) 5153 ); 5154 _out.cdata(cdata); 5155 _out.endTag("Annotation"); 5156 } 5157 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5158 { 5159 Annotation _cother = (Annotation)_other; 5160 boolean _diff = displayAttributeDiff("name", name, _cother.name, _out, _indent+1); 5161 _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1); 5162 return _diff; 5163 } 5164 } 5165 5166 /** 5167 * Script fragment to implement an SPI such as user-defined function, 5168 * member formatter, cell formatter. 5169 */ 5170 public static class Script extends org.eigenbase.xom.ElementDef 5171 { 5172 public Script() 5173 { 5174 } 5175 5176 public Script(org.eigenbase.xom.DOMWrapper _def) 5177 throws org.eigenbase.xom.XOMException 5178 { 5179 try { 5180 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5181 language = (String)_parser.getAttribute("language", "String", "JavaScript", null, false); 5182 cdata = _parser.getText(); 5183 } catch(org.eigenbase.xom.XOMException _ex) { 5184 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5185 } 5186 } 5187 5188 public String language; // attribute default: JavaScript 5189 5190 public String cdata; // All text goes here 5191 public String getName() 5192 { 5193 return "Script"; 5194 } 5195 5196 public void display(java.io.PrintWriter _out, int _indent) 5197 { 5198 _out.println(getName()); 5199 displayAttribute(_out, "language", language, _indent+1); 5200 displayString(_out, "cdata", cdata, _indent+1); 5201 } 5202 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5203 { 5204 _out.beginTag("Script", new org.eigenbase.xom.XMLAttrVector() 5205 .add("language", language) 5206 ); 5207 _out.cdata(cdata); 5208 _out.endTag("Script"); 5209 } 5210 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5211 { 5212 Script _cother = (Script)_other; 5213 boolean _diff = displayAttributeDiff("language", language, _cother.language, _out, _indent+1); 5214 _diff = _diff && displayStringDiff("cdata", cdata, _cother.cdata, _out, _indent+1); 5215 return _diff; 5216 } 5217 } 5218 5219 /** 5220 * Plugin that formats the values of cells. 5221 * It must be implemented by a Java 5222 * class which implements the interface 5223 * mondrian.spi.CellFormatter, 5224 * or by a script. 5225 */ 5226 public static class CellFormatter extends org.eigenbase.xom.ElementDef 5227 { 5228 public CellFormatter() 5229 { 5230 } 5231 5232 public CellFormatter(org.eigenbase.xom.DOMWrapper _def) 5233 throws org.eigenbase.xom.XOMException 5234 { 5235 try { 5236 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5237 className = (String)_parser.getAttribute("className", "String", null, null, false); 5238 script = (Script)_parser.getElement(Script.class, false); 5239 } catch(org.eigenbase.xom.XOMException _ex) { 5240 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5241 } 5242 } 5243 5244 public String className; // optional attribute 5245 5246 /** 5247 * Script to implement this cell formatter. 5248 * Either the "Script" element or the "className" attribute 5249 * must be specified. 5250 */ 5251 public Script script; //optional element 5252 5253 public String getName() 5254 { 5255 return "CellFormatter"; 5256 } 5257 5258 public void display(java.io.PrintWriter _out, int _indent) 5259 { 5260 _out.println(getName()); 5261 displayAttribute(_out, "className", className, _indent+1); 5262 displayElement(_out, "script", (org.eigenbase.xom.ElementDef) script, _indent+1); 5263 } 5264 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5265 { 5266 _out.beginTag("CellFormatter", new org.eigenbase.xom.XMLAttrVector() 5267 .add("className", className) 5268 ); 5269 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) script); 5270 _out.endTag("CellFormatter"); 5271 } 5272 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5273 { 5274 CellFormatter _cother = (CellFormatter)_other; 5275 boolean _diff = displayAttributeDiff("className", className, _cother.className, _out, _indent+1); 5276 _diff = _diff && displayElementDiff("script", script, _cother.script, _out, _indent+1); 5277 return _diff; 5278 } 5279 } 5280 5281 /** 5282 * Plugin that formats members. 5283 * It must be implemented by a Java 5284 * class which implements the interface 5285 * mondrian.spi.MemberFormatter, 5286 * or by a script. 5287 */ 5288 public static class MemberFormatter extends org.eigenbase.xom.ElementDef 5289 { 5290 public MemberFormatter() 5291 { 5292 } 5293 5294 public MemberFormatter(org.eigenbase.xom.DOMWrapper _def) 5295 throws org.eigenbase.xom.XOMException 5296 { 5297 try { 5298 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5299 className = (String)_parser.getAttribute("className", "String", null, null, false); 5300 script = (Script)_parser.getElement(Script.class, false); 5301 } catch(org.eigenbase.xom.XOMException _ex) { 5302 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5303 } 5304 } 5305 5306 public String className; // optional attribute 5307 5308 /** 5309 * Script to implement this member formatter. 5310 * Either the "Script" element or the "className" attribute 5311 * must be specified. 5312 */ 5313 public Script script; //optional element 5314 5315 public String getName() 5316 { 5317 return "MemberFormatter"; 5318 } 5319 5320 public void display(java.io.PrintWriter _out, int _indent) 5321 { 5322 _out.println(getName()); 5323 displayAttribute(_out, "className", className, _indent+1); 5324 displayElement(_out, "script", (org.eigenbase.xom.ElementDef) script, _indent+1); 5325 } 5326 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5327 { 5328 _out.beginTag("MemberFormatter", new org.eigenbase.xom.XMLAttrVector() 5329 .add("className", className) 5330 ); 5331 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) script); 5332 _out.endTag("MemberFormatter"); 5333 } 5334 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5335 { 5336 MemberFormatter _cother = (MemberFormatter)_other; 5337 boolean _diff = displayAttributeDiff("className", className, _cother.className, _out, _indent+1); 5338 _diff = _diff && displayElementDiff("script", script, _cother.script, _out, _indent+1); 5339 return _diff; 5340 } 5341 } 5342 5343 /** 5344 * Plugin that formats properties. 5345 * It must be implemented by a Java 5346 * class which implements the interface 5347 * mondrian.spi.PropertyFormatter, 5348 * or by a script. 5349 */ 5350 public static class PropertyFormatter extends org.eigenbase.xom.ElementDef 5351 { 5352 public PropertyFormatter() 5353 { 5354 } 5355 5356 public PropertyFormatter(org.eigenbase.xom.DOMWrapper _def) 5357 throws org.eigenbase.xom.XOMException 5358 { 5359 try { 5360 org.eigenbase.xom.DOMElementParser _parser = new org.eigenbase.xom.DOMElementParser(_def, "", MondrianGuiDef.class); 5361 className = (String)_parser.getAttribute("className", "String", null, null, false); 5362 script = (Script)_parser.getElement(Script.class, false); 5363 } catch(org.eigenbase.xom.XOMException _ex) { 5364 throw new org.eigenbase.xom.XOMException("In " + getName() + ": " + _ex.getMessage()); 5365 } 5366 } 5367 5368 public String className; // optional attribute 5369 5370 /** 5371 * Script to implement this property formatter. 5372 * Either the "Script" element or the "className" attribute 5373 * must be specified. 5374 */ 5375 public Script script; //optional element 5376 5377 public String getName() 5378 { 5379 return "PropertyFormatter"; 5380 } 5381 5382 public void display(java.io.PrintWriter _out, int _indent) 5383 { 5384 _out.println(getName()); 5385 displayAttribute(_out, "className", className, _indent+1); 5386 displayElement(_out, "script", (org.eigenbase.xom.ElementDef) script, _indent+1); 5387 } 5388 public void displayXML(org.eigenbase.xom.XMLOutput _out, int _indent) 5389 { 5390 _out.beginTag("PropertyFormatter", new org.eigenbase.xom.XMLAttrVector() 5391 .add("className", className) 5392 ); 5393 displayXMLElement(_out, (org.eigenbase.xom.ElementDef) script); 5394 _out.endTag("PropertyFormatter"); 5395 } 5396 public boolean displayDiff(org.eigenbase.xom.ElementDef _other, java.io.PrintWriter _out, int _indent) 5397 { 5398 PropertyFormatter _cother = (PropertyFormatter)_other; 5399 boolean _diff = displayAttributeDiff("className", className, _cother.className, _out, _indent+1); 5400 _diff = _diff && displayElementDiff("script", script, _cother.script, _out, _indent+1); 5401 return _diff; 5402 } 5403 } 5404 5405 5406}