Class 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.
    • Method Detail

      • create

        public static CrossJoinArg create​(RolapEvaluator evaluator,
                                          List<RolapMember> args,
                                          boolean restrictMemberTypes,
                                          boolean exclude)
        Creates an instance of 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.
      • 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