Class AxisNode

  • All Implemented Interfaces:
    ParseTreeNode

    public class AxisNode
    extends java.lang.Object
    implements ParseTreeNode
    An axis in an MDX query. For example, the typical MDX query has two axes, which appear as the "ON COLUMNS" and "ON ROWS" clauses.
    • Constructor Detail

      • AxisNode

        public AxisNode​(ParseRegion region,
                        boolean nonEmpty,
                        Axis axis,
                        java.util.List<IdentifierNode> dimensionProperties,
                        ParseTreeNode expression)
        Creates an axis.
        Parameters:
        region - Region of source code
        nonEmpty - Whether to filter out members of this axis whose cells are all empty
        axis - Which axis (ROWS, COLUMNS, etc.)
        dimensionProperties - List of dimension properties; if null, empty list is assumed
        expression - Expression to populate the axis
    • 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
      • getAxis

        public Axis getAxis()
        Returns the name of the axis this axis expression is populating.
        Returns:
        axis name
      • isNonEmpty

        public boolean isNonEmpty()
        Returns whether the axis has the NON EMPTY property set.
        Returns:
        whether the axis is NON EMPTY
      • setNonEmpty

        public void setNonEmpty​(boolean nonEmpty)
        Sets whether the axis has the NON EMPTY property set. See isNonEmpty().
        Parameters:
        nonEmpty - whether the axis is NON EMPTY
      • getExpression

        public ParseTreeNode getExpression()
        Returns the expression which is used to compute the value of this axis.
        Returns:
        the expression which is used to compute the value of this axis
      • setExpression

        public void setExpression​(ParseTreeNode expr)
        Sets the expression which is used to compute the value of this axis. See getExpression().
        Parameters:
        expr - the expression which is used to compute the value of this axis
      • getDimensionProperties

        public java.util.List<IdentifierNode> getDimensionProperties()
        Returns the list of dimension properties of this axis.
        Returns:
        list of dimension properties
      • 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
      • deepCopy

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