org.olap4j.mdx
Class ParameterNode

java.lang.Object
  extended by org.olap4j.mdx.ParameterNode
All Implemented Interfaces:
ParseTreeNode

public class ParameterNode
extends 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.

Version:
$Id: ParameterNode.java 482 2012-01-05 23:27:27Z jhyde $

Constructor Summary
ParameterNode(ParseRegion region, String name, Type type, ParseTreeNode defaultValueExpression)
          Creates a ParameterNode.
 
Method Summary
<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.
 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(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.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParameterNode

public ParameterNode(ParseRegion region,
                     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

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 interface ParseTreeNode
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 interface ParseTreeNode
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 interface ParseTreeNode
Returns:
type of this expression

getName

public String getName()
Returns the name of this parameter.

Returns:
name of this parameter

setName

public void setName(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

SourceForge.net_Logo