Interface ParseTreeNode
- All Known Implementing Classes:
AxisNode
,CallNode
,CubeNode
,DimensionNode
,DrillThroughNode
,HierarchyNode
,IdentifierNode
,LevelNode
,LiteralNode
,MemberNode
,ParameterNode
,PropertyValueNode
,SelectNode
,WithMemberNode
,WithSetNode
To convert a parse tree to an MDX string, use a ParseTreeWriter
and the unparse(ParseTreeWriter)
method.
- Since:
- Jun 4, 2007
- Author:
- jhyde
-
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 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
unparse
(ParseTreeWriter writer) Converts this node into MDX text.
-
Method Details
-
accept
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
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
-