Class RolapCubeHierarchy.RolapCubeSqlMemberSource
- All Implemented Interfaces:
MemberSource
,TupleReader.MemberBuilder
- Enclosing class:
- RolapCubeHierarchy
-
Constructor Summary
ConstructorDescriptionRolapCubeSqlMemberSource
(RolapCubeHierarchy.RolapCubeHierarchyMemberReader memberReader, RolapCubeHierarchy hierarchy, MemberCacheHelper memberSourceCacheHelper, Object memberCacheLock) -
Method Summary
Modifier and TypeMethodDescriptionReturns the 'all' member of the hierarchy.int
compare
(RolapMember m1, RolapMember m2, boolean siblingsAreEqual) int
countMemberChildren
(Member member, List<RolapMember> children, MemberChildrenConstraint constraint) desubstitute
(RolapMember member) Returns the hierarchy that this source is reading for.getLeadMember
(RolapMember member, int n) int
getLevelMemberCount
(RolapLevel level) getMemberByKey
(RolapLevel level, List<Comparable> keyValues) mondrian.rolap.MemberCache
Returns theMemberCache
to look up members before creating them.use the same lock in the RolapCubeMemberSource as the RolapCubeHiearchyMemberReader to avoid deadlocksvoid
getMemberChildren
(List<RolapMember> parentMembers, List<RolapMember> children) Returns all members which are a child of one of the members inparentMembers
, sorted by ordinal.getMemberChildren
(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint mcc) void
getMemberChildren
(RolapMember parentMember, List<RolapMember> children) Writes all childrenparentMember
tochildren
.getMemberChildren
(RolapMember parentMember, List<RolapMember> children, MemberChildrenConstraint constraint) int
Returns an estimate of number of members in this hierarchy.getMemberParent
(RolapMember member) void
getMemberRange
(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> memberList) Returns all members of this hierarchy, sorted by ordinal.getMembersInLevel
(RolapLevel level) getMembersInLevel
(RolapLevel level, TupleConstraint constraint) Returns all members of this hierarchy which do not have a parent, sorted by ordinal.static boolean
isLevelCollapsed
(AggStar aggStar, RolapCubeLevel level) Determine if the given aggregate table has the dimension level specified within in (AggStar.FactTable) it, aka collapsed, or associated with foreign keys (AggStar.DimTable)static boolean
Determine if a level contains more than a single column for its data, such as an ordinal column or property columnlookupMember
(List<Id.Segment> uniqueNameParts, boolean failIfNotFound) Finds a member based upon its unique name.makeMember
(RolapMember parentMember, RolapLevel childLevel, Object value, Object captionValue, boolean parentChild, SqlStatement stmt, Object key, int columnOffset) Creates a new member (together with its properties).boolean
setCache
(mondrian.rolap.MemberCache cache) Sets the cache which thisMemberSource
will write to.substitute
(RolapMember member)
-
Constructor Details
-
RolapCubeSqlMemberSource
public RolapCubeSqlMemberSource(RolapCubeHierarchy.RolapCubeHierarchyMemberReader memberReader, RolapCubeHierarchy hierarchy, MemberCacheHelper memberSourceCacheHelper, Object memberCacheLock)
-
-
Method Details
-
makeMember
public RolapMember makeMember(RolapMember parentMember, RolapLevel childLevel, Object value, Object captionValue, boolean parentChild, SqlStatement stmt, Object key, int columnOffset) throws SQLException Description copied from interface:TupleReader.MemberBuilder
Creates a new member (together with its properties).- Specified by:
makeMember
in interfaceTupleReader.MemberBuilder
- Parameters:
parentMember
- Parent memberchildLevel
- Child levelvalue
- Member valuecaptionValue
- CaptionparentChild
- Whether a parent-child hierarchystmt
- SQL statementkey
- Member keycolumnOffset
- Column ordinal (0-based)- Returns:
- new member
- Throws:
SQLException
- on error
-
getMemberCache
public mondrian.rolap.MemberCache getMemberCache()Description copied from interface:TupleReader.MemberBuilder
Returns theMemberCache
to look up members before creating them.- Specified by:
getMemberCache
in interfaceTupleReader.MemberBuilder
- Returns:
- member cache
-
getMemberCacheLock
use the same lock in the RolapCubeMemberSource as the RolapCubeHiearchyMemberReader to avoid deadlocks- Specified by:
getMemberCacheLock
in interfaceTupleReader.MemberBuilder
- Returns:
- Object to lock
-
allMember
Description copied from interface:TupleReader.MemberBuilder
Returns the 'all' member of the hierarchy.- Specified by:
allMember
in interfaceTupleReader.MemberBuilder
- Returns:
- The 'all' member
-
getHierarchy
Description copied from interface:MemberSource
Returns the hierarchy that this source is reading for.- Specified by:
getHierarchy
in interfaceMemberSource
-
setCache
public boolean setCache(mondrian.rolap.MemberCache cache) Description copied from interface:MemberSource
Sets the cache which thisMemberSource
will write to.Cache-writeback is optional (for example,
SqlMemberSource
supports it, andArrayMemberSource
does not), and the return value from this method indicates whether this object supports it.If this method returns
true
, theMemberSource.getMembers()
,MemberSource.getRootMembers()
andMemberSource.getMemberChildren(mondrian.rolap.RolapMember, java.util.List<mondrian.rolap.RolapMember>)
methods must write to the cache, in addition to returning members as a return value.- Specified by:
setCache
in interfaceMemberSource
- Parameters:
cache
- TheMemberCache
which the caller would like thisMemberSource
to write to.- Returns:
- Whether this
MemberSource
supports cache-writeback.
-
getMemberCount
public int getMemberCount()Description copied from interface:MemberSource
Returns an estimate of number of members in this hierarchy.- Specified by:
getMemberCount
in interfaceMemberSource
-
substitute
-
desubstitute
-
getMemberByKey
-
countMemberChildren
public int countMemberChildren(Member member, List<RolapMember> children, MemberChildrenConstraint constraint) -
lookupMember
Description copied from interface:MemberSource
Finds a member based upon its unique name.- Specified by:
lookupMember
in interfaceMemberSource
-
getLevelMemberCount
-
getMembers
Description copied from interface:MemberSource
Returns all members of this hierarchy, sorted by ordinal.If this object
supports cache-writeaback
, also writes these members to the cache.- Specified by:
getMembers
in interfaceMemberSource
-
getMembersInLevel
-
getMembersInLevel
-
getRootMembers
Description copied from interface:MemberSource
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.- Specified by:
getRootMembers
in interfaceMemberSource
- Returns:
List
ofRolapMember
s
-
levelContainsMultipleColumns
Determine if a level contains more than a single column for its data, such as an ordinal column or property column- Parameters:
level
- the level to check- Returns:
- true if multiple relational columns are involved in this level
-
isLevelCollapsed
Determine if the given aggregate table has the dimension level specified within in (AggStar.FactTable) it, aka collapsed, or associated with foreign keys (AggStar.DimTable)- Parameters:
aggStar
- aggregate star if existslevel
- level- Returns:
- true if agg table has level or not
-
getMemberChildren
Description copied from interface:MemberSource
Returns all members which are a child of one of the members inparentMembers
, sorted by ordinal.If this object
supports cache-writeaback
, also writes these members to the cache.- Specified by:
getMemberChildren
in interfaceMemberSource
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint mcc) -
getMemberChildren
Description copied from interface:MemberSource
Writes all childrenparentMember
tochildren
.If this object
supports cache-writeback
, also writes these members to the cache.- Specified by:
getMemberChildren
in interfaceMemberSource
-
getMemberChildren
public Map<? extends Member,Access> getMemberChildren(RolapMember parentMember, List<RolapMember> children, MemberChildrenConstraint constraint) -
getLeadMember
-
getMemberRange
public void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> memberList) -
compare
-
getMemberBuilder
-
getDefaultMember
-
getMemberParent
-