Class ParameterNode
- All Implemented Interfaces:
ParseTreeNode
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 Summary
ConstructorsConstructorDescriptionParameterNode
(ParseRegion region, String name, Type type, ParseTreeNode defaultValueExpression) Creates a ParameterNode. -
Method Summary
Modifier and TypeMethodDescription<T> T
accept
(ParseTreeVisitor<T> visitor) Accepts a visitor to this MDX parse tree node.deepCopy()
Creates a deep copy of this ParseTreeNode object.Returns the expression which yields the default value of this parameter.getName()
Returns the name of this parameter.Returns the region of the source code which this node was created from, if it was created by parsing.getType()
Returns the type of this expression.void
setDefaultValueExpression
(ParseTreeNode defaultValueExpression) Sets the expression which yields the default value of this parameter.void
Sets the name of this parameter.void
Sets the type of this parameter.void
unparse
(ParseTreeWriter writer) Converts this node into MDX text.
-
Constructor Details
-
ParameterNode
public ParameterNode(ParseRegion region, String name, Type type, ParseTreeNode defaultValueExpression) Creates a ParameterNode.The
name
must not be null, and thedefaultValueExpression
must be consistent with thetype
.- Parameters:
region
- Region of source codename
- Name of parametertype
- Type of parameterdefaultValueExpression
- Expression which yields the default value of the parameter
-
-
Method Details
-
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 interfaceParseTreeNode
- Returns:
- Region of the source code this node was created from, if it was created by parsing
-
accept
Description copied from interface:ParseTreeNode
Accepts a visitor to this MDX parse tree node.The implementation should generally dispatches to the
ParseTreeVisitor.visit(org.olap4j.mdx.SelectNode)
method appropriate to the type of expression.- Specified by:
accept
in interfaceParseTreeNode
- Parameters:
visitor
- Visitor- Returns:
- T, the specific return type of the visitor
-
unparse
Description copied from interface:ParseTreeNode
Converts this node into MDX text.- Specified by:
unparse
in interfaceParseTreeNode
- Parameters:
writer
- Parse tree writer
-
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 interfaceParseTreeNode
- Returns:
- type of this expression
-
getName
Returns the name of this parameter.- Returns:
- name of this parameter
-
setName
Sets the name of this parameter.- Parameters:
name
- Parameter name
-
setType
Sets the type of this parameter.- Parameters:
type
- Type
-
getDefaultValueExpression
Returns the expression which yields the default value of this parameter.- Returns:
- expression which yields the default value of this parameter
-
setDefaultValueExpression
Sets the expression which yields the default value of this parameter.- Parameters:
defaultValueExpression
- default value expression
-
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 interfaceParseTreeNode
- Returns:
- The deep copy of this ParseTreeNode
-