Package mondrian.rolap.sql
Class CrossJoinArgFactory
- java.lang.Object
-
- mondrian.rolap.sql.CrossJoinArgFactory
-
public class CrossJoinArgFactory extends Object
Creates CrossJoinArgs for use in constraining SQL queries.- Since:
- Dec 15, 2009
- Author:
- kwalker
-
-
Field Summary
Fields Modifier and Type Field Description protected static org.apache.log4j.Logger
LOGGER
-
Constructor Summary
Constructors Constructor Description CrossJoinArgFactory(boolean restrictMemberTypes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<CrossJoinArg>
buildConstraintFromAllAxes(RolapEvaluator evaluator)
List<CrossJoinArg[]>
checkCrossJoin(RolapEvaluator evaluator, FunDef fun, Exp[] args, boolean returnAny)
Checks forCrossJoin(<set1>, <set2>)
, where set1 and set2 are one ofmember.children
,level.members
ormember.descendants
.List<CrossJoinArg[]>
checkCrossJoinArg(RolapEvaluator evaluator, Exp exp)
Scans for memberChildren, levelMembers, memberDescendants, crossJoin.(package private) List<CrossJoinArg[]>
checkCrossJoinArg(RolapEvaluator evaluator, Exp exp, boolean returnAny)
Checks whether an expression can be natively evaluated.
-
-
-
Method Detail
-
buildConstraintFromAllAxes
public Set<CrossJoinArg> buildConstraintFromAllAxes(RolapEvaluator evaluator)
-
checkCrossJoinArg
public List<CrossJoinArg[]> checkCrossJoinArg(RolapEvaluator evaluator, Exp exp)
Scans for memberChildren, levelMembers, memberDescendants, crossJoin.
-
checkCrossJoinArg
List<CrossJoinArg[]> checkCrossJoinArg(RolapEvaluator evaluator, Exp exp, boolean returnAny)
Checks whether an expression can be natively evaluated. The following expressions can be natively evaluated:- member.Children
- level.members
- descendents of a member
- member list
- filter on a dimension
- Parameters:
evaluator
- Evaluatorexp
- Expresssion- Returns:
- List of CrossJoinArg arrays. The first array represent the CJ CrossJoinArg and the second array represent the additional constraints.
-
checkCrossJoin
public List<CrossJoinArg[]> checkCrossJoin(RolapEvaluator evaluator, FunDef fun, Exp[] args, boolean returnAny)
Checks forCrossJoin(<set1>, <set2>)
, where set1 and set2 are one ofmember.children
,level.members
ormember.descendants
.- Parameters:
evaluator
- Evaluator to use if inputs are to be evaluatedfun
- The function, either "CrossJoin" or "NonEmptyCrossJoin"args
- Inputs to the CrossJoinreturnAny
- indicates we should return any valid crossjoin args- Returns:
- array of CrossJoinArg representing the inputs
-
-