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.RolapCubeSqlMemberSourcecubeSourcecubeSource is passed as our member builderprotected MemberCacheHelperrolapCubeCacheHelperthis 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 voidcheckCacheStatus()TupleReader.MemberBuildergetMemberBuilder()RolapMembergetMemberByKey(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.intgetMemberCount()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.MemberCacheHelpergetRolapCubeMemberCacheHelper()List<RolapMember>getRootMembers()Returns all members of this hierarchy which do not have a parent, sorted by ordinal.RolapCubeMemberlookupCubeMember(RolapCubeMember parent, RolapMember member, RolapCubeLevel level)protected voidreadMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)Reads the children ofmemberinto 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:
getMemberBuilderin interfaceMemberReader- Overrides:
getMemberBuilderin classSmartMemberReader
-
getRolapCubeMemberCacheHelper
public MemberCacheHelper getRolapCubeMemberCacheHelper()
- Specified by:
getRolapCubeMemberCacheHelperin interfaceRolapCubeHierarchy.RolapCubeHierarchyMemberReader
-
getRootMembers
public List<RolapMember> getRootMembers()
Description copied from interface:MemberSourceReturns 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:
getRootMembersin interfaceMemberSource- Overrides:
getRootMembersin classSmartMemberReader- Returns:
ListofRolapMembers
-
readMemberChildren
protected void readMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from class:SmartMemberReaderReads the children ofmemberinto cache, and also intoresult.- Overrides:
readMemberChildrenin 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:MemberReaderPopulates a list of the children of a given set of Members, optionally applying a constraint.- Specified by:
getMemberChildrenin interfaceMemberReader- Overrides:
getMemberChildrenin 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
nullvalues.
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
Description copied from interface:MemberReaderReturns the members in the given Level, optionally applying a constraint.- Specified by:
getMembersInLevelin interfaceMemberReader- Overrides:
getMembersInLevelin classSmartMemberReader- Parameters:
level- Levelconstraint- Constraint- Returns:
- list of members
-
getMemberByKey
public RolapMember getMemberByKey(RolapLevel level, List<Comparable> keyValues)
Description copied from interface:MemberReaderLooks up a member by its key value.- Specified by:
getMemberByKeyin interfaceMemberReader- Overrides:
getMemberByKeyin classSmartMemberReader- Parameters:
level- LevelkeyValues- Key values- Returns:
- Member, or null
-
lookupCubeMember
public RolapCubeMember lookupCubeMember(RolapCubeMember parent, RolapMember member, RolapCubeLevel level)
- Specified by:
lookupCubeMemberin interfaceRolapCubeHierarchy.RolapCubeHierarchyMemberReader
-
getMemberCount
public int getMemberCount()
Description copied from interface:MemberSourceReturns an estimate of number of members in this hierarchy.- Specified by:
getMemberCountin interfaceMemberSource- Overrides:
getMemberCountin classSmartMemberReader
-
checkCacheStatus
protected void checkCacheStatus()
- Overrides:
checkCacheStatusin classSmartMemberReader
-
-