Class ParameterNode

  • All Implemented Interfaces:
    ParseTreeNode

    public class ParameterNode
    extends java.lang.Object
    implements ParseTreeNode
    A parameter to an MDX query.

    Not all dialects of MDX support parameters. If a dialect supports parameters, the driver for that dialect should extend the parser to introduce a ParameterNode into the parse tree wherever a parameter is encountered.

    For example, in Mondrian's dialect of MDX, a call to the Param(name, type, defaultValueExpr) function introduces a parameter, and ParamRef(name) creates a reference to a parameter defined elsewhere in the query.

    • Constructor Detail

      • ParameterNode

        public ParameterNode​(ParseRegion region,
                             java.lang.String name,
                             Type type,
                             ParseTreeNode defaultValueExpression)
        Creates a ParameterNode.

        The name must not be null, and the defaultValueExpression must be consistent with the type.

        Parameters:
        region - Region of source code
        name - Name of parameter
        type - Type of parameter
        defaultValueExpression - Expression which yields the default value of the parameter
    • 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
      • getName

        public java.lang.String getName()
        Returns the name of this parameter.
        Returns:
        name of this parameter
      • setName

        public void setName​(java.lang.String name)
        Sets the name of this parameter.
        Parameters:
        name - Parameter name
      • setType

        public void setType​(Type type)
        Sets the type of this parameter.
        Parameters:
        type - Type
      • getDefaultValueExpression

        public ParseTreeNode getDefaultValueExpression()
        Returns the expression which yields the default value of this parameter.
        Returns:
        expression which yields the default value of this parameter
      • setDefaultValueExpression

        public void setDefaultValueExpression​(ParseTreeNode defaultValueExpression)
        Sets the expression which yields the default value of this parameter.
        Parameters:
        defaultValueExpression - default value expression
      • deepCopy

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