org.olap4j.mdx
Interface ParseTreeNode

All Known Implementing Classes:
AxisNode, CallNode, CubeNode, DimensionNode, HierarchyNode, IdentifierNode, LevelNode, LiteralNode, MemberNode, ParameterNode, PropertyValueNode, SelectNode, WithMemberNode, WithSetNode

public interface ParseTreeNode

Node in a parse tree representing a parsed MDX statement.

To convert a parse tree to an MDX string, use a ParseTreeWriter and the unparse(ParseTreeWriter) method.

Since:
Jun 4, 2007
Version:
$Id: ParseTreeNode.java 482 2012-01-05 23:27:27Z jhyde $
Author:
jhyde

Method Summary
<T> T
accept(ParseTreeVisitor<T> visitor)
          Accepts a visitor to this MDX parse tree node.
 ParseTreeNode deepCopy()
          Creates a deep copy of this ParseTreeNode object.
 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 unparse(ParseTreeWriter writer)
          Converts this node into MDX text.
 

Method Detail

accept

<T> T accept(ParseTreeVisitor<T> visitor)
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.

Parameters:
visitor - Visitor
Returns:
T, the specific return type of the visitor

getType

Type getType()
Returns the type of this expression.

Returns null if this node is not an expression, for instance a SELECT node.

Returns:
type of this expression

unparse

void unparse(ParseTreeWriter writer)
Converts this node into MDX text.

Parameters:
writer - Parse tree writer

getRegion

ParseRegion getRegion()
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.

Returns:
Region of the source code this node was created from, if it was created by parsing

deepCopy

ParseTreeNode deepCopy()
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)

Returns:
The deep copy of this ParseTreeNode

SourceForge.net_Logo