Oracle OLAP Java API Reference
10g Release 1 (10.1)

B10994-01

oracle.olapi.metadata.mtm
Class MtmUnsolvedCube

java.lang.Object
  |
  +--oracle.olapi.metadata.BaseMetadataObject
        |
        +--oracle.olapi.metadata.mtm.MtmObject
              |
              +--oracle.olapi.metadata.mtm.MtmCube
                    |
                    +--oracle.olapi.metadata.mtm.MtmBaseCube
                          |
                          +--oracle.olapi.metadata.mtm.MtmUnsolvedCube

public class MtmUnsolvedCube
extends MtmBaseCube

An MtmBaseCube for which only leaf-level data is available directly from a relational table or view, and for which aggregate values are supplied by Oracle OLAP. The Oracle OLAP SQL generator uses one of three forms of aggregation to specify the aggregate values: GroupingSet, Rollup, or ET. You can discover or specify the aggregation form for an MtmUnsolvedCube by calling its getAggregationForm or setAggregationForm methods.

To aggregate data for an MtmUnsolvedCube, the SQL generator produces SQL code in the following format.

   SELECT SUM(measure1), SUM(measure2), ..., SUM(measureN), dimension-keys
   FROM fact-table, dimension-tables
   WHERE join-condition
   GROUP BY group-by-clause

The format of group-by-clause is controlled by the aggregation form specified for the MtmUnsolvedCube. For example, assuming a single hierarchy with three levels, Y, Q, and M, the GROUP BY clause is constructed as follows.

 GroupingSet: GROUP BY GROUPING SETS((Y), (Q), (M))
Rollup:      GROUP BY Y, ROLLUP(Q, M)
ET:          GROUP BY Y, ROLLUP(Q, M)

The format of dimension-keys is also controlled by the aggregation form, as shown below.

 GroupingSet:  SELECT Y, Q, M, GROUPING_ID(Y, Q, M)
Rollup:       SELECT Y, Q, M, GROUPING_ID(Y, Q, M)
ET:           SELECT
                  (CASE GROUPING_ID(Y, Q, M)
                  WHEN 3 THEN Y
                  WHEN 1 THEN Q
                  ELSE M
                  END) et_value,
                  GROUPING_ID(Y, Q, M)

The join-condition is controlled by the MtmUnsolvedCubeDimensionality objects for the MtmUnsolvedCube.

An MtmUnsolvedCube also specifies operations, or steps, that Oracle OLAP performs during the aggregation, such as applying a function to the measure value, weighting the value, or using the first or last child element when aggregating the measure values for a parent element of the hierarchy. You can discover the steps for an MtmUnsolvedCube by calling its getSolveSpecification method, and then calling the getAggregationSteps method on the MtmAggregationSpecification it returns. You can specify other values for the concrete instances of the MtmAggregationSpecification objects with methods such as the setWeight method of an MtmSimpleAggregationStep.

You can create other subclasses of MtmAggregationStep with methods of an MtmObjectFactory and add them to the MtmAggregationSpecification with the addAggregationStep method. You can then use the MtmAggregationSpecification as the input parameter of the setSolveSpecification method of the MtmUnsolvedCube.

You can also change the aggregation step for one or all of the hierarchies of this MtmUnsolvedCube by using methods such as aggregateSimple.


Method Summary
 java.lang.Object acceptVisitor(MtmObjectVisitor visitor, java.lang.Object context)
          Calls the visitMtmUnsolvedCube method of the specified MtmObjectVisitor and passes that method this MtmUnsolvedCube and the specified context object.
 void addDimensionality(MtmCubeDimensionality dimensionality)
          Adds an MtmCubeDimensionality to this MtmBaseCube.
 void aggregateFirst(MdmHierarchy hierarchy, boolean isHierarchical)
          Specifies an MtmFirstLastAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the aggregation type of the step is FIRST and the value of isHierarchical specifies whether the step uses the first value if that value is null.
 void aggregateLast(MdmHierarchy hierarchy, boolean isHierarchical)
          Specifies an MtmFirstLastAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the aggregation type of the step is LAST and the value of isHierarchical specifies whether the step uses the first value if that value is null.
 void aggregateSimple(MdmHierarchy hierarchy, java.lang.String function, MtmValueExpression weight)
          Specifies an MtmSimpleAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube.
 void aggregateSum(MdmHierarchy hierarchy)
          Specifies an MtmSimpleAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the function of the simple aggregation step is SUM and its weighting factor is 1.
 void aggregateWeightedAverage(MdmHierarchy hierarchy, MtmValueExpression weight, boolean isHierarchical)
          Specifies an MtmWeightedAverageAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the weighting factor of the step is weight and the value of isHierarchical specifies whether the step includes null values in the count of the measure values specified by the children of an element of the dimension hierarchy.
 java.lang.String getAggregationForm()
          Gets the aggregation form for this MtmUnsolvedCube.
 MtmSolveSpecification getSolveSpecification()
          Gets the MtmSolveSpecification that specifies operations that Oracle OLAP performs when aggregating the values of the measures of this MtmUnsolvedCube.
 java.lang.String getSQLHint()
          Gets the SQL hint to be embedded in the SELECT statement for this MtmUnsolvedCube.
 void removeAggregation(MdmHierarchy hierarchy)
          Removes the MtmAggregationStep, if any, for the specified MdmHierarchy component of this MtmUnsolvedCube.
 void removeDimensionality(MtmCubeDimensionality dimensionality)
          Removes an MtmCubeDimensionality from this MtmBaseCube.
 void setAggregationForm(java.lang.String newAggregationForm)
          Specifies the form of aggregation that Oracle OLAP uses when aggregating the values of the measures of this MtmUnsolvedCube.
 void setSolveSpecification(MtmSolveSpecification solveSpec)
          Specifies operations that Oracle OLAP performs when aggregating the values of the measures of this MtmUnsolvedCube.
 void setSQLHint(java.lang.String newSQLHint)
          Specifies the SQL hint that the SQL generator embeds in the SELECT statement of this MtmUnsolvedCube.

 

Methods inherited from class oracle.olapi.metadata.mtm.MtmBaseCube
addMeasure, getDimensionality, getPartitionedCube, getTable, removeDimension, removeMeasure

 

Methods inherited from class oracle.olapi.metadata.mtm.MtmCube
getDimensionMaps, getMeasureMaps, getName, setName

 

Methods inherited from class oracle.olapi.metadata.BaseMetadataObject
getID

 

Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

 

Method Detail

acceptVisitor

public java.lang.Object acceptVisitor(MtmObjectVisitor visitor,
                                      java.lang.Object context)
Calls the visitMtmUnsolvedCube method of the specified MtmObjectVisitor and passes that method this MtmUnsolvedCube and the specified context object.
Parameters:
visitor - An MtmObjectVisitor.
context - An Object.
Returns:
The Object returned by the visitMtmUnsolvedCube method.
Overrides:
acceptVisitor in class MtmObject

getAggregationForm

public java.lang.String getAggregationForm()
Gets the aggregation form for this MtmUnsolvedCube.
Returns:
A String that indicates the aggregation form for this MtmUnsolvedCube. Possible values are GroupingSet, Rollup, and ET. The description of this class provides information about these three forms.

getSolveSpecification

public MtmSolveSpecification getSolveSpecification()
Gets the MtmSolveSpecification that specifies operations that Oracle OLAP performs when aggregating the values of the measures of this MtmUnsolvedCube.

getSQLHint

public java.lang.String getSQLHint()
Gets the SQL hint to be embedded in the SELECT statement for this MtmUnsolvedCube. For example, if the return value is no_rewrite, then the Oracle OLAP SQL generator provides that text as a hint in the SELECT statement. A hint is passed to the Oracle optimizer to help it choose an execution plan for a SELECT statement.
Returns:
A String that is the hint for the SQL code that is generated for this MtmUnsolvedCube.

setAggregationForm

public void setAggregationForm(java.lang.String newAggregationForm)
Specifies the form of aggregation that Oracle OLAP uses when aggregating the values of the measures of this MtmUnsolvedCube. The aggregation forms are GroupingSet, Rollup, and ET.
Parameters:
newAggregationForm - A String that specifies the form of aggregation.

setSolveSpecification

public void setSolveSpecification(MtmSolveSpecification solveSpec)
Specifies operations that Oracle OLAP performs when aggregating the values of the measures of this MtmUnsolvedCube.
Parameters:
solveSpec - An MtmSolveSpecification that specifies the operation to perform during the aggregation.

setSQLHint

public void setSQLHint(java.lang.String newSQLHint)
Specifies the SQL hint that the SQL generator embeds in the SELECT statement of this MtmUnsolvedCube.
Parameters:
newSQLHint - A String that specifies the SQL hint for this MtmUnsolvedCube.

addDimensionality

