|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mondrian.rolap.SqlMemberSource
class SqlMemberSource
A SqlMemberSource
reads members from a SQL database.
It's a good idea to put a CacheMemberReader
on top of this.
Constructor Summary | |
---|---|
SqlMemberSource(RolapHierarchy hierarchy)
|
Method Summary | |
---|---|
int |
compare(RolapMember m1,
RolapMember m2,
boolean siblingsAreEqual)
Compares two members according to their order in a prefix ordered traversal. |
RolapMember |
desubstitute(RolapMember member)
Returns the member which was substituted. |
RolapMember |
getDefaultMember()
|
RolapHierarchy |
getHierarchy()
Returns the hierarchy that this source is reading for. |
RolapMember |
getLeadMember(RolapMember member,
int n)
Returns the member n after member in the same
level (or before, if n is negative). |
int |
getLevelMemberCount(RolapLevel level)
Returns the number of members in this level. |
TupleReader.MemberBuilder |
getMemberBuilder()
|
MemberCache |
getMemberCache()
Returns the MemberCache to look up members before
creating them. |
Object |
getMemberCacheLock()
Returns the object which acts as the member cache synchronization lock. |
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(List<RolapMember> parentMembers,
List<RolapMember> children,
MemberChildrenConstraint mcc)
Populates a list of the children of a given set of Members, optionally applying a constraint. |
void |
getMemberChildren(RolapMember parentMember,
List<RolapMember> children)
Writes all children parentMember to children . |
void |
getMemberChildren(RolapMember parentMember,
List<RolapMember> children,
MemberChildrenConstraint constraint)
Populates a list of the children of a Member, optionally applying a constraint. |
int |
getMemberCount()
Returns an estimate of number of members in this hierarchy. |
RolapMember |
getMemberParent(RolapMember member)
|
void |
getMemberRange(RolapLevel level,
RolapMember startMember,
RolapMember endMember,
List<RolapMember> memberList)
Writes all members between startMember and
endMember into list . |
List<RolapMember> |
getMembers()
Returns all members of this hierarchy, sorted by ordinal. |
List<RolapMember> |
getMembersInLevel(RolapLevel level,
int startOrdinal,
int endOrdinal)
Returns all of the members in level whose ordinal lies
between startOrdinal and endOrdinal . |
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. |
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. |
(package private) String |
makeChildMemberSql(RolapMember member,
DataSource dataSource,
MemberChildrenConstraint constraint)
Generates the SQL statement to access the children of member . |
RolapMember |
makeMember(RolapMember parentMember,
RolapLevel childLevel,
Object value,
Object captionValue,
boolean parentChild,
ResultSet resultSet,
Object key,
int columnOffset)
Creates a new member (together with its properties). |
boolean |
setCache(MemberCache cache)
Sets the cache which this MemberSource will write to. |
RolapMember |
substitute(RolapMember member)
Substitutes a given member. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
SqlMemberSource(RolapHierarchy hierarchy)
Method Detail |
---|
public RolapHierarchy getHierarchy()
MemberSource
getHierarchy
in interface MemberSource
public boolean setCache(MemberCache cache)
MemberSource
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 MemberSource.getMembers()
,
MemberSource.getRootMembers()
and MemberSource.getMemberChildren(mondrian.rolap.RolapMember, java.util.List
methods must
write to the cache, in addition to returning members as a return value.
setCache
in interface MemberSource
cache
- The MemberCache
which the caller would like
this MemberSource
to write to.
MemberSource
supports cache-writeback.public int getMemberCount()
MemberSource
getMemberCount
in interface MemberSource
public RolapMember substitute(RolapMember member)
MemberReader
This method is called whenever a member is returned from the wrapped member reader and is to be returned to the caller. You could say that it translates 'to caller space'.
substitute
in interface MemberReader
member
- Member
public RolapMember desubstitute(RolapMember member)
MemberReader
This method is called whenever the caller passes a member into a method and needs to be passed to a method on the wrapped member reader. You could say that it translates 'from caller space'.
desubstitute
in interface MemberReader
member
- Member
public RolapMember lookupMember(List<Id.Segment> uniqueNameParts, boolean failIfNotFound)
MemberSource
lookupMember
in interface MemberSource
public int getLevelMemberCount(RolapLevel level)
MemberReader
getLevelMemberCount
in interface MemberReader
level
- Level
public List<RolapMember> getMembers()
MemberSource
If this object supports cache-writeaback
, also
writes these members to the cache.
getMembers
in interface MemberSource
public List<RolapMember> getMembersInLevel(RolapLevel level, int startOrdinal, int endOrdinal)
MemberReader
level
whose ordinal lies
between startOrdinal
and endOrdinal
.
If this object
supports cache-writeback
, also
writes these members to the cache.
getMembersInLevel
in interface MemberReader
List
of RolapMember
public List<RolapMember> getMembersInLevel(RolapLevel level, int startOrdinal, int endOrdinal, TupleConstraint constraint)
MemberReader
getMembersInLevel
in interface MemberReader
level
- LevelstartOrdinal
- Ordinal of first member to retrieveendOrdinal
- Ordinal of last member to upper boundconstraint
- Constraint
public MemberCache getMemberCache()
TupleReader.MemberBuilder
MemberCache
to look up members before
creating them.
getMemberCache
in interface TupleReader.MemberBuilder
public Object getMemberCacheLock()
TupleReader.MemberBuilder
getMemberCacheLock
in interface TupleReader.MemberBuilder
public List<RolapMember> getRootMembers()
MemberSource
If this object supports cache-writeback
, also
writes these members to the cache.
getRootMembers
in interface MemberSource
List
of RolapMember
sString makeChildMemberSql(RolapMember member, DataSource dataSource, MemberChildrenConstraint constraint)
member
. For example, retrieves the children of the memberSELECT "city" FROM "customer" WHERE "country" = 'USA' AND "state_province" = 'BC' GROUP BY "city"
[Canada].[BC]
.
Note that this method is never called in the context of virtual cubes, it is only called on regular cubes.
See also SqlTupleReader.makeLevelMembersSql(javax.sql.DataSource)
.
public void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children)
MemberSource
parentMembers
, sorted by ordinal.
If this object supports cache-writeaback
, also
writes these members to the cache.
getMemberChildren
in interface MemberSource
public void getMemberChildren(List<RolapMember> parentMembers, List<RolapMember> children, MemberChildrenConstraint mcc)
MemberReader
getMemberChildren
in interface MemberReader
parentMembers
- List of members whose children to findchildren
- List to populate with membersmcc
- Constraintpublic void getMemberChildren(RolapMember parentMember, List<RolapMember> children)
MemberSource
parentMember
to children
.
If this object supports cache-writeback
, also
writes these members to the cache.
getMemberChildren
in interface MemberSource
public void getMemberChildren(RolapMember parentMember, List<RolapMember> children, MemberChildrenConstraint constraint)
MemberReader
getMemberChildren
in interface MemberReader
parentMember
- Members whose children to findchildren
- List to populate with membersconstraint
- Constraintpublic RolapMember makeMember(RolapMember parentMember, RolapLevel childLevel, Object value, Object captionValue, boolean parentChild, ResultSet resultSet, Object key, int columnOffset) throws SQLException
TupleReader.MemberBuilder
makeMember
in interface TupleReader.MemberBuilder
SQLException
makeMember(RolapMember, RolapLevel, Object, Object, boolean, ResultSet, Object, int)
public RolapMember getLeadMember(RolapMember member, int n)
MemberReader
n
after member
in the same
level (or before, if n
is negative).
Returns Hierarchy.getNullMember()
if we run off the beginning or
end of the level.
getLeadMember
in interface MemberReader
public void getMemberRange(RolapLevel level, RolapMember startMember, RolapMember endMember, List<RolapMember> memberList)
MemberReader
startMember
and
endMember
into list
.
getMemberRange
in interface MemberReader
public int compare(RolapMember m1, RolapMember m2, boolean siblingsAreEqual)
MemberReader
siblingsAreEqual
, then two members with the
same parent will compare equal.
compare
in interface MemberReader
siblingsAreEqual
and
m1 and m2 have the same parentpublic TupleReader.MemberBuilder getMemberBuilder()
getMemberBuilder
in interface MemberReader
public RolapMember getDefaultMember()
getDefaultMember
in interface MemberReader
public RolapMember getMemberParent(RolapMember member)
getMemberParent
in interface MemberReader
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |