Package mondrian.rolap.sql
Class MemberListCrossJoinArg
- java.lang.Object
-
- mondrian.rolap.sql.MemberListCrossJoinArg
-
- All Implemented Interfaces:
CrossJoinArg
public class MemberListCrossJoinArg extends Object implements CrossJoinArg
Represents an enumeration {member1, member2, ...}. All members must to the same level and are non-calculated.
-
-
Field Summary
-
Fields inherited from interface mondrian.rolap.sql.CrossJoinArg
EMPTY_ARRAY
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar)
static CrossJoinArg
create(RolapEvaluator evaluator, List<RolapMember> args, boolean restrictMemberTypes, boolean exclude)
Creates an instance ofCrossJoinArg
, or returns null if the arguments are invalid.boolean
equals(Object obj)
RolapLevel
getLevel()
List<RolapMember>
getMembers()
boolean
hasAllMember()
boolean
hasCalcMembers()
int
hashCode()
boolean
isEmptyCrossJoinArg()
Returns whether the input CJ arg is empty.boolean
isPreferInterpreter(boolean joinArg)
-
-
-
Method Detail
-
create
public static CrossJoinArg create(RolapEvaluator evaluator, List<RolapMember> args, boolean restrictMemberTypes, boolean exclude)
Creates an instance ofCrossJoinArg
, or returns null if the arguments are invalid. This method also records properties of the member list such as containing calc/non calc members, and containing the All member.If restrictMemberTypes is set, then the resulting argument could contain calculated members. The newly created CrossJoinArg is marked appropriately for special handling downstream.
If restrictMemberTypes is false, then the resulting argument contains non-calculated members of the same level (after filtering out any null members).
- Parameters:
evaluator
- the current evaluatorargs
- members in the listrestrictMemberTypes
- whether calculated members are allowedexclude
- Whether to exclude tuples that match the predicate- Returns:
- MemberListCrossJoinArg if member list is well formed, null if not.
-
getLevel
public RolapLevel getLevel()
- Specified by:
getLevel
in interfaceCrossJoinArg
-
getMembers
public List<RolapMember> getMembers()
- Specified by:
getMembers
in interfaceCrossJoinArg
-
isPreferInterpreter
public boolean isPreferInterpreter(boolean joinArg)
- Specified by:
isPreferInterpreter
in interfaceCrossJoinArg
-
addConstraint
public void addConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar)
- Specified by:
addConstraint
in interfaceCrossJoinArg
-
isEmptyCrossJoinArg
public boolean isEmptyCrossJoinArg()
Returns whether the input CJ arg is empty.This is used to selectively push down empty input arg into the native evaluator.
- Returns:
- whether the input CJ arg is empty
-
hasCalcMembers
public boolean hasCalcMembers()
-
hasAllMember
public boolean hasAllMember()
-
-