Class ParameterNode
- java.lang.Object
-
- org.olap4j.mdx.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, andParamRef(name)
creates a reference to a parameter defined elsewhere in the query.
-
-
Constructor Summary
Constructors Constructor Description ParameterNode(ParseRegion region, java.lang.String name, Type type, ParseTreeNode defaultValueExpression)
Creates a ParameterNode.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
accept(ParseTreeVisitor<T> visitor)
Accepts a visitor to this MDX parse tree node.ParameterNode
deepCopy()
Creates a deep copy of this ParseTreeNode object.ParseTreeNode
getDefaultValueExpression()
Returns the expression which yields the default value of this parameter.java.lang.String
getName()
Returns the name of this parameter.ParseRegion
getRegion()
Returns the region of the source code which this node was created from, if it was created by parsing.Type
getType()
Returns the type of this expression.void
setDefaultValueExpression(ParseTreeNode defaultValueExpression)
Sets the expression which yields the default value of this parameter.void
setName(java.lang.String name)
Sets the name of this parameter.void
setType(Type type)
Sets the type of this parameter.void
unparse(ParseTreeWriter writer)
Converts this node into MDX text.
-
-
-
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 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 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 interfaceParseTreeNode
- Returns:
- Region of the source code this node was created from, if it was created by parsing
-
accept
public <T> T accept(ParseTreeVisitor<T> visitor)
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
public void unparse(ParseTreeWriter writer)
Description copied from interface:ParseTreeNode
Converts this node into MDX text.- Specified by:
unparse
in interfaceParseTreeNode
- Parameters:
writer
- Parse tree writer
-
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 interfaceParseTreeNode
- 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 interfaceParseTreeNode
- Returns:
- The deep copy of this ParseTreeNode
-
-