mondrian.rolap
Class RolapNativeSet.MemberListCrossJoinArg

java.lang.Object
  extended by mondrian.rolap.RolapNativeSet.MemberListCrossJoinArg
All Implemented Interfaces:
RolapNativeSet.CrossJoinArg
Enclosing class:
RolapNativeSet

protected static class RolapNativeSet.MemberListCrossJoinArg
extends java.lang.Object
implements RolapNativeSet.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.RolapNativeSet.CrossJoinArg
EMPTY_ARRAY
 
Method Summary
 void addConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar)
           
(package private) static RolapNativeSet.CrossJoinArg create(RolapEvaluator evaluator, java.util.List<RolapMember> args, boolean restrictMemberTypes, boolean exclude)
          Creates an instance of RolapNativeSet.CrossJoinArg, or returns null if the arguments are invalid.
 boolean equals(java.lang.Object obj)
           
 RolapLevel getLevel()
           
 java.util.List<RolapMember> getMembers()
           
 boolean hasAllMember()
           
 boolean hasCalcMembers()
           
 int hashCode()
           
 boolean isEmptyCrossJoinArg()
          Returns whether the input CJ arg is empty.
 boolean isPreferInterpreter(boolean joinArg)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

create

static RolapNativeSet.CrossJoinArg create(RolapEvaluator evaluator,
                                          java.util.List<RolapMember> args,
                                          boolean restrictMemberTypes,
                                          boolean exclude)
Creates an instance of RolapNativeSet.CrossJoinArg, 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 evaluator
args - members in the list
restrictMemberTypes - whether calculated members are allowed
exclude - 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 interface RolapNativeSet.CrossJoinArg

getMembers

public java.util.List<RolapMember> getMembers()
Specified by:
getMembers in interface RolapNativeSet.CrossJoinArg

isPreferInterpreter

public boolean isPreferInterpreter(boolean joinArg)
Specified by:
isPreferInterpreter in interface RolapNativeSet.CrossJoinArg

addConstraint

public void addConstraint(SqlQuery sqlQuery,
                          RolapCube baseCube,
                          AggStar aggStar)
Specified by:
addConstraint in interface RolapNativeSet.CrossJoinArg

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()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads