Class SubstitutingMemberReader
- java.lang.Object
-
- mondrian.rolap.DelegatingMemberReader
-
- mondrian.rolap.SubstitutingMemberReader
-
- All Implemented Interfaces:
MemberReader,MemberSource
public abstract class SubstitutingMemberReader extends DelegatingMemberReader
Implementation ofMemberReaderwhich replaces given members with a substitute.Derived classes must implement the
DelegatingMemberReader.substitute(RolapMember)andDelegatingMemberReader.desubstitute(RolapMember)methods.- Since:
- Oct 5, 2007
- Author:
- jhyde
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classSubstitutingMemberReader.SubstitutingMemberListList which writes through to an underlying list, substituting members as they are written and desubstituting as they are read.
-
Field Summary
-
Fields inherited from class mondrian.rolap.DelegatingMemberReader
memberReader
-
-
Constructor Summary
Constructors Constructor Description SubstitutingMemberReader(MemberReader memberReader)Creates a SubstitutingMemberReader.
-
Method Summary
All Methods Instance 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.RolapMembergetDefaultMember()RolapHierarchygetHierarchy()Returns the hierarchy that this source is reading for.RolapMembergetLeadMember(RolapMember member, int n)Returns the membernaftermemberin the same level (or before, ifnis negative).TupleReader.MemberBuildergetMemberBuilder()voidgetMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)Returns all members which are a child of one of the members inparentMembers, sorted by ordinal.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.voidgetMemberChildren(RolapMember parentMember, List<RolapMember> children)Writes all childrenparentMembertochildren.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>getMembers()Returns all members of this hierarchy, sorted by ordinal.List<RolapMember>getMembersInLevel(RolapLevel level)Returns all of the members inlevelwhose ordinal lies betweenstartOrdinalandendOrdinal.List<RolapMember>getMembersInLevel(RolapLevel level, TupleConstraint constraint)Returns the members in the given Level, optionally applying a constraint.List<RolapMember>getRootMembers()Returns all members of this hierarchy which do not have a parent, sorted by ordinal.RolapMemberlookupMember(List<Id.Segment> uniqueNameParts, boolean failIfNotFound)Finds a member based upon its unique name.booleansetCache(MemberCache cache)Sets the cache which thisMemberSourcewill write to.-
Methods inherited from class mondrian.rolap.DelegatingMemberReader
desubstitute, getLevelMemberCount, getMemberByKey, substitute
-
-
-
-
Constructor Detail
-
SubstitutingMemberReader
SubstitutingMemberReader(MemberReader memberReader)
Creates a SubstitutingMemberReader.- Parameters:
memberReader- Parent member reader
-
-
Method Detail
-
getLeadMember
public RolapMember getLeadMember(RolapMember member, int n)
Description copied from interface:MemberReaderReturns the membernaftermemberin the same level (or before, ifnis negative). ReturnsHierarchy.getNullMember()if we run off the beginning or end of the level.- Specified by:
getLeadMemberin interfaceMemberReader- Overrides:
getLeadMemberin classDelegatingMemberReader
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level)
Description copied from interface:MemberReaderReturns all of the members inlevelwhose ordinal lies betweenstartOrdinalandendOrdinal.If this object
supports cache-writeback, also writes these members to the cache.- Specified by:
getMembersInLevelin interfaceMemberReader- Overrides:
getMembersInLevelin classDelegatingMemberReader- Returns:
ListofRolapMember
-
getMemberRange
public void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)
Description copied from interface:MemberReaderWrites all members betweenstartMemberandendMemberintolist.- Specified by:
getMemberRangein interfaceMemberReader- Overrides:
getMemberRangein classDelegatingMemberReader
-
compare
public int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
Description copied from interface:MemberReaderCompares two members according to their order in a prefix ordered traversal. IfsiblingsAreEqual, then two members with the same parent will compare equal.- Specified by:
comparein interfaceMemberReader- Overrides:
comparein classDelegatingMemberReader- 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
-
getHierarchy
public RolapHierarchy getHierarchy()
Description copied from interface:MemberSourceReturns the hierarchy that this source is reading for.- Specified by:
getHierarchyin interfaceMemberSource- Overrides:
getHierarchyin classDelegatingMemberReader
-
setCache
public boolean setCache(MemberCache cache)
Description copied from interface:MemberSourceSets the cache which thisMemberSourcewill write to.Cache-writeback is optional (for example,
SqlMemberSourcesupports it, andArrayMemberSourcedoes not), and the return value from this method indicates whether this object supports it.If this method returns
true, theMemberSource.getMembers(),MemberSource.getRootMembers()andMemberSource.getMemberChildren(mondrian.rolap.RolapMember, java.util.List<mondrian.rolap.RolapMember>)methods must write to the cache, in addition to returning members as a return value.- Specified by:
setCachein interfaceMemberSource- Overrides:
setCachein classDelegatingMemberReader- Parameters:
cache- TheMemberCachewhich the caller would like thisMemberSourceto write to.- Returns:
- Whether this
MemberSourcesupports cache-writeback.
-
getMembers
public List<RolapMember> getMembers()
Description copied from interface:MemberSourceReturns all members of this hierarchy, sorted by ordinal.If this object
supports cache-writeaback, also writes these members to the cache.- Specified by:
getMembersin interfaceMemberSource- Overrides:
getMembersin classDelegatingMemberReader
-
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 classDelegatingMemberReader- Returns:
ListofRolapMembers
-
getMemberChildren
public void getMemberChildren(RolapMember parentMember, List<RolapMember> children)
Description copied from interface:MemberSourceWrites all childrenparentMembertochildren.If this object
supports cache-writeback, also writes these members to the cache.- Specified by:
getMemberChildrenin interfaceMemberSource- Overrides:
getMemberChildrenin classDelegatingMemberReader
-
getMemberChildren
public void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)
Description copied from interface:MemberSourceReturns all members which are a child of one of the members inparentMembers, sorted by ordinal.If this object
supports cache-writeaback, also writes these members to the cache.- Specified by:
getMemberChildrenin interfaceMemberSource- Overrides:
getMemberChildrenin classDelegatingMemberReader
-
getMemberCount
public int getMemberCount()
Description copied from interface:MemberSourceReturns an estimate of number of members in this hierarchy.- Specified by:
getMemberCountin interfaceMemberSource- Overrides:
getMemberCountin classDelegatingMemberReader
-
lookupMember
public RolapMember lookupMember(List<Id.Segment> uniqueNameParts, boolean failIfNotFound)
Description copied from interface:MemberSourceFinds a member based upon its unique name.- Specified by:
lookupMemberin interfaceMemberSource- Overrides:
lookupMemberin classDelegatingMemberReader
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)
Description copied from interface:MemberReaderPopulates a list of the children of a Member, optionally applying a constraint.- Specified by:
getMemberChildrenin interfaceMemberReader- Overrides:
getMemberChildrenin classDelegatingMemberReader- 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.
-
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 classDelegatingMemberReader- 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 classDelegatingMemberReader- Parameters:
level- Levelconstraint- Constraint- Returns:
- list of members
-
getDefaultMember
public RolapMember getDefaultMember()
- Specified by:
getDefaultMemberin interfaceMemberReader- Overrides:
getDefaultMemberin classDelegatingMemberReader
-
getMemberParent
public RolapMember getMemberParent(RolapMember member)
- Specified by:
getMemberParentin interfaceMemberReader- Overrides:
getMemberParentin classDelegatingMemberReader
-
getMemberBuilder
public TupleReader.MemberBuilder getMemberBuilder()
- Specified by:
getMemberBuilderin interfaceMemberReader- Overrides:
getMemberBuilderin classDelegatingMemberReader
-
-