Class WithMemberNode

  • All Implemented Interfaces:
    ParseTreeNode

    public class WithMemberNode
    extends java.lang.Object
    implements ParseTreeNode
    Parse tree node which declares a calculated member. Represented as the WITH MEMBER clause of an MDX SELECT statement.
    Author:
    jhyde
    • Constructor Detail

      • WithMemberNode

        public WithMemberNode​(ParseRegion region,
                              IdentifierNode name,
                              ParseTreeNode exp,
                              java.util.List<PropertyValueNode> memberPropertyList)
        Constructs a formula specifying a member.
        Parameters:
        region - Source code region
        name - Name of member being declared
        exp - Expression for value of member
        memberPropertyList - Collection of properties of member
    • Method Detail

      • getRegion

        public ParseRegion getRegion()
        Description copied from interface: ParseTreeNode
        Returns the region of the source code which this node was created from, if it was created by parsing.

        A non-leaf node's region will encompass the regions of all of its children. For example, a the region of a function call node Crossjoin([Gender], {[Store].[USA]}) stretches from the first character of the function name to the closing parenthesis.

        Region may be null, if the node was created programmatically, not from a piece of source code.

        Specified by:
        getRegion in interface ParseTreeNode
        Returns:
        Region of the source code this node was created from, if it was created by parsing
      • getIdentifier

        public IdentifierNode getIdentifier()
        Returns the name of the member declared.

        The name is as specified in the parse tree; it may not be identical to the unique name of the member.

        Returns:
        Name of member
      • getExpression

        public ParseTreeNode getExpression()
        Returns the expression to evaluate to calculate the member.
        Returns:
        expression
      • setExpression

        public void setExpression​(ParseTreeNode expression)
        Sets the expression to evaluate to calculate the member.
        Parameters:
        expression - Expression
      • getType

        public Type getType()
        Description copied from interface: ParseTreeNode
        Returns the type of this expression.

        Returns null if this node is not an expression, for instance a SELECT node.

        Specified by:
        getType in interface ParseTreeNode
        Returns:
        type of this expression
      • getMemberPropertyList

        public java.util.List<PropertyValueNode> getMemberPropertyList()
        Returns the list of properties of this member.

        The list may be empty, but is never null. Each entry is a (name, expression) pair.

        Returns:
        list of properties
      • deepCopy

        public WithMemberNode deepCopy()
        Description copied from interface: ParseTreeNode
        Creates a deep copy of this ParseTreeNode object.

        Note: implementing classes can return the concrete type instead of ParseTreeNode (using Java 1.5 covariant return types)

        Specified by:
        deepCopy in interface ParseTreeNode
        Returns:
        The deep copy of this ParseTreeNode