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)
TupleConstraintaddConstraint in interface TupleConstraintsqlQuery - the query to modifybaseCube - base cube for virtual cube constraintsaggStar - aggregate star to usepublic void addLevelConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar, RolapLevel level)
TupleConstraintaddLevelConstraint in interface TupleConstraintsqlQuery - 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)
TupleConstraintThe 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 TupleConstraintpublic Object getCacheKey()
This implementation returns null, because descendants is not cached.
getCacheKey in interface SqlConstraintpublic Evaluator getEvaluator()
getEvaluator in interface TupleConstraintpublic boolean supportsAggTables()
supportsAggTables in interface TupleConstraint