|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectmondrian.rolap.NoCacheMemberReader
public class NoCacheMemberReader
NoCacheMemberReader implements MemberReader but
without doing any kind of caching and avoiding to read all members.
| Nested Class Summary | |
|---|---|
(package private) class |
NoCacheMemberReader.SiblingIterator
SiblingIterator helps traverse a hierarchy of members, by
remembering the position at each level. |
| Constructor Summary | |
|---|---|
NoCacheMemberReader(MemberReader source)
|
|
| Method Summary | |
|---|---|
int |
compare(RolapMember m1,
RolapMember m2,
boolean siblingsAreEqual)
Compares two members according to their order in a prefix ordered traversal. |
RolapMember |
desubstitute(RolapMember member)
Returns the member which was substituted. |
List<RolapMember> |
getChildrenFromCache(RolapMember member,
MemberChildrenConstraint constraint)
Returns the children of member if they are currently in the
cache, otherwise returns null. |
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). |
int |
getLevelMemberCount(RolapLevel level)
Returns the number of members in this level. |
List<RolapMember> |
getLevelMembersFromCache(RolapLevel level,
TupleConstraint constraint)
Returns the members of level if they are currently in the
cache, otherwise returns null. |
RolapMember |
getMember(Object key)
Retrieves the RolapMember with a given key. |
RolapMember |
getMember(Object key,
boolean mustCheckCacheStatus)
Retrieves the RolapMember with a given key. |
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. |
void |
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. |
void |
getMemberChildren(RolapMember parentMember,
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,
int startOrdinal,
int endOrdinal)
Returns all of the members in level whose ordinal lies
between startOrdinal and endOrdinal. |
List<RolapMember> |
getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal,
TupleConstraint constraint)
Returns the members in the given Level, optionally between a range of ordinals and applying a constraint. |
List<RolapMember> |
getRootMembers()
Returns all members of this hierarchy which do not have a parent, sorted by ordinal. |
boolean |
isMutable()
Returns whether the cache supports removing selected items. |
RolapMember |
lookupMember(List<Id.Segment> uniqueNameParts,
boolean failIfNotFound)
Finds a member based upon its unique name. |
Object |
makeKey(RolapMember parent,
Object key)
Creates a key with which to MemberCache.getMember(Object) or
MemberCache.putMember(Object, RolapMember) the
RolapMember with a given parent and key. |
void |
putChildren(RolapLevel level,
TupleConstraint constraint,
List<RolapMember> children)
Registers that the children of level are
children (a list of RolapMembers). |
void |
putChildren(RolapMember member,
MemberChildrenConstraint constraint,
List<RolapMember> children)
Registers that the children of member are
children (a list of RolapMembers). |
Object |
putMember(Object key,
RolapMember value)
Replaces the RolapMember with a given key and returns the
previous member if any. |
protected void |
readMemberChildren(List<RolapMember> members,
List<RolapMember> result,
MemberChildrenConstraint constraint)
Reads the children of member into result. |
RolapMember |
removeMember(Object key)
Removes the RolapMember with a given key from the cache. |
RolapMember |
removeMemberAndDescendants(Object key)
Removes the designated RolapMember and all its descendants. |
boolean |
setCache(MemberCache cache)
Sets the cache which this MemberSource will write to. |
RolapMember |
substitute(RolapMember member)
Substitutes a given member. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
NoCacheMemberReader(MemberReader source)
| Method Detail |
|---|
public boolean isMutable()
MemberCacheMemberCache.removeMember(Object) and
MemberCache.removeMemberAndDescendants(Object) methods.
REVIEW: remove isMutable and move removeMember and removeMemberAndDescendants to new interface MutableMemberCache
isMutable in interface MemberCachepublic RolapMember removeMember(Object key)
MemberCacheRolapMember with a given key from the cache.
Returns the previous member with that key, or null.
Optional operation: see MemberCache.isMutable().
removeMember in interface MemberCachekey - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
public RolapMember removeMemberAndDescendants(Object key)
MemberCacheRolapMember and all its descendants.
Returns the previous member with that key, or null.
Optional operation: see MemberCache.isMutable().
removeMemberAndDescendants in interface MemberCachekey - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
public RolapHierarchy getHierarchy()
MemberSource
getHierarchy in interface MemberSourcepublic 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 methods must
write to the cache, in addition to returning members as a return value.
setCache in interface MemberSourcecache - The MemberCache which the caller would like
this MemberSource to write to.
MemberSource supports cache-writeback.
public Object makeKey(RolapMember parent,
Object key)
MemberCacheMemberCache.getMember(Object) or
MemberCache.putMember(Object, RolapMember) the
RolapMember with a given parent and key.
makeKey in interface MemberCacheparent - Parent memberkey - Key of member within parent
public RolapMember getMember(Object key)
MemberCacheRolapMember with a given key.
getMember in interface MemberCachekey - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
public RolapMember getMember(Object key,
boolean mustCheckCacheStatus)
MemberCacheRolapMember with a given key.
getMember in interface MemberCachekey - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)mustCheckCacheStatus - If true, do not check cache status
public Object putMember(Object key,
RolapMember value)
MemberCacheRolapMember with a given key and returns the
previous member if any.
putMember in interface MemberCachekey - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)value - new member
public List<RolapMember> getMembers()
MemberSourceIf this object supports cache-writeaback, also
writes these members to the cache.
getMembers in interface MemberSourcepublic List<RolapMember> getRootMembers()
MemberSourceIf this object supports cache-writeback, also
writes these members to the cache.
getRootMembers in interface MemberSourceList of RolapMembers
public List<RolapMember> getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal)
MemberReaderlevel whose ordinal lies
between startOrdinal and endOrdinal.
If this object
supports cache-writeback, also
writes these members to the cache.
getMembersInLevel in interface MemberReaderList of RolapMember
public List<RolapMember> getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal,
TupleConstraint constraint)
MemberReader
getMembersInLevel in interface MemberReaderlevel - LevelstartOrdinal - Ordinal of first member to retrieveendOrdinal - Ordinal of last member to upper boundconstraint - Constraint
public 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 MemberSource
public void getMemberChildren(RolapMember parentMember,
List<RolapMember> children,
MemberChildrenConstraint constraint)
MemberReader
getMemberChildren in interface MemberReaderparentMember - Members whose children to findchildren - List to populate with membersconstraint - Constraint
public 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 MemberSource
public void getMemberChildren(List<RolapMember> parentMembers,
List<RolapMember> children,
MemberChildrenConstraint constraint)
MemberReader
getMemberChildren in interface MemberReaderparentMembers - List of members whose children to findchildren - List to populate with membersconstraint - Constraint
public RolapMember lookupMember(List<Id.Segment> uniqueNameParts,
boolean failIfNotFound)
MemberSource
lookupMember in interface MemberSource
public List<RolapMember> getChildrenFromCache(RolapMember member,
MemberChildrenConstraint constraint)
MemberCachemember if they are currently in the
cache, otherwise returns null.
The children may be garbage collected as soon as the returned list may be garbage collected.
getChildrenFromCache in interface MemberCachemember - the parent memberconstraint - the condition that was used when the members were
fetched. May be null for all members (no constraint)
public List<RolapMember> getLevelMembersFromCache(RolapLevel level,
TupleConstraint constraint)
MemberCachelevel if they are currently in the
cache, otherwise returns null.
The members may be garbage collected as soon as the returned list may be garbage collected.
getLevelMembersFromCache in interface MemberCachelevel - the level whose members should be fetchedconstraint - the condition that was used when the members were
fetched. May be null for all members (no constraint)
public void putChildren(RolapMember member,
MemberChildrenConstraint constraint,
List<RolapMember> children)
MemberCachemember are
children (a list of RolapMembers).
putChildren in interface MemberCachemember - the parent memberconstraint - the condition that was used when the members were
fetched. May be null for all members (no constraint)children - list of children
public void putChildren(RolapLevel level,
TupleConstraint constraint,
List<RolapMember> children)
MemberCachelevel are
children (a list of RolapMembers).
putChildren in interface MemberCachelevel - the parent levelconstraint - the condition that was used when the members were
fetched. May be null for all members (no constraint)children - list of children
public 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 MemberReader
public void getMemberRange(RolapLevel level,
RolapMember startMember,
RolapMember endMember,
List<RolapMember> list)
MemberReaderstartMember and
endMember into list.
getMemberRange in interface MemberReaderpublic int getMemberCount()
MemberSource
getMemberCount in interface MemberSource
public int compare(RolapMember m1,
RolapMember m2,
boolean siblingsAreEqual)
MemberReadersiblingsAreEqual, then two members with the
same parent will compare equal.
compare in interface MemberReadersiblingsAreEqual and
m1 and m2 have the same parentpublic TupleReader.MemberBuilder getMemberBuilder()
getMemberBuilder in interface MemberReaderpublic RolapMember getDefaultMember()
getDefaultMember in interface MemberReaderpublic int getLevelMemberCount(RolapLevel level)
MemberReader
getLevelMemberCount in interface MemberReaderlevel - Level
public RolapMember desubstitute(RolapMember member)
MemberReaderThis 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'.
desubstitute in interface MemberReadermember - Member
public RolapMember substitute(RolapMember member)
MemberReaderThis 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'.
substitute in interface MemberReadermember - Member
public RolapMember getMemberParent(RolapMember member)
getMemberParent in interface MemberReader
protected void readMemberChildren(List<RolapMember> members,
List<RolapMember> result,
MemberChildrenConstraint constraint)
member into result.
result - Children are written here, in ordermembers - Members whose children to readconstraint - restricts the returned members if possible (optional
optimization)
|
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||