mondrian.rolap
Interface MemberSource

All Known Subinterfaces:
MemberReader, RolapCubeHierarchy.RolapCubeHierarchyMemberReader
All Known Implementing Classes:
ArrayMemberSource, CacheMemberReader, DelegatingMemberReader, MeasureMemberSource, NoCacheMemberReader, RestrictedMemberReader, RolapCubeHierarchy.CacheRolapCubeHierarchyMemberReader, RolapCubeHierarchy.NoCacheRolapCubeHierarchyMemberReader, RolapCubeHierarchy.RolapCubeSqlMemberSource, SmartMemberReader, SqlMemberSource, SubstitutingMemberReader

public interface MemberSource

A MemberSource has the basic operations to read the members of a hierarchy.

A MemberSource may optionally support writeback to a MemberCache. During the initialization of a MemberSource, the consumer calls setCache(mondrian.rolap.MemberCache); the return value indicates whether the MemberSource supports cache-writeback.

A custom member reader is a user-defined class which implements the operations to retrieve members. It either implements the MemberSource interface, or the derived interface MemberReader, which has more operations. In addition to the interface methods, the class must have a constructor which takes parameters (RolapHierarchy, Properties) and throws no exceptions. To declare a hierarchy based upon the class, use the memberReaderClass attribute of the <Hierarchy> element in your XML schema file; the properties constructor parameter is populated from any <Param name="..." value="..."> child elements.

Since:
21 December, 2001
Author:
jhyde
See Also:
MemberReader, MemberCache
 

Method Summary
 RolapHierarchy getHierarchy()
          Returns the hierarchy that this source is reading for.
 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(RolapMember parentMember, List<RolapMember> children)
          Writes all children parentMember to children.
 int getMemberCount()
          Returns an estimate of number of members in this hierarchy.
 List<RolapMember> getMembers()
          Returns all members of this hierarchy, sorted by ordinal.
 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.
 

Method Detail

getHierarchy

RolapHierarchy getHierarchy()
Returns the hierarchy that this source is reading for.


setCache

boolean setCache(MemberCache cache)
Sets the cache which this MemberSource 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 getMembers(), getRootMembers() and getMemberChildren(mondrian.rolap.RolapMember, java.util.List) methods must write to the cache, in addition to returning members as a return value.

Parameters:
cache - The MemberCache which the caller would like this MemberSource to write to.
Returns:
Whether this MemberSource supports cache-writeback.

getMembers

List<RolapMember> getMembers()
Returns all members of this hierarchy, sorted by ordinal.

If this object supports cache-writeaback, also writes these members to the cache.


getRootMembers

List<RolapMember> getRootMembers()
Returns all members of this hierarchy which do not have a parent, sorted by ordinal.

If this object supports cache-writeback, also writes these members to the cache.

Returns:
List of RolapMembers

getMemberChildren

void getMemberChildren(RolapMember parentMember,
                       List<RolapMember> children)
Writes all children parentMember to children.

If this object supports cache-writeback, also writes these members to the cache.


getMemberChildren

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.

If this object supports cache-writeaback, also writes these members to the cache.


getMemberCount

int getMemberCount()
Returns an estimate of number of members in this hierarchy.


lookupMember

RolapMember lookupMember(List<Id.Segment> uniqueNameParts,
                         boolean failIfNotFound)
Finds a member based upon its unique name.


SourceForge.net_Logo