public class AxisNode extends Object implements ParseTreeNode
| Constructor and Description |
|---|
AxisNode(ParseRegion region,
boolean nonEmpty,
Axis axis,
List<IdentifierNode> dimensionProperties,
ParseTreeNode expression)
Creates an axis.
|
| Modifier and Type | Method and Description |
|---|---|
<T> T |
accept(ParseTreeVisitor<T> visitor)
Accepts a visitor to this MDX parse tree node.
|
AxisNode |
deepCopy()
Creates a deep copy of this ParseTreeNode object.
|
Axis |
getAxis()
Returns the name of the axis this axis expression is populating.
|
List<IdentifierNode> |
getDimensionProperties()
Returns the list of dimension properties of this axis.
|
ParseTreeNode |
getExpression()
Returns the expression which is used to compute the value of this axis.
|
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.
|
boolean |
isNonEmpty()
Returns whether the axis has the
NON EMPTY property set. |
void |
setExpression(ParseTreeNode expr)
Sets the expression which is used to compute the value of this axis.
|
void |
setNonEmpty(boolean nonEmpty)
Sets whether the axis has the
NON EMPTY property set. |
void |
unparse(ParseTreeWriter writer)
Converts this node into MDX text.
|
public AxisNode(ParseRegion region, boolean nonEmpty, Axis axis, List<IdentifierNode> dimensionProperties, ParseTreeNode expression)
region - Region of source codenonEmpty - Whether to filter out members of this axis whose cells
are all emptyaxis - Which axis (ROWS, COLUMNS, etc.)dimensionProperties - List of dimension properties; if null,
empty list is assumedexpression - Expression to populate the axispublic 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 Axis getAxis()
public boolean isNonEmpty()
NON EMPTY property set.public void setNonEmpty(boolean nonEmpty)
NON EMPTY property set.
See isNonEmpty().nonEmpty - whether the axis is NON EMPTYpublic ParseTreeNode getExpression()
public void setExpression(ParseTreeNode expr)
getExpression().expr - the expression which is used to compute the value of this
axispublic void unparse(ParseTreeWriter writer)
ParseTreeNodeunparse in interface ParseTreeNodewriter - Parse tree writerpublic List<IdentifierNode> getDimensionProperties()
public Type getType()
ParseTreeNodeReturns null if this node is not an expression, for instance a
SELECT node.
getType in interface ParseTreeNodepublic AxisNode deepCopy()
ParseTreeNodeNote: implementing classes can return the concrete type instead of ParseTreeNode (using Java 1.5 covariant return types)
deepCopy in interface ParseTreeNode