|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectmondrian.rolap.MemberCacheHelper
public class MemberCacheHelper
Encapsulation of member caching.
| Field Summary | |
|---|---|
(package private) DataSourceChangeListener |
changeListener
|
(package private) SmartCache<Object,RolapMember> |
mapKeyToMember
a cache for all members to ensure uniqueness |
(package private) SmartMemberListCache<RolapLevel,List<RolapMember>> |
mapLevelToMembers
maps a level to its members |
(package private) SmartMemberListCache<RolapMember,List<RolapMember>> |
mapMemberToChildren
maps a parent member to a list of its children |
(package private) RolapHierarchy |
rolapHierarchy
|
| Constructor Summary | |
|---|---|
MemberCacheHelper(RolapHierarchy rolapHierarchy)
Creates a MemberCacheHelper. |
|
| Method Summary | |
|---|---|
void |
checkCacheStatus()
|
void |
flushCache()
|
DataSourceChangeListener |
getChangeListener()
|
List<RolapMember> |
getChildrenFromCache(RolapMember member,
MemberChildrenConstraint constraint)
Returns the children of member if they are currently in the
cache, otherwise returns null. |
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. |
boolean |
isMutable()
Returns whether the cache supports removing selected items. |
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> members)
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). |
void |
putLevelMembersInCache(RolapLevel level,
TupleConstraint constraint,
List<RolapMember> members)
Deprecated. |
Object |
putMember(Object key,
RolapMember value)
Replaces the RolapMember with a given key and returns the
previous member if any. |
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. |
void |
setChangeListener(DataSourceChangeListener listener)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
final SmartMemberListCache<RolapMember,List<RolapMember>> mapMemberToChildren
SmartCache<Object,RolapMember> mapKeyToMember
RolapHierarchy rolapHierarchy
DataSourceChangeListener changeListener
final SmartMemberListCache<RolapLevel,List<RolapMember>> mapLevelToMembers
| Constructor Detail |
|---|
public MemberCacheHelper(RolapHierarchy rolapHierarchy)
rolapHierarchy - Hierarchy| Method Detail |
|---|
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 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 void checkCacheStatus()
@Deprecated
public void putLevelMembersInCache(RolapLevel level,
TupleConstraint constraint,
List<RolapMember> members)
putChildren(RolapLevel, TupleConstraint, List)
public void putChildren(RolapLevel level,
TupleConstraint constraint,
List<RolapMember> members)
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)members - list of children
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 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 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 flushCache()
public DataSourceChangeListener getChangeListener()
public void setChangeListener(DataSourceChangeListener listener)
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)
|
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||