Class SubstitutingMemberReader
- java.lang.Object
-
- mondrian.rolap.SubstitutingMemberReader
-
- All Implemented Interfaces:
MemberSource
public abstract class SubstitutingMemberReader extends Object
Implementation ofMemberReader
which replaces given members with a substitute.Derived classes must implement the
substitute(RolapMember)
anddesubstitute(RolapMember)
methods.- Since:
- Oct 5, 2007
- Author:
- jhyde
-
-
Field Summary
Fields Modifier and Type Field Description protected mondrian.rolap.MemberReader
memberReader
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
RolapMember
desubstitute(RolapMember member)
RolapMember
getDefaultMember()
RolapHierarchy
getHierarchy()
Returns the hierarchy that this source is reading for.RolapMember
getLeadMember(RolapMember member, int n)
int
getLevelMemberCount(RolapLevel level)
TupleReader.MemberBuilder
getMemberBuilder()
RolapMember
getMemberByKey(RolapLevel level, List<Comparable> keyValues)
void
getMemberChildren(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)
void
getMemberChildren(RolapMember parentMember, List<RolapMember> children)
Writes all childrenparentMember
tochildren
.Map<? extends Member,Access>
getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)
int
getMemberCount()
Returns an estimate of number of members in this hierarchy.RolapMember
getMemberParent(RolapMember member)
void
getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)
List<RolapMember>
getMembers()
Returns all members of this hierarchy, sorted by ordinal.List<RolapMember>
getMembersInLevel(RolapLevel level)
List<RolapMember>
getMembersInLevel(RolapLevel level, TupleConstraint constraint)
List<RolapMember>
getRootMembers()
Returns all members of this hierarchy which do not have a parent, sorted by ordinal.RolapMember
lookupMember(List<Id.Segment> uniqueNameParts, boolean failIfNotFound)
Finds a member based upon its unique name.boolean
setCache(mondrian.rolap.MemberCache cache)
Sets the cache which thisMemberSource
will write to.RolapMember
substitute(RolapMember member)
-
-
-
Method Detail
-
getLeadMember
public RolapMember getLeadMember(RolapMember member, int n)
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level)
-
getMemberRange
public void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)
-
compare
public int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
-
getHierarchy
public RolapHierarchy getHierarchy()
Description copied from interface:MemberSource
Returns the hierarchy that this source is reading for.- Specified by:
getHierarchy
in interfaceMemberSource
-
setCache
public boolean setCache(mondrian.rolap.MemberCache cache)
Description copied from interface:MemberSource
Sets the cache which thisMemberSource
will write to.Cache-writeback is optional (for example,
SqlMemberSource
supports it, andArrayMemberSource
does 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:
setCache
in interfaceMemberSource
- Parameters:
cache
- TheMemberCache
which the caller would like thisMemberSource
to write to.- Returns:
- Whether this
MemberSource
supports cache-writeback.
-
getMembers
public List<RolapMember> getMembers()
Description copied from interface:MemberSource
Returns all members of this hierarchy, sorted by ordinal.If this object
supports cache-writeaback
, also writes these members to the cache.- Specified by:
getMembers
in interfaceMemberSource
-
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
- Returns:
List
ofRolapMember
s
-
getMemberChildren
public void getMemberChildren(RolapMember parentMember, List<RolapMember> children)
Description copied from interface:MemberSource
Writes all childrenparentMember
tochildren
.If this object
supports cache-writeback
, also writes these members to the cache.- Specified by:
getMemberChildren
in interfaceMemberSource
-
getMemberChildren
public void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)
Description copied from interface:MemberSource
Returns 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:
getMemberChildren
in interfaceMemberSource
-
getMemberCount
public int getMemberCount()
Description copied from interface:MemberSource
Returns an estimate of number of members in this hierarchy.- Specified by:
getMemberCount
in interfaceMemberSource
-
lookupMember
public RolapMember lookupMember(List<Id.Segment> uniqueNameParts, boolean failIfNotFound)
Description copied from interface:MemberSource
Finds a member based upon its unique name.- Specified by:
lookupMember
in interfaceMemberSource
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
-
getMembersInLevel
public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
-
getDefaultMember
public RolapMember getDefaultMember()
-
getMemberParent
public RolapMember getMemberParent(RolapMember member)
-
getMemberBuilder
public TupleReader.MemberBuilder getMemberBuilder()
-
substitute
public RolapMember substitute(RolapMember member)
-
desubstitute
public RolapMember desubstitute(RolapMember member)
-
getMemberByKey
public RolapMember getMemberByKey(RolapLevel level, List<Comparable> keyValues)
-
getLevelMemberCount
public int getLevelMemberCount(RolapLevel level)
-
-