|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectmondrian.rolap.SmartMemberReader
mondrian.rolap.RolapCubeHierarchy.RolapCubeHierarchyMemberReader
public class RolapCubeHierarchy.RolapCubeHierarchyMemberReader
Implementation of MemberReader that creates
wrapper RolapCubeMember objects as it goes.
Underlying it is the existing member reader.
Most synchronization takes place within SmartMemberReader. All synchronization is done on the cacheHelper object.
We take the following approach to caching RolapCubeMember objects:
RolapHierarchy.SmartMemberReader.SmartCacheHelper is the shared cache across shared hierarchies. This member cache only contains members loaded by non-cube specific member lookups. This cache should only contain RolapMembers, not RolapCubeMembers.
RolapCubeHierarchy.RolapCubeHierarchyMemberReader.rolapCubeCacheHelper is a cache that contains the RolapCubeMember objects, which are cube-specific wrappers of shared members.
RolapCubeHierarchy.RolapCubeHierarchyMemberReader.SmartCacheHelper is the inherited shared cache from SmartMemberReader, and is used when a join with the fact table is necessary, SqlContextConstraint.isJoinRequired(). This cache may be redundant with rolapCubeCacheHelper.
A special note regarding RolapCubeHierarchyMemberReader.cubeSource. This class was required for the special situation getMemberBuilder() method call from RolapNativeSet. This class utilizes both the rolapCubeCacheHelper class for storing RolapCubeMembers, and also the RolapCubeHierarchyMemberReader's inherited SmartCacheHelper.
The MondrianProperties.EnableRolapCubeMemberCache
property allows you to disable the RolapCubeMember cache.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class mondrian.rolap.SmartMemberReader |
|---|
SmartMemberReader.SiblingIterator |
| Field Summary | |
|---|---|
protected RolapCubeHierarchy.RolapCubeSqlMemberSource |
cubeSource
cubeSource is passed as our member builder |
protected MemberCacheHelper |
rolapCubeCacheHelper
this cache caches RolapCubeMembers that are light wrappers around shared and non-shared Hierarchy RolapMembers. |
| Fields inherited from class mondrian.rolap.SmartMemberReader |
|---|
cacheHelper, rootMembers, source |
| Constructor Summary | |
|---|---|
RolapCubeHierarchy.RolapCubeHierarchyMemberReader()
|
|
| Method Summary | |
|---|---|
protected void |
checkCacheStatus()
|
TupleReader.MemberBuilder |
getMemberBuilder()
|
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. |
int |
getMemberCount()
Returns an estimate of number of members in this hierarchy. |
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. |
MemberCacheHelper |
getRolapCubeMemberCacheHelper()
|
List<RolapMember> |
getRootMembers()
Returns all members of this hierarchy which do not have a parent, sorted by ordinal. |
RolapCubeMember |
lookupCubeMember(RolapCubeMember parent,
RolapMember member,
RolapCubeLevel level)
|
protected void |
readMemberChildren(List<RolapMember> parentMembers,
List<RolapMember> children,
MemberChildrenConstraint constraint)
Reads the children of member into cache, and also into
result. |
| Methods inherited from class mondrian.rolap.SmartMemberReader |
|---|
compare, desubstitute, getDefaultMember, getHierarchy, getLeadMember, getLevelMemberCount, getMemberCache, getMemberChildren, getMemberChildren, getMemberChildren, getMemberParent, getMemberRange, getMembers, getMembersInLevel, isSorted, lookupMember, setCache, substitute |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface mondrian.rolap.MemberReader |
|---|
compare, desubstitute, getDefaultMember, getLeadMember, getLevelMemberCount, getMemberChildren, getMemberParent, getMemberRange, getMembersInLevel, substitute |
| Methods inherited from interface mondrian.rolap.MemberSource |
|---|
getHierarchy, getMemberChildren, getMemberChildren, getMembers, lookupMember, setCache |
| Field Detail |
|---|
protected final RolapCubeHierarchy.RolapCubeSqlMemberSource cubeSource
protected MemberCacheHelper rolapCubeCacheHelper
| Constructor Detail |
|---|
public RolapCubeHierarchy.RolapCubeHierarchyMemberReader()
| Method Detail |
|---|
public TupleReader.MemberBuilder getMemberBuilder()
getMemberBuilder in interface MemberReadergetMemberBuilder in class SmartMemberReaderpublic MemberCacheHelper getRolapCubeMemberCacheHelper()
public List<RolapMember> getRootMembers()
MemberSourceIf this object supports cache-writeback, also
writes these members to the cache.
getRootMembers in interface MemberSourcegetRootMembers in class SmartMemberReaderList of RolapMembers
protected void readMemberChildren(List<RolapMember> parentMembers,
List<RolapMember> children,
MemberChildrenConstraint constraint)
SmartMemberReadermember into cache, and also into
result.
readMemberChildren in class SmartMemberReaderparentMembers - Members whose children to readchildren - Children are written here, in orderconstraint - restricts the returned members if possible (optional
optimization)
public void getMemberChildren(List<RolapMember> parentMembers,
List<RolapMember> children,
MemberChildrenConstraint constraint)
MemberReader
getMemberChildren in interface MemberReadergetMemberChildren in class SmartMemberReaderparentMembers - List of members whose children to findchildren - List to populate with membersconstraint - Constraint
public List<RolapMember> getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal,
TupleConstraint constraint)
MemberReader
getMembersInLevel in interface MemberReadergetMembersInLevel in class SmartMemberReaderlevel - LevelstartOrdinal - Ordinal of first member to retrieveendOrdinal - Ordinal of last member to upper boundconstraint - Constraint
public RolapCubeMember lookupCubeMember(RolapCubeMember parent,
RolapMember member,
RolapCubeLevel level)
lookupCubeMember in interface RolapCubeHierarchy.CubeMemberReaderpublic int getMemberCount()
MemberSource
getMemberCount in interface MemberSourcegetMemberCount in class SmartMemberReaderprotected void checkCacheStatus()
checkCacheStatus in class SmartMemberReader
|
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||