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