Class SelectNode

  • All Implemented Interfaces:
    ParseTreeNode

    public class SelectNode
    extends java.lang.Object
    implements ParseTreeNode
    Parse tree model for an MDX SELECT statement.
    Since:
    Jun 4, 2007
    Author:
    jhyde
    • Constructor Detail

      • SelectNode

        public SelectNode​(ParseRegion region,
                          java.util.List<ParseTreeNode> withList,
                          java.util.List<AxisNode> axisList,
                          ParseTreeNode from,
                          AxisNode filterAxis,
                          java.util.List<IdentifierNode> cellPropertyList)
        Creates a SelectNode.
        Parameters:
        region - Region of source code from which this node was created
        withList - List of members and sets defined in this query using a WITH clause
        axisList - List of axes
        from - Contents of FROM clause (name of cube, or subquery)
        filterAxis - Filter axis
        cellPropertyList - List of properties
      • SelectNode

        public SelectNode()
        Creates an empty SelectNode.

        The contents of the SelectNode, such as the axis list, can be populated after construction.

    • 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
      • 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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getWithList

        public java.util.List<ParseTreeNode> getWithList()
        Returns a list of calculated members and sets defined as the WITH clause of this SelectNode.

        For example, the WITH clause of query

        WITH MEMBER [Measures].[Foo] AS ' [Measures].[Unit Sales] * 2 ' SET [Customers].[Top] AS ' TopCount([Customers].Members, 10) ' SELECT FROM [Sales]
        contains one WithMemberNode and one WithSetNode.

        The returned list is mutable.

        Returns:
        list of calculated members and sets
      • getAxisList

        public java.util.List<AxisNode> getAxisList()
        Returns a list of axes in this SelectNode.

        The returned list is mutable.

        Returns:
        list of axes
      • getFilterAxis

        public AxisNode getFilterAxis()
        Returns the filter axis defined by the WHERE clause of this SelectNode.

        Never returns null. If there is no WHERE clause, returns an AxisNode for which AxisNode.getExpression() returns null.

        You can modify the filter expression by calling AxisNode.getExpression() on the filter AxisNode; null means that there is no filter axis.

        Returns:
        filter axis
      • setFrom

        public void setFrom​(ParseTreeNode from)
        Sets the FROM clause of this SELECT statement.

        fromNode should typically by an IdentifierNode containing the cube name, or a CubeNode referencing an explicit Cube object.

        Parameters:
        from - FROM clause
      • getCellPropertyList

        public java.util.List<IdentifierNode> getCellPropertyList()
        Returns a list of cell properties in this SelectNode.

        The returned list is mutable.

        Returns:
        list of cell properties
      • deepCopy

        public SelectNode 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