Class SmartMemberReader

java.lang.Object
mondrian.rolap.SmartMemberReader
All Implemented Interfaces:
MemberSource
Direct Known Subclasses:
RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader

public class SmartMemberReader extends Object
SmartMemberReader implements MemberReader by keeping a cache of members and their children. If a member is 'in cache', there is a list of its children. It also caches the members of levels.

Synchronization: the MemberReader source must be called from synchronized(this) context - it does not synchronize itself (probably it should).

Constraints: Member.Children and Level.Members may be constrained by a SqlConstraint object. In this case a subset of all members is returned. These subsets are cached too and the SqlConstraint is part of the cache key. This is used in NON EMPTY context.

Uniqueness. We need to ensure that there is never more than one RolapMember object representing the same member.

Since:
21 December, 2001
Author:
jhyde