|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mondrian.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 MemberReader
getMemberBuilder
in class SmartMemberReader
public MemberCacheHelper getRolapCubeMemberCacheHelper()
public List<RolapMember> getRootMembers()
MemberSource
If this object supports cache-writeback
, also
writes these members to the cache.
getRootMembers
in interface MemberSource
getRootMembers
in class SmartMemberReader
List
of RolapMember
sprotected void readMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint constraint)
SmartMemberReader
member
into cache, and also into
result
.
readMemberChildren
in class SmartMemberReader
parentMembers
- 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 MemberReader
getMemberChildren
in class SmartMemberReader
parentMembers
- List of members whose children to findchildren
- List to populate with membersconstraint
- Constraintpublic List<RolapMember> getMembersInLevel(RolapLevel level, int startOrdinal, int endOrdinal, TupleConstraint constraint)
MemberReader
getMembersInLevel
in interface MemberReader
getMembersInLevel
in class SmartMemberReader
level
- 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.CubeMemberReader
public int getMemberCount()
MemberSource
getMemberCount
in interface MemberSource
getMemberCount
in class SmartMemberReader
protected void checkCacheStatus()
checkCacheStatus
in class SmartMemberReader
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |