class DescendantsConstraint extends Object implements TupleConstraint
Modifier and Type | Field and Description |
---|---|
(package private) MemberChildrenConstraint |
mcc |
(package private) List<RolapMember> |
parentMembers |
Constructor and Description |
---|
DescendantsConstraint(List<RolapMember> parentMembers,
MemberChildrenConstraint mcc)
Creates a DescendantsConstraint.
|
Modifier and Type | Method and Description |
---|---|
void |
addConstraint(SqlQuery sqlQuery,
RolapCube baseCube,
AggStar aggStar)
Modifies a Level.Members query.
|
void |
addLevelConstraint(SqlQuery sqlQuery,
RolapCube baseCube,
AggStar aggStar,
RolapLevel level)
Will be called multiple times for every "group by" level in
Level.Members query, i.e.
|
Object |
getCacheKey()
Returns a key that becomes part of the key for caching the
result of the SQL query.
|
Evaluator |
getEvaluator() |
MemberChildrenConstraint |
getMemberChildrenConstraint(RolapMember parent)
When the members of a level are fetched, the result is grouped
by into parents and their children.
|
boolean |
supportsAggTables() |
List<RolapMember> parentMembers
MemberChildrenConstraint mcc
public DescendantsConstraint(List<RolapMember> parentMembers, MemberChildrenConstraint mcc)
parentMembers
- list of parents all from the same levelmcc
- the constraint that would return the children for each single
parentpublic void addConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar)
TupleConstraint
addConstraint
in interface TupleConstraint
sqlQuery
- the query to modifybaseCube
- base cube for virtual cube constraintsaggStar
- aggregate star to usepublic void addLevelConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar, RolapLevel level)
TupleConstraint
addLevelConstraint
in interface TupleConstraint
sqlQuery
- the query to modifybaseCube
- base cube for virtual cube constraintsaggStar
- Aggregate table, or null if query is against fact tablelevel
- the level which is accessed in the Level.Members querypublic MemberChildrenConstraint getMemberChildrenConstraint(RolapMember parent)
TupleConstraint
The returned MemberChildrenConstraint must be one that would have returned the same children for the given parent as the MemberLevel query has found for that parent.
If null is returned, the parent/children will not be cached (but the level/members still will be).
getMemberChildrenConstraint
in interface TupleConstraint
public Object getCacheKey()
This implementation returns null, because descendants is not cached.
getCacheKey
in interface SqlConstraint
public Evaluator getEvaluator()
getEvaluator
in interface TupleConstraint
public boolean supportsAggTables()
supportsAggTables
in interface TupleConstraint