Package mondrian.rolap
Class RolapHierarchy.LimitedRollupMember
- java.lang.Object
-
- mondrian.olap.OlapElementBase
-
- mondrian.olap.MemberBase
-
- mondrian.rolap.RolapMemberBase
-
- mondrian.rolap.DelegatingRolapMember
-
- mondrian.rolap.RolapCubeMember
-
- mondrian.rolap.RolapHierarchy.LimitedRollupMember
-
- All Implemented Interfaces:
Comparable
,Annotated
,Member
,OlapElement
,RolapMember
,RolapMemberInCube
- Enclosing class:
- RolapHierarchy
public static class RolapHierarchy.LimitedRollupMember extends RolapCubeMember
Substitute for a member in a hierarchy whose rollup policy is 'partial' or 'hidden'. The member is calculated using an expression which aggregates only visible descendants.Note that this class extends RolapCubeMember only because other code expects that all members in a RolapCubeHierarchy are RolapCubeMembers. As part of
Bug.BugSegregateRolapCubeMemberFixed
, maybe makeRolapCubeMember
an interface.- See Also:
Role.RollupPolicy
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class mondrian.rolap.RolapMemberBase
RolapMemberBase.DefaultPropertyValueMapFactory, RolapMemberBase.PropertyValueMapFactory, RolapMemberBase.PropertyValueMapFactoryFactory
-
Nested classes/interfaces inherited from interface mondrian.olap.Member
Member.MemberType
-
Nested classes/interfaces inherited from interface mondrian.olap.OlapElement
OlapElement.LocalizedProperty
-
-
Field Summary
Fields Modifier and Type Field Description RolapMember
member
-
Fields inherited from class mondrian.rolap.RolapCubeMember
cubeLevel, parentCubeMember
-
Fields inherited from class mondrian.olap.MemberBase
flags, level, parentMember, uniqueName
-
Fields inherited from class mondrian.olap.OlapElementBase
caption, visible
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
computeCalculated(Member.MemberType memberType)
Computes the value to be returned byMemberBase.isCalculated()
, so it can be cached in a variable.boolean
containsAggregateFunction()
Returns whether this calculation contains an aggregate function.boolean
equals(Object o)
Calc
getCompiledExpression(mondrian.rolap.RolapEvaluatorRoot root)
Returns the compiled expression to evaluate the scalar value of the current cell.Exp
getExpression()
Returns the expression by which this member is calculated.int
getHierarchyOrdinal()
Returns the ordinal of this calculation; to resolve ties.int
getSolveOrder()
Returns the solve order of this calculation.int
hashCode()
boolean
isCalculated()
Returns whether this member is computed using either awith member
clause in an mdx query or a calculated member defined in cube.boolean
isCalculatedInQuery()
Returns whether this calculation is a member is computed from aWITH MEMBER
clause in an MDX query.boolean
isEvaluated()
Returns whether this member should be evaluated within the Evaluator.void
setContextIn(RolapEvaluator evaluator)
Pushes this calculated member or tuple onto the stack of evaluation contexts, and sets the context to the default member of the hierarchy.-
Methods inherited from class mondrian.rolap.RolapCubeMember
compareTo, equals, getCube, getDataMember, getDimension, getHierarchy, getLevel, getParentMember, getPropertyValue, getPropertyValue, getRolapMember, getUniqueName, lookupChild, setProperty, toString
-
Methods inherited from class mondrian.rolap.DelegatingRolapMember
getAncestorMembers, getAnnotationMap, getCaption, getDepth, getDescription, getKey, getMemberType, getName, getOrderKey, getOrdinal, getParentUniqueName, getProperties, getPropertyFormattedValue, getQualifiedName, getSolveOrder, isAll, isAllMember, isCalculatedInQuery, isChildOrEqualTo, isHidden, isMeasure, isNull, isParentChildLeaf, isParentChildPhysicalMember, setName
-
Methods inherited from class mondrian.rolap.RolapMemberBase
childLevelHasApproxRowCount, containsAggregateFunction, getAllMembers, getCaptionValue, getCompiledExpression, getHierarchyCardinality, getHierarchyOrdinal, getLogger, getPropertyFromMap, keyToString, setCaptionValue, setContextIn, setOrdinal, setOrdinals, setUniqueName
-
Methods inherited from class mondrian.olap.MemberBase
isChildOrEqualTo, isOnSameHierarchyChain, isOnSameHierarchyChainInternal
-
Methods inherited from class mondrian.olap.OlapElementBase
clone, computeHashCode, getLocalized, isVisible, setCaption
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface mondrian.olap.Annotated
getAnnotationMap
-
Methods inherited from interface mondrian.olap.Member
getAncestorMembers, getDepth, getMemberType, getOrderKey, getOrdinal, getParentUniqueName, getProperties, getPropertyFormattedValue, getSolveOrder, isAll, isCalculatedInQuery, isChildOrEqualTo, isHidden, isMeasure, isNull, isOnSameHierarchyChain, isParentChildLeaf, isParentChildPhysicalMember, setName
-
Methods inherited from interface mondrian.olap.OlapElement
getCaption, getDescription, getLocalized, getName, getQualifiedName, isVisible
-
Methods inherited from interface mondrian.rolap.RolapMember
getKey, isAllMember
-
-
-
-
Field Detail
-
member
public final RolapMember member
-
-
Method Detail
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classRolapCubeMember
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classRolapCubeMember
-
getExpression
public Exp getExpression()
Description copied from class:MemberBase
Returns the expression by which this member is calculated. The expression is not null if and only if the member is not calculated.- Specified by:
getExpression
in interfaceMember
- Overrides:
getExpression
in classRolapCubeMember
-
computeCalculated
protected boolean computeCalculated(Member.MemberType memberType)
Description copied from class:MemberBase
Computes the value to be returned byMemberBase.isCalculated()
, so it can be cached in a variable.- Overrides:
computeCalculated
in classMemberBase
- Parameters:
memberType
- Member type- Returns:
- Whether this member is calculated
-
isCalculated
public boolean isCalculated()
Description copied from interface:Member
Returns whether this member is computed using either awith member
clause in an mdx query or a calculated member defined in cube.- Specified by:
isCalculated
in interfaceMember
- Overrides:
isCalculated
in classDelegatingRolapMember
-
isEvaluated
public boolean isEvaluated()
Description copied from interface:Member
Returns whether this member should be evaluated within the Evaluator.Normally
Member.isCalculated()
andMember.isEvaluated()
should return the same value, but in situations where mondrian would like to treat the two concepts separately such in role based security, these values may differ.- Specified by:
isEvaluated
in interfaceMember
- Overrides:
isEvaluated
in classDelegatingRolapMember
- Returns:
- true if evaluated
-
setContextIn
public abstract void setContextIn(RolapEvaluator evaluator)
Pushes this calculated member or tuple onto the stack of evaluation contexts, and sets the context to the default member of the hierarchy.- Parameters:
evaluator
- Evaluator
-
getSolveOrder
public abstract int getSolveOrder()
Returns the solve order of this calculation. Identifies which order calculations are expanded.- Returns:
- Solve order
-
getHierarchyOrdinal
public abstract int getHierarchyOrdinal()
Returns the ordinal of this calculation; to resolve ties.- Returns:
- Ordinal or calculation
-
isCalculatedInQuery
public abstract boolean isCalculatedInQuery()
Returns whether this calculation is a member is computed from aWITH MEMBER
clause in an MDX query.- Returns:
- whether this calculation is computed in an MDX query
-
getCompiledExpression
public abstract Calc getCompiledExpression(mondrian.rolap.RolapEvaluatorRoot root)
Returns the compiled expression to evaluate the scalar value of the current cell. This method will be called frequently, so the implementation should probably compile once and cache the result.- Parameters:
root
- Root evaluation context- Returns:
- Compiled scalar expression
-
containsAggregateFunction
public abstract boolean containsAggregateFunction()
Returns whether this calculation contains an aggregate function.- Returns:
- Whether this calculation contains an aggregate function.
-
-