Package mondrian.rolap
Class RolapCubeHierarchy.NoCacheRolapCubeHierarchyMemberReader
- java.lang.Object
-
- mondrian.rolap.NoCacheMemberReader
-
- mondrian.rolap.RolapCubeHierarchy.NoCacheRolapCubeHierarchyMemberReader
-
- All Implemented Interfaces:
MemberSource,RolapCubeHierarchy.RolapCubeHierarchyMemberReader
- Enclosing class:
- RolapCubeHierarchy
public class RolapCubeHierarchy.NoCacheRolapCubeHierarchyMemberReader extends NoCacheMemberReader implements RolapCubeHierarchy.RolapCubeHierarchyMemberReader
Same asRolapCubeHierarchy.RolapCubeHierarchyMemberReaderbut without caching anything.
-
-
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.
-
Constructor Summary
Constructors Constructor Description NoCacheRolapCubeHierarchyMemberReader()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intcompare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)Compares two members according to their order in a prefix ordered traversal.RolapMemberdesubstitute(RolapMember member)Returns the member which was substituted.RolapMembergetDefaultMember()RolapMembergetLeadMember(RolapMember member, int n)Returns the membernaftermemberin the same level (or before, ifnis negative).intgetLevelMemberCount(RolapLevel level)Returns the number of members in this level.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)Map<? extends Member,Access>getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)Populates a list of the children of a Member, optionally applying a constraint.intgetMemberCount()Returns an estimate of number of members in this hierarchy.RolapMembergetMemberParent(RolapMember member)voidgetMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)Writes all members betweenstartMemberandendMemberintolist.List<RolapMember>getMembersInLevel(RolapLevel level)Returns all of the members inlevelwhose ordinal lies betweenstartOrdinalandendOrdinal.List<RolapMember>getMembersInLevel(RolapLevel level, TupleConstraint 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 ofmemberintoresult.RolapMembersubstitute(RolapMember member)Substitutes a given member.-
Methods inherited from class mondrian.rolap.NoCacheMemberReader
compare, desubstitute, getChildrenFromCache, getDefaultMember, getHierarchy, getLeadMember, getLevelMemberCount, getLevelMembersFromCache, getMember, getMember, getMemberByKey, getMemberChildren, getMemberChildren, getMemberChildren, getMemberParent, getMemberRange, getMembers, getMembersInLevel, isMutable, lookupMember, makeKey, putChildren, putChildren, putMember, removeMember, removeMemberAndDescendants, 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.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()
- Overrides:
getMemberBuilderin classNoCacheMemberReader
-
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 classNoCacheMemberReader- Returns:
ListofRolapMembers
-
readMemberChildren
protected void readMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from class:NoCacheMemberReaderReads the children ofmemberintoresult.- Overrides:
readMemberChildrenin classNoCacheMemberReader- 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)
- Overrides:
getMemberChildrenin classNoCacheMemberReader
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
- Overrides:
getMembersInLevelin classNoCacheMemberReader
-
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 classNoCacheMemberReader
-
getLeadMember
public abstract RolapMember getLeadMember(RolapMember member, int n)
Returns the membernaftermemberin the same level (or before, ifnis negative). ReturnsHierarchy.getNullMember()if we run off the beginning or end of the level.
-
getMembersInLevel
public abstract List<RolapMember> getMembersInLevel(RolapLevel level)
Returns all of the members inlevelwhose ordinal lies betweenstartOrdinalandendOrdinal.If this object
supports cache-writeback, also writes these members to the cache.- Returns:
ListofRolapMember
-
getMemberRange
public abstract void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)
Writes all members betweenstartMemberandendMemberintolist.
-
compare
public abstract int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
Compares two members according to their order in a prefix ordered traversal. IfsiblingsAreEqual, then two members with the same parent will compare equal.- Returns:
- less than zero if m1 occurs before m2,
greater than zero if m1 occurs after m2,
zero if m1 is equal to m2, or if
siblingsAreEqualand m1 and m2 have the same parent
-
getMemberChildren
public abstract Map<? extends Member,Access> getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)
Populates a list of the children of a Member, optionally applying a constraint.- Parameters:
member- 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.
-
getLevelMemberCount
public abstract int getLevelMemberCount(RolapLevel level)
Returns the number of members in this level.- Parameters:
level- Level- Returns:
- number of members in level
-
getDefaultMember
public abstract RolapMember getDefaultMember()
-
getMemberParent
public abstract RolapMember getMemberParent(RolapMember member)
-
substitute
public abstract RolapMember substitute(RolapMember member)
Substitutes a given member. If member is null, returns null.This method is called whenever a member is returned from the wrapped member reader and is to be returned to the caller. You could say that it translates 'to caller space'.
- Parameters:
member- Member- Returns:
- Substitute member
-
desubstitute
public abstract RolapMember desubstitute(RolapMember member)
Returns the member which was substituted. If member is null, returns null.This method is called whenever the caller passes a member into a method and needs to be passed to a method on the wrapped member reader. You could say that it translates 'from caller space'.
- Parameters:
member- Member- Returns:
- Internal member
-
getMemberByKey
public abstract RolapMember getMemberByKey(RolapLevel level, List<Comparable> keyValues)
Looks up a member by its key value.- Parameters:
level- LevelkeyValues- Key values- Returns:
- Member, or null
-
-