public void addDimensionality(MtmCubeDimensionality dimensionality)
Adds an MtmCubeDimensionality to this MtmBaseCube.
Parameters:
dimensionality - The MtmCubeDimensionality to add to this MtmBaseCube.
Overrides:
addDimensionality in class MtmBaseCube

removeDimensionality

public void removeDimensionality(MtmCubeDimensionality dimensionality)
Removes an MtmCubeDimensionality from this MtmBaseCube.
Parameters:
dimensionality - The MtmCubeDimensionality to remove from this MtmBaseCube.
Overrides:
removeDimensionality in class MtmBaseCube

aggregateSimple

public void aggregateSimple(MdmHierarchy hierarchy,
                            java.lang.String function,
MtmValueExpression weight)
Specifies an MtmSimpleAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube. The function of the simple aggregation step is function and its weighting factor is weight. A hierarchy value of null specifies that the MtmSimpleAggregationStep applies to all of the MdmHierarchy component of this MtmUnsolvedCube.
Parameters:
hierarchy - The MdmHierarchy of this MtmUnsolvedCube for which you want to specify an MtmSimpleAggregationStep.
function - A String that specifies the SQL function for the MtmSimpleAggregationStep.
weight - An MtmValueExpression that specifies the weighting factor for the MtmSimpleAggregationStep. A value of null specifies the default weight of 1.

aggregateSum

public void aggregateSum(MdmHierarchy hierarchy)
Specifies an MtmSimpleAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the function of the simple aggregation step is SUM and its weighting factor is 1. A hierarchy value of null specifies that the MtmSimpleAggregationStep applies to all of the MdmHierarchy component of this MtmUnsolvedCube.
Parameters:
hierarchy - The MdmHierarchy of this MtmUnsolvedCube for which you want to specify an MtmSimpleAggregationStep.

aggregateFirst

public void aggregateFirst(MdmHierarchy hierarchy,
                           boolean isHierarchical)
Specifies an MtmFirstLastAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the aggregation type of the step is FIRST and the value of isHierarchical specifies whether the step uses the first value if that value is null. A hierarchy value of null specifies that the MtmFirstLastAggregationStep applies to all of the MdmHierarchy component of this MtmUnsolvedCube.
Parameters:
hierarchy - The MdmHierarchy of this MtmUnsolvedCube for which you want to specify an MtmFirstLastAggregationStep.
isHierarchical - A boolean that specifies whether the step uses the first value if that value is null.

aggregateLast

public void aggregateLast(MdmHierarchy hierarchy,
                          boolean isHierarchical)
Specifies an MtmFirstLastAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the aggregation type of the step is LAST and the value of isHierarchical specifies whether the step uses the first value if that value is null. A hierarchy value of null specifies that the MtmFirstLastAggregationStep applies to all of the MdmHierarchy component of this MtmUnsolvedCube.
Parameters:
hierarchy - The MdmHierarchy of this MtmUnsolvedCube for which you want to specify an MtmFirstLastAggregationStep.
isHierarchical - A boolean that specifies whether the step uses the first value if that value is null.

aggregateWeightedAverage

public void aggregateWeightedAverage(MdmHierarchy hierarchy,
MtmValueExpression weight,
                                     boolean isHierarchical)
Specifies an MtmWeightedAverageAggregationStep for the specified MdmHierarchy component of this MtmUnsolvedCube; the weighting factor of the step is weight and the value of isHierarchical specifies whether the step includes null values in the count of the measure values specified by the children of an element of the dimension hierarchy. A hierarchy value of null specifies that the MtmWeightedAverageAggregationStep applies to all of the MdmHierarchy component of this MtmUnsolvedCube.
Parameters:
hierarchy - The MdmHierarchy of this MtmUnsolvedCube for which you want to specify an MtmFirstLastAggregationStep.
weight - An MtmValueExpression that specifies the weighting factor for the MtmWeightedAverageAggregationStep.
isHierarchical - A boolean that specifies whether the step includes null values in the count of the measure values specified by the children of an element of the dimension hierarchy.

removeAggregation

public void removeAggregation(MdmHierarchy hierarchy)
Removes the MtmAggregationStep, if any, for the specified MdmHierarchy component of this MtmUnsolvedCube.
Parameters:
hierarchy - The MdmHierarchy of this MtmUnsolvedCube for which you want to remove any MtmAggregationStep.

Oracle OLAP Java API Reference
10g Release 1 (10.1)

B10994-01

Copyright © 2002, 2003, Oracle. All Rights Reserved.