mondrian.rolap
Class RolapCubeLevel

java.lang.Object
  extended by mondrian.olap.OlapElementBase
      extended by mondrian.olap.LevelBase
          extended by mondrian.rolap.RolapLevel
              extended by mondrian.rolap.RolapCubeLevel
All Implemented Interfaces:
Annotated, Level, OlapElement

public class RolapCubeLevel
extends RolapLevel

RolapCubeLevel wraps a RolapLevel for a specific Cube.

Author:
Will Gorman, 19 October 2007

Nested Class Summary
(package private) static class RolapCubeLevel.AllLevelReaderImpl
          Level reader for the level which contains the 'all' member.
(package private) static interface RolapCubeLevel.LevelReader
          Encapsulation of the difference between levels in terms of how constraints are generated.
(package private) static class RolapCubeLevel.NullLevelReader
          Level reader for the level which contains the null member.
(package private) static class RolapCubeLevel.ParentChildLevelReaderImpl
          Level reader for a parent-child level which has a closed peer level.
(package private) static class RolapCubeLevel.RegularLevelReader
          Level reader for a regular level.
 
Nested classes/interfaces inherited from class mondrian.rolap.RolapLevel
RolapLevel.HideMemberCondition
 
Nested classes/interfaces inherited from interface mondrian.olap.OlapElement
OlapElement.LocalizedProperty
 
Field Summary
protected  RolapCubeLevel.LevelReader levelReader
           
 
Fields inherited from class mondrian.rolap.RolapLevel
captionExp, FLAG_ALL, FLAG_UNIQUE, keyExp, nameExp, ordinalExp, parentExp, xmlClosure
 
Fields inherited from class mondrian.olap.LevelBase
approxRowCount, depth, description, hierarchy, levelType, memberFormatter, name, uniqueName
 
Fields inherited from class mondrian.olap.OlapElementBase
caption, visible
 
Constructor Summary
RolapCubeLevel(RolapLevel level, RolapCubeHierarchy cubeHierarchy)
           
 
Method Summary
 boolean equals(RolapCubeLevel level)
           
 RolapStar.Column getBaseStarKeyColumn(RolapCube baseCube)
          this method returns the RolapStar.Column if non-virtual, if virtual, find the base cube level and return it's column
 String getCaption()
          Returns the display name of this catalog element.
 RolapCubeLevel getChildLevel()
           
 RolapCubeLevel getClosedPeer()
           
 RolapCube getCube()
          Returns the (non virtual) cube this level belongs to.
 RolapCubeDimension getDimension()
          Returns the dimension of a this expression, or null if no dimension is defined.
 RolapCubeHierarchy getHierarchy()
           
(package private)  RolapCubeLevel.LevelReader getLevelReader()
           
 MemberFormatter getMemberFormatter()
          Returns the object that is used to format members of this level.
 RolapCubeLevel getParentLevel()
           
 RolapLevel getRolapLevel()
          Returns the underlying level.
 RolapStar.Column getStarKeyColumn()
          This is the RolapStar.Column that is related to this RolapCubeLevel
(package private)  boolean hasClosedPeer()
          Returns true when the level is part of a parent/child hierarchy and has an equivalent closed level.
(package private)  void init(MondrianDef.CubeDimension xmlDimension)
           
 void setCaption(String caption)
          Sets the display name of this catalog element.
 void setStarKeyColumn(RolapStar.Column column)
           
 
Methods inherited from class mondrian.rolap.RolapLevel
areMembersUnique, getAnnotationMap, getApproxRowCount, getCaptionExp, getDatatype, getFlags, getHideMemberCondition, getInheritedProperties, getInternalType, getKeyExp, getLogger, getNameExp, getNullParentValue, getOrdinalExp, getParentExp, getProperties, getTableAlias, getTableName, hasCaptionColumn, isAll, isParentChild, isSimple, isUnique, lookupChild, lookupChild, lookupLevel
 
Methods inherited from class mondrian.olap.LevelBase
getDepth, getDescription, getLevelType, getName, getQualifiedName, getUniqueName, isMeasure, setApproxRowCount
 
Methods inherited from class mondrian.olap.OlapElementBase
clone, computeHashCode, equals, equals, getLocalized, hashCode, isVisible, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface mondrian.olap.OlapElement
getLocalized, isVisible
 

Field Detail

levelReader

protected RolapCubeLevel.LevelReader levelReader
Constructor Detail

RolapCubeLevel

public RolapCubeLevel(RolapLevel level,
                      RolapCubeHierarchy cubeHierarchy)
Method Detail

init

void init(MondrianDef.CubeDimension xmlDimension)
Overrides:
init in class RolapLevel

setStarKeyColumn

public void setStarKeyColumn(RolapStar.Column column)

getStarKeyColumn

public RolapStar.Column getStarKeyColumn()
This is the RolapStar.Column that is related to this RolapCubeLevel

Returns:
the RolapStar.Column related to this RolapCubeLevel

getLevelReader

RolapCubeLevel.LevelReader getLevelReader()

getBaseStarKeyColumn

public RolapStar.Column getBaseStarKeyColumn(RolapCube baseCube)
this method returns the RolapStar.Column if non-virtual, if virtual, find the base cube level and return it's column

Parameters:
baseCube - the base cube for the specificed virtual level
Returns:
the RolapStar.Column related to this RolapCubeLevel

getCube

public final RolapCube getCube()
Returns the (non virtual) cube this level belongs to.

Returns:
cube

getDimension

public final RolapCubeDimension getDimension()
Description copied from interface: OlapElement
Returns the dimension of a this expression, or null if no dimension is defined. Applicable only to set expressions.

Example 1:

 [Sales].children
 
has dimension [Sales].

Example 2:

 order(except([Promotion Media].[Media Type].members,
              {[Promotion Media].[Media Type].[No Media]}),
       [Measures].[Unit Sales], DESC)
 
has dimension [Promotion Media].

Example 3:

 CrossJoin([Product].[Product Department].members,
           [Gender].members)
 
has no dimension (well, actually it is [Product] x [Gender], but we can't represent that, so we return null);

Specified by:
getDimension in interface OlapElement
Overrides:
getDimension in class LevelBase

getHierarchy

public final RolapCubeHierarchy getHierarchy()
Specified by:
getHierarchy in interface Level
Specified by:
getHierarchy in interface OlapElement
Overrides:
getHierarchy in class RolapLevel

getChildLevel

public final RolapCubeLevel getChildLevel()
Specified by:
getChildLevel in interface Level
Overrides:
getChildLevel in class LevelBase

getParentLevel

public final RolapCubeLevel getParentLevel()
Specified by:
getParentLevel in interface Level
Overrides:
getParentLevel in class LevelBase

getCaption

public String getCaption()
Description copied from class: OlapElementBase
Returns the display name of this catalog element. If no caption is defined, the name is returned.

Specified by:
getCaption in interface OlapElement
Overrides:
getCaption in class OlapElementBase

setCaption

public void setCaption(String caption)
Description copied from class: OlapElementBase
Sets the display name of this catalog element.

Overrides:
setCaption in class OlapElementBase

getRolapLevel

public RolapLevel getRolapLevel()
Returns the underlying level.

Returns:
Underlying level

equals

public boolean equals(RolapCubeLevel level)

hasClosedPeer

boolean hasClosedPeer()
Description copied from class: RolapLevel
Returns true when the level is part of a parent/child hierarchy and has an equivalent closed level.

Overrides:
hasClosedPeer in class RolapLevel

getClosedPeer

public RolapCubeLevel getClosedPeer()
Overrides:
getClosedPeer in class RolapLevel

getMemberFormatter

public MemberFormatter getMemberFormatter()
Description copied from interface: Level
Returns the object that is used to format members of this level.

Specified by:
getMemberFormatter in interface Level
Overrides:
getMemberFormatter in class LevelBase

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads