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 Object
implements RolapNativeSet.CrossJoinArg

Represents an enumeration {member1, member2, ...}. All members must to the same level and are non-calculated.

Since:
Nov 14, 2005
Author:
av
 

Method Summary
 void addConstraint(SqlQuery sqlQuery, RolapCube baseCube)
           
(package private) static RolapNativeSet.CrossJoinArg create(RolapEvaluator evaluator, List<RolapMember> args, boolean restrictMemberTypes)
          Creates an instance of RolapNativeSet.CrossJoinArg, 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)
           
 
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,
                                          List<RolapMember> args,
                                          boolean restrictMemberTypes)
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
Returns:
MemberListCrossJoinArg if member list is well formed, NULL if not.

getLevel

public RolapLevel getLevel()
Specified by:
getLevel in interface RolapNativeSet.CrossJoinArg

getMembers

public 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)
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 Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

SourceForge.net_Logo