public class SelectNode extends Object implements ParseTreeNode
| Constructor and Description |
|---|
SelectNode()
Creates an empty SelectNode.
|
SelectNode(ParseRegion region,
List<ParseTreeNode> withList,
List<AxisNode> axisList,
ParseTreeNode from,
AxisNode filterAxis,
List<IdentifierNode> cellPropertyList)
Creates a SelectNode.
|
| Modifier and Type | Method and Description |
|---|---|
<T> T |
accept(ParseTreeVisitor<T> visitor)
Accepts a visitor to this MDX parse tree node.
|
SelectNode |
deepCopy()
Creates a deep copy of this ParseTreeNode object.
|
List<AxisNode> |
getAxisList()
Returns a list of axes in this SelectNode.
|
List<IdentifierNode> |
getCellPropertyList()
Returns a list of cell properties in this SelectNode.
|
AxisNode |
getFilterAxis()
Returns the filter axis defined by the WHERE clause of this SelectNode.
|
ParseTreeNode |
getFrom()
Returns the node representing the FROM clause of this SELECT statement.
|
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.
|
List<ParseTreeNode> |
getWithList()
Returns a list of calculated members and sets defined as the WITH
clause of this SelectNode.
|
void |
setFrom(ParseTreeNode from)
Sets the FROM clause of this SELECT statement.
|
String |
toString() |
void |
unparse(ParseTreeWriter writer)
Converts this node into MDX text.
|
public SelectNode(ParseRegion region, List<ParseTreeNode> withList, List<AxisNode> axisList, ParseTreeNode from, AxisNode filterAxis, List<IdentifierNode> cellPropertyList)
region - Region of source code from which this node was createdwithList - List of members and sets defined in this query using
a WITH clauseaxisList - List of axesfrom - Contents of FROM clause (name of cube, or subquery)filterAxis - Filter axiscellPropertyList - List of propertiespublic SelectNode()
The contents of the SelectNode, such as the axis list, can be populated after construction.
public ParseRegion getRegion()
ParseTreeNodeA 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.
getRegion in interface ParseTreeNodepublic <T> T accept(ParseTreeVisitor<T> visitor)
ParseTreeNodeThe implementation should generally dispatches to the
ParseTreeVisitor.visit(org.olap4j.mdx.SelectNode) method appropriate to the type of expression.
accept in interface ParseTreeNodevisitor - Visitorpublic Type getType()
ParseTreeNodeReturns null if this node is not an expression, for instance a
SELECT node.
getType in interface ParseTreeNodepublic void unparse(ParseTreeWriter writer)
ParseTreeNodeunparse in interface ParseTreeNodewriter - Parse tree writerpublic List<ParseTreeNode> getWithList()
For example, the WITH clause of query
WITH MEMBER [Measures].[Foo] AS ' [Measures].[Unit Sales] * 2 '
SET [Customers].[Top] AS ' TopCount([Customers].Members, 10) '
SELECT FROM [Sales]
contains one WithMemberNode and one
WithSetNode.
The returned list is mutable.
public List<AxisNode> getAxisList()
The returned list is mutable.
public AxisNode getFilterAxis()
Never returns null. If there is no WHERE clause, returns an
AxisNode for which AxisNode.getExpression()
returns null.
You can modify the filter expression by calling
AxisNode.getExpression() on the filter AxisNode;
null means that there is no filter axis.
public ParseTreeNode getFrom()
IdentifierNode, a CubeNode or
a SelectNode.public void setFrom(ParseTreeNode from)
fromNode should typically by an
IdentifierNode containing the cube name, or
a CubeNode referencing an explicit
Cube object.
from - FROM clausepublic List<IdentifierNode> getCellPropertyList()
The returned list is mutable.
public SelectNode deepCopy()
ParseTreeNodeNote: implementing classes can return the concrete type instead of ParseTreeNode (using Java 1.5 covariant return types)
deepCopy in interface ParseTreeNode