Package mondrian.rolap.sql
Class MemberListCrossJoinArg
java.lang.Object
mondrian.rolap.sql.MemberListCrossJoinArg
- All Implemented Interfaces:
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
Modifier and TypeMethodDescriptionvoid
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
getLevel()
boolean
boolean
int
hashCode()
boolean
Returns whether the input CJ arg is empty.boolean
isPreferInterpreter
(boolean joinArg)
-
Method Details
-
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
- Specified by:
getLevel
in interfaceCrossJoinArg
-
getMembers
- Specified by:
getMembers
in interfaceCrossJoinArg
-
isPreferInterpreter
public boolean isPreferInterpreter(boolean joinArg) - Specified by:
isPreferInterpreter
in interfaceCrossJoinArg
-
addConstraint
- 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() -
hashCode
public int hashCode() -
equals
-