public abstract class SubstitutingMemberReader extends DelegatingMemberReader
MemberReader which replaces given members
with a substitute.
Derived classes must implement the DelegatingMemberReader.substitute(RolapMember) and
DelegatingMemberReader.desubstitute(RolapMember) methods.
| Modifier and Type | Class and Description |
|---|---|
(package private) class |
SubstitutingMemberReader.SubstitutingMemberList
List which writes through to an underlying list, substituting members
as they are written and desubstituting as they are read.
|
memberReader| Constructor and Description |
|---|
SubstitutingMemberReader(MemberReader memberReader)
Creates a SubstitutingMemberReader.
|
| Modifier and Type | Method and Description |
|---|---|
int |
compare(RolapMember m1,
RolapMember m2,
boolean siblingsAreEqual)
Compares two members according to their order in a prefix ordered
traversal.
|
RolapMember |
getDefaultMember() |
RolapHierarchy |
getHierarchy()
Returns the hierarchy that this source is reading for.
|
RolapMember |
getLeadMember(RolapMember member,
int n)
Returns the member
n after member in the same
level (or before, if n is negative). |
TupleReader.MemberBuilder |
getMemberBuilder() |
void |
getMemberChildren(List<RolapMember> parentMembers,
List<RolapMember> children)
Returns all members which are a child of one of the members in
parentMembers, 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.
|
void |
getMemberChildren(RolapMember parentMember,
List<RolapMember> children)
Writes all children
parentMember to children. |
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.
|
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)
Writes all members between
startMember and
endMember into list. |
List<RolapMember> |
getMembers()
Returns all members of this hierarchy, sorted by ordinal.
|
List<RolapMember> |
getMembersInLevel(RolapLevel level)
Returns all of the members in
level whose ordinal lies
between startOrdinal and endOrdinal. |
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.
|
RolapMember |
lookupMember(List<Id.Segment> uniqueNameParts,
boolean failIfNotFound)
Finds a member based upon its unique name.
|
boolean |
setCache(MemberCache cache)
Sets the cache which this
MemberSource will write to. |
desubstitute, getLevelMemberCount, getMemberByKey, substituteSubstitutingMemberReader(MemberReader memberReader)
memberReader - Parent member readerpublic RolapMember getLeadMember(RolapMember member, int n)
MemberReadern after member in the same
level (or before, if n is negative).
Returns Hierarchy.getNullMember() if we run off the beginning or
end of the level.getLeadMember in interface MemberReadergetLeadMember in class DelegatingMemberReaderpublic List<RolapMember> getMembersInLevel(RolapLevel level)
MemberReaderlevel whose ordinal lies
between startOrdinal and endOrdinal.
If this object
supports cache-writeback, also
writes these members to the cache.
getMembersInLevel in interface MemberReadergetMembersInLevel in class DelegatingMemberReaderList of RolapMemberpublic void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> list)
MemberReaderstartMember and
endMember into list.getMemberRange in interface MemberReadergetMemberRange in class DelegatingMemberReaderpublic int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
MemberReadersiblingsAreEqual, then two members with the
same parent will compare equal.compare in interface MemberReadercompare in class DelegatingMemberReadersiblingsAreEqual and
m1 and m2 have the same parentpublic RolapHierarchy getHierarchy()
MemberSourcegetHierarchy in interface MemberSourcegetHierarchy in class DelegatingMemberReaderpublic boolean setCache(MemberCache cache)
MemberSourceMemberSource will write to.
Cache-writeback is optional (for example, SqlMemberSource
supports it, and ArrayMemberSource does not), and the return
value from this method indicates whether this object supports it.
If this method returns true, the MemberSource.getMembers(),
MemberSource.getRootMembers() and MemberSource.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.
setCache in interface MemberSourcesetCache in class DelegatingMemberReadercache - The MemberCache which the caller would like
this MemberSource to write to.MemberSource supports cache-writeback.public List<RolapMember> getMembers()
MemberSourceIf this object supports cache-writeaback, also
writes these members to the cache.
getMembers in interface MemberSourcegetMembers in class DelegatingMemberReaderpublic List<RolapMember> getRootMembers()
MemberSourceIf this object supports cache-writeback, also
writes these members to the cache.
getRootMembers in interface MemberSourcegetRootMembers in class DelegatingMemberReaderList of RolapMemberspublic void getMemberChildren(RolapMember parentMember, List<RolapMember> children)
MemberSourceparentMember to children.
If this object supports cache-writeback, also
writes these members to the cache.
getMemberChildren in interface MemberSourcegetMemberChildren in class DelegatingMemberReaderpublic void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)
MemberSourceparentMembers, sorted by ordinal.
If this object supports cache-writeaback, also
writes these members to the cache.
getMemberChildren in interface MemberSourcegetMemberChildren in class DelegatingMemberReaderpublic int getMemberCount()
MemberSourcegetMemberCount in interface MemberSourcegetMemberCount in class DelegatingMemberReaderpublic RolapMember lookupMember(List<Id.Segment> uniqueNameParts, boolean failIfNotFound)
MemberSourcelookupMember in interface MemberSourcelookupMember in class DelegatingMemberReaderpublic Map<? extends Member,Access> getMemberChildren(RolapMember member, List<RolapMember> children, MemberChildrenConstraint constraint)
MemberReadergetMemberChildren in interface MemberReadergetMemberChildren in class DelegatingMemberReadermember - Members whose children to findchildren - List to populate with membersconstraint - Constraintnull values.public Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
MemberReadergetMemberChildren in interface MemberReadergetMemberChildren in class DelegatingMemberReaderparentMembers - List of members whose children to findchildren - List to populate with membersconstraint - Constraintnull values.public List<RolapMember> getMembersInLevel(RolapLevel level, TupleConstraint constraint)
MemberReadergetMembersInLevel in interface MemberReadergetMembersInLevel in class DelegatingMemberReaderlevel - Levelconstraint - Constraintpublic RolapMember getDefaultMember()
getDefaultMember in interface MemberReadergetDefaultMember in class DelegatingMemberReaderpublic RolapMember getMemberParent(RolapMember member)
getMemberParent in interface MemberReadergetMemberParent in class DelegatingMemberReaderpublic TupleReader.MemberBuilder getMemberBuilder()
getMemberBuilder in interface MemberReadergetMemberBuilder in class DelegatingMemberReader