mondrian.rolap
Class MemberNoCacheHelper

java.lang.Object
  extended by mondrian.rolap.MemberCacheHelper
      extended by mondrian.rolap.MemberNoCacheHelper
All Implemented Interfaces:
MemberCache

public class MemberNoCacheHelper
extends MemberCacheHelper

Encapsulation of member caching for no caching.

Version:
1.0
Author:
Luis F. Canals (lcanals@tasecurity.net)

Field Summary
(package private)  DataSourceChangeListener changeListener
           
 
Fields inherited from class mondrian.rolap.MemberCacheHelper
mapKeyToMember, mapLevelToMembers, mapMemberToChildren, rolapHierarchy
 
Constructor Summary
MemberNoCacheHelper()
           
 
Method Summary
 void checkCacheStatus()
           
 DataSourceChangeListener getChangeListener()
           
 java.util.List<RolapMember> getChildrenFromCache(RolapMember member, MemberChildrenConstraint constraint)
          Returns the children of member if they are currently in the cache, otherwise returns null.
 java.util.List<RolapMember> getLevelMembersFromCache(RolapLevel level, TupleConstraint constraint)
          Returns the members of level if they are currently in the cache, otherwise returns null.
 RolapMember getMember(java.lang.Object key)
          Retrieves the RolapMember with a given key.
 RolapMember getMember(java.lang.Object key, boolean mustCheckCacheStatus)
          Retrieves the RolapMember with a given key.
 boolean isMutable()
          Returns whether the cache supports removing selected items.
 java.lang.Object makeKey(RolapMember parent, java.lang.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(RolapMember member, MemberChildrenConstraint constraint, java.util.List<RolapMember> children)
          Registers that the children of member are children (a list of RolapMembers).
 void putLevelMembersInCache(RolapLevel level, TupleConstraint constraint, java.util.List<RolapMember> members)
          ???
 java.lang.Object putMember(java.lang.Object key, RolapMember value)
          Replaces the RolapMember with a given key and returns the previous member if any.
 RolapMember removeMember(java.lang.Object key)
          Removes the RolapMember with a given key from the cache.
 RolapMember removeMemberAndDescendants(java.lang.Object key)
          Removes the designated RolapMember and all its descendants.
 void setChangeListener(DataSourceChangeListener listener)
           
 
Methods inherited from class mondrian.rolap.MemberCacheHelper
flushCache
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

changeListener

DataSourceChangeListener changeListener
Constructor Detail

MemberNoCacheHelper

public MemberNoCacheHelper()
Method Detail

getMember

public RolapMember getMember(java.lang.Object key,
                             boolean mustCheckCacheStatus)
Description copied from interface: MemberCache
Retrieves the RolapMember with a given key.

Specified by:
getMember in interface MemberCache
Overrides:
getMember in class MemberCacheHelper
Parameters:
key - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
mustCheckCacheStatus - If true, do not check cache status
Returns:
member with a given cache key

putMember

public java.lang.Object putMember(java.lang.Object key,
                                  RolapMember value)
Description copied from interface: MemberCache
Replaces the RolapMember with a given key and returns the previous member if any.

Specified by:
putMember in interface MemberCache
Overrides:
putMember in class MemberCacheHelper
Parameters:
key - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
value - new member
Returns:
Previous member with that key, or null.

makeKey

public java.lang.Object makeKey(RolapMember parent,
                                java.lang.Object key)
Description copied from interface: MemberCache
Creates a key with which to MemberCache.getMember(Object) or MemberCache.putMember(Object, RolapMember) the RolapMember with a given parent and key.

Specified by:
makeKey in interface MemberCache
Overrides:
makeKey in class MemberCacheHelper
Parameters:
parent - Parent member
key - Key of member within parent
Returns:
key with which to address this member in the cache

getMember

public RolapMember getMember(java.lang.Object key)
Description copied from interface: MemberCache
Retrieves the RolapMember with a given key.

Specified by:
getMember in interface MemberCache
Overrides:
getMember in class MemberCacheHelper
Parameters:
key - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
Returns:
member with a given cache key

checkCacheStatus

public void checkCacheStatus()
Overrides:
checkCacheStatus in class MemberCacheHelper

putLevelMembersInCache

public void putLevelMembersInCache(RolapLevel level,
                                   TupleConstraint constraint,
                                   java.util.List<RolapMember> members)
???

Overrides:
putLevelMembersInCache in class MemberCacheHelper
Parameters:
level -
constraint -
members -

getChildrenFromCache

public java.util.List<RolapMember> getChildrenFromCache(RolapMember member,
                                                        MemberChildrenConstraint constraint)
Description copied from interface: MemberCache
Returns the children of member 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.

Specified by:
getChildrenFromCache in interface MemberCache
Overrides:
getChildrenFromCache in class MemberCacheHelper
Parameters:
member - the parent member
constraint - the condition that was used when the members were fetched. May be null for all members (no constraint)
Returns:
list of children, or null if not in cache

putChildren

public void putChildren(RolapMember member,
                        MemberChildrenConstraint constraint,
                        java.util.List<RolapMember> children)
Description copied from interface: MemberCache
Registers that the children of member are children (a list of RolapMembers).

Specified by:
putChildren in interface MemberCache
Overrides:
putChildren in class MemberCacheHelper
Parameters:
member - the parent member
constraint - the condition that was used when the members were fetched. May be null for all members (no constraint)
children - list of children

getLevelMembersFromCache

public java.util.List<RolapMember> getLevelMembersFromCache(RolapLevel level,
                                                            TupleConstraint constraint)
Description copied from interface: MemberCache
Returns the members of level 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.

Specified by:
getLevelMembersFromCache in interface MemberCache
Overrides:
getLevelMembersFromCache in class MemberCacheHelper
Parameters:
level - the level whose members should be fetched
constraint - the condition that was used when the members were fetched. May be null for all members (no constraint)
Returns:
members of level, or null if not in cache

getChangeListener

public DataSourceChangeListener getChangeListener()
Overrides:
getChangeListener in class MemberCacheHelper

setChangeListener

public void setChangeListener(DataSourceChangeListener listener)
Overrides:
setChangeListener in class MemberCacheHelper

isMutable

public boolean isMutable()
Description copied from interface: MemberCache
Returns whether the cache supports removing selected items. If it does, it is valid to call the MemberCache.removeMember(Object) and MemberCache.removeMemberAndDescendants(Object) methods.

REVIEW: remove isMutable and move removeMember and removeMemberAndDescendants to new interface MutableMemberCache

Specified by:
isMutable in interface MemberCache
Overrides:
isMutable in class MemberCacheHelper
Returns:
true if the cache supports removing selected items.

removeMember

public RolapMember removeMember(java.lang.Object key)
Description copied from interface: MemberCache
Removes the RolapMember with a given key from the cache. Returns the previous member with that key, or null. Optional operation: see MemberCache.isMutable().

Specified by:
removeMember in interface MemberCache
Overrides:
removeMember in class MemberCacheHelper
Parameters:
key - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
Returns:
previous member with that key, or null

removeMemberAndDescendants

public RolapMember removeMemberAndDescendants(java.lang.Object key)
Description copied from interface: MemberCache
Removes the designated RolapMember and all its descendants. Returns the previous member with that key, or null. Optional operation: see MemberCache.isMutable().

Specified by:
removeMemberAndDescendants in interface MemberCache
Overrides:
removeMemberAndDescendants in class MemberCacheHelper
Parameters:
key - cache key, created by MemberCache.makeKey(mondrian.rolap.RolapMember, java.lang.Object)
Returns:
previous member with that key, or null

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads