public class RolapCubeHierarchy extends RolapHierarchy
Modifier and Type | Class and Description |
---|---|
class |
RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader
member reader wrapper - uses existing member reader,
but wraps and caches all intermediate members.
|
class |
RolapCubeHierarchy.NoCacheRolapCubeHierarchyMemberReader
Same as
RolapCubeHierarchy.RolapCubeHierarchyMemberReader but without caching
anything. |
static interface |
RolapCubeHierarchy.RolapCubeHierarchyMemberReader
TODO: Since this is part of a caching strategy, should be implemented
as a Strategy Pattern, avoiding hierarchy.
|
static class |
RolapCubeHierarchy.RolapCubeSqlMemberSource |
RolapHierarchy.LimitedRollupMember, RolapHierarchy.RolapCalculatedMeasure, RolapHierarchy.RolapNullMember
OlapElement.LocalizedProperty
Modifier and Type | Field and Description |
---|---|
protected boolean |
usingCubeFact
True if the hierarchy is degenerate - has no dimension table of its own,
just drives from the cube's fact table.
|
closureFor, nullLevel, relation, xmlHierarchy
allLevelName, allMemberName, description, dimension, hasAll, levels, name, subName, uniqueName
caption, visible
Constructor and Description |
---|
RolapCubeHierarchy(RolapCubeDimension cubeDimension,
MondrianDef.CubeDimension cubeDim,
RolapHierarchy rolapHierarchy,
String subName,
int ordinal)
Creates a RolapCubeHierarchy.
|
Modifier and Type | Method and Description |
---|---|
protected int |
computeHashCode()
Computes this object's hash code.
|
(package private) String |
convertMemberName(String memberUniqueName)
Converts the unique name of a member of the underlying hierarchy to
the appropriate name for this hierarchy.
|
Member |
createMember(Member parent,
Level level,
String name,
Formula formula)
Creates a member of this hierarchy.
|
boolean |
equals(Object o) |
protected void |
extractNewAliases(MondrianDef.RelationOrJoin oldrel,
MondrianDef.RelationOrJoin newrel)
Populates the alias map for the old and new relations.
|
String |
getAllLevelName()
Returns the name of the 'all' level in this hierarchy.
|
RolapCubeMember |
getAllMember()
Returns the 'all' member.
|
String |
getAllMemberName() |
RolapCube |
getCube() |
RolapCubeMember |
getDefaultMember()
Returns the default member of this hierarchy.
|
RolapCubeLevel[] |
getLevels()
Returns the levels in this hierarchy.
|
(package private) MemberReader |
getMemberReader() |
Member |
getNullMember()
Returns a special member representing the "null" value.
|
int |
getOrdinalInCube()
Returns the ordinal of this hierarchy in its cube.
|
MondrianDef.RelationOrJoin |
getRelation()
The currentRelation object is derived from the shared relation object
it is generated via the RolapStar object, and contains unique aliases
for it's particular join path
|
RolapHierarchy |
getRolapHierarchy() |
String |
getSharedHierarchyName()
Returns the name of the source hierarchy, if this hierarchy is shared,
otherwise null.
|
(package private) void |
init(MondrianDef.CubeDimension xmlDimension)
Initializes a hierarchy within the context of a cube.
|
boolean |
isUsingCubeFact() |
String |
lookupAlias(String origTable) |
void |
setDefaultMember(Member defaultMeasure)
Sets default member of this Hierarchy.
|
(package private) void |
setMemberReader(MemberReader memberReader) |
(package private) boolean |
tableExists(String tableName) |
addToFrom, addToFrom, addToFromInverse, createAnnotationMap, createClosedPeerDimension, createMemberReader, getAggregateChildrenExpression, getAlias, getAnnotationMap, getLogger, getLowestMembersForAccess, getRolapSchema, getTable, getUniqueKeyLevelName, getUniqueTable, getXmlHierarchy, isRagged, newMeasuresLevel
equals, getDescription, getDimension, getHierarchy, getName, getQualifiedName, getSubName, getUniqueName, getUniqueNameSsas, hasAll, lookupChild
clone, getCaption, getLocalized, hashCode, isVisible, setCaption, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
getCaption, getLocalized, isVisible
protected final boolean usingCubeFact
public RolapCubeHierarchy(RolapCubeDimension cubeDimension, MondrianDef.CubeDimension cubeDim, RolapHierarchy rolapHierarchy, String subName, int ordinal)
cubeDimension
- DimensioncubeDim
- XML dimension elementrolapHierarchy
- Wrapped hierarchysubName
- Name of hierarchy within dimensionordinal
- Ordinal of hierarchy within cubepublic RolapCubeLevel[] getLevels()
Hierarchy
If a hierarchy is subject to access-control, some of the levels may
not be visible; use SchemaReader.getHierarchyLevels(mondrian.olap.Hierarchy)
instead.
getLevels
in interface Hierarchy
getLevels
in class HierarchyBase
public String getAllMemberName()
getAllMemberName
in class HierarchyBase
public String getSharedHierarchyName()
RolapHierarchy
If this hierarchy is a public -- that is, it belongs to a dimension
which is a usage of a shared dimension -- then
sharedHierarchyName
holds the unique name of the shared
hierarchy; otherwise it is null.
Suppose this hierarchy is "Weekly" in the dimension "Order Date" of
cube "Sales", and that "Order Date" is a usage of the "Time"
dimension. Then sharedHierarchyName
will be
"[Time].[Weekly]".
getSharedHierarchyName
in class RolapHierarchy
public String getAllLevelName()
HierarchyBase
getAllLevelName
in class HierarchyBase
public boolean isUsingCubeFact()
public String lookupAlias(String origTable)
public final RolapHierarchy getRolapHierarchy()
public final int getOrdinalInCube()
RolapHierarchy
Temporarily defined against RolapHierarchy; will be moved to RolapCubeHierarchy as soon as the measures hierarchy is a RolapCubeHierarchy.
getOrdinalInCube
in class RolapHierarchy
protected void extractNewAliases(MondrianDef.RelationOrJoin oldrel, MondrianDef.RelationOrJoin newrel)
This method may be simplified when we obsolete
HierarchyUsage
.
oldrel
- Original relation, as defined in the schemanewrel
- New star relation, generated by RolapStar, canonical, and
shared between all cubes with similar structurepublic boolean equals(Object o)
equals
in class RolapHierarchy
protected int computeHashCode()
OlapElementBase
computeHashCode
in class RolapHierarchy
public Member createMember(Member parent, Level level, String name, Formula formula)
Hierarchy
formula
must not be null.createMember
in interface Hierarchy
createMember
in class RolapHierarchy
boolean tableExists(String tableName)
tableExists
in class RolapHierarchy
public MondrianDef.RelationOrJoin getRelation()
getRelation
in class RolapHierarchy
public final RolapCubeMember getDefaultMember()
Hierarchy
If a hierarchy is subject to access-control, the default member may
not be visible, so use SchemaReader.getHierarchyDefaultMember(mondrian.olap.Hierarchy)
.
getDefaultMember
in interface Hierarchy
getDefaultMember
in class RolapHierarchy
public Member getNullMember()
Hierarchy
Lead
,
NextMember
and ParentMember
walk off the end
of the hierarchy.getNullMember
in interface Hierarchy
getNullMember
in class RolapHierarchy
public RolapCubeMember getAllMember()
getAllMember
in interface Hierarchy
getAllMember
in class RolapHierarchy
void setMemberReader(MemberReader memberReader)
setMemberReader
in class RolapHierarchy
MemberReader getMemberReader()
getMemberReader
in class RolapHierarchy
public void setDefaultMember(Member defaultMeasure)
RolapHierarchy
setDefaultMember
in class RolapHierarchy
defaultMeasure
- Default membervoid init(MondrianDef.CubeDimension xmlDimension)
RolapHierarchy
init
in class RolapHierarchy
final String convertMemberName(String memberUniqueName)
For example, if the shared hierarchy is [Time].[Quarterly] and the hierarchy usage is [Ship Time].[Quarterly], then [Time].[1997].[Q1] would be translated to [Ship Time].[Quarerly].[1997].[Q1].
memberUniqueName
- Unique name of member from underlying hierarchy