Package mondrian.rolap
Class RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader
- java.lang.Object
-
- mondrian.rolap.SmartMemberReader
-
- mondrian.rolap.RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader
-
- All Implemented Interfaces:
MemberReader
,MemberSource
,RolapCubeHierarchy.RolapCubeHierarchyMemberReader
- Enclosing class:
- RolapCubeHierarchy
public class RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader extends SmartMemberReader implements RolapCubeHierarchy.RolapCubeHierarchyMemberReader
member reader wrapper - uses existing member reader, but wraps and caches all intermediate members.Synchronization. Most synchronization takes place within SmartMemberReader. All synchronization is done on the cacheHelper object.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class mondrian.rolap.SmartMemberReader
SmartMemberReader.SiblingIterator
-
-
Field Summary
Fields Modifier and Type Field Description protected RolapCubeHierarchy.RolapCubeSqlMemberSource
cubeSource
cubeSource is passed as our member builderprotected MemberCacheHelper
rolapCubeCacheHelper
this cache caches RolapCubeMembers that are light wrappers around shared and non-shared Hierarchy RolapMembers.-
Fields inherited from class mondrian.rolap.SmartMemberReader
cacheHelper, rootMembers, source
-
-
Constructor Summary
Constructors Constructor Description CacheRolapCubeHierarchyMemberReader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkCacheStatus()
TupleReader.MemberBuilder
getMemberBuilder()
RolapMember
getMemberByKey(RolapLevel level, List<Comparable> keyValues)
Looks up a member by its key value.Map<? extends Member,Access>
getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Populates a list of the children of a given set of Members, optionally applying a constraint.int
getMemberCount()
Returns an estimate of number of members in this hierarchy.List<RolapMember>
getMembersInLevel(RolapLevel level, TupleConstraint constraint)
Returns the members in the given Level, optionally applying a constraint.MemberCacheHelper
getRolapCubeMemberCacheHelper()
List<RolapMember>
getRootMembers()
Returns all members of this hierarchy which do not have a parent, sorted by ordinal.RolapCubeMember
lookupCubeMember(RolapCubeMember parent, RolapMember member, RolapCubeLevel level)
protected void
readMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Reads the children ofmember
into cache, and also intoresult
.-
Methods inherited from class mondrian.rolap.SmartMemberReader
compare, desubstitute, getDefaultMember, getHierarchy, getLeadMember, getLevelMemberCount, getMemberCache, getMemberChildren, getMemberChildren, getMemberChildren, getMemberParent, getMemberRange, getMembers, getMembersInLevel, isSorted, lookupMember, setCache, substitute
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface mondrian.rolap.MemberReader
compare, desubstitute, getDefaultMember, getLeadMember, getLevelMemberCount, getMemberChildren, getMemberParent, getMemberRange, getMembersInLevel, substitute
-
Methods inherited from interface mondrian.rolap.MemberSource
getHierarchy, getMemberChildren, getMemberChildren, getMembers, lookupMember, setCache
-
-
-
-
Field Detail
-
cubeSource
protected final RolapCubeHierarchy.RolapCubeSqlMemberSource cubeSource
cubeSource is passed as our member builder
-
rolapCubeCacheHelper
protected MemberCacheHelper rolapCubeCacheHelper
this cache caches RolapCubeMembers that are light wrappers around shared and non-shared Hierarchy RolapMembers. The inherited cacheHelper object contains non-shared hierarchy RolapMembers. non-shared hierarchy RolapMembers are created when a member lookup involves the Cube's fact table.
-
-
Method Detail
-
getMemberBuilder
public TupleReader.MemberBuilder getMemberBuilder()
- Specified by:
getMemberBuilder
in interfaceMemberReader
- Overrides:
getMemberBuilder
in classSmartMemberReader
-
getRolapCubeMemberCacheHelper
public MemberCacheHelper getRolapCubeMemberCacheHelper()
- Specified by:
getRolapCubeMemberCacheHelper
in interfaceRolapCubeHierarchy.RolapCubeHierarchyMemberReader
-
getRootMembers
public List<RolapMember> getRootMembers()
Description copied from interface:MemberSource
Returns all members of this hierarchy which do not have a parent, sorted by ordinal.If this object
supports cache-writeback
, also writes these members to the cache.- Specified by:
getRootMembers
in interfaceMemberSource
- Overrides:
getRootMembers
in classSmartMemberReader
- Returns:
List
ofRolapMember
s
-
readMemberChildren
protected void readMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from class:SmartMemberReader
Reads the children ofmember
into cache, and also intoresult
.- Overrides:
readMemberChildren
in classSmartMemberReader
- Parameters:
parentMembers
- Members whose children to readchildren
- Children are written here, in orderconstraint
- restricts the returned members if possible (optional optimization)
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from interface:MemberReader
Populates a list of the children of a given set of Members, optionally applying a constraint.- Specified by:
getMemberChildren
in interfaceMemberReader
- Overrides:
getMemberChildren
in classSmartMemberReader
- Parameters:
parentMembers
- List of members whose children to findchildren
- List to populate with membersconstraint
- Constraint- Returns:
- After populating the list passed as an argument,
this method returns a map of the members it just populated
along with the Access information applicable. If no access
control applies to the member, the map will contain
null
values.
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
Description copied from interface:MemberReader
Returns the members in the given Level, optionally applying a constraint.- Specified by:
getMembersInLevel
in interfaceMemberReader
- Overrides:
getMembersInLevel
in classSmartMemberReader
- Parameters:
level
- Levelconstraint
- Constraint- Returns:
- list of members
-
getMemberByKey
public RolapMember getMemberByKey(RolapLevel level, List<Comparable> keyValues)
Description copied from interface:MemberReader
Looks up a member by its key value.- Specified by:
getMemberByKey
in interfaceMemberReader
- Overrides:
getMemberByKey
in classSmartMemberReader
- Parameters:
level
- LevelkeyValues
- Key values- Returns:
- Member, or null
-
lookupCubeMember
public RolapCubeMember lookupCubeMember(RolapCubeMember parent, RolapMember member, RolapCubeLevel level)
- Specified by:
lookupCubeMember
in interfaceRolapCubeHierarchy.RolapCubeHierarchyMemberReader
-
getMemberCount
public int getMemberCount()
Description copied from interface:MemberSource
Returns an estimate of number of members in this hierarchy.- Specified by:
getMemberCount
in interfaceMemberSource
- Overrides:
getMemberCount
in classSmartMemberReader
-
checkCacheStatus
protected void checkCacheStatus()
- Overrides:
checkCacheStatus
in classSmartMemberReader
-
-