Package org.olap4j.mdx
Class AxisNode
java.lang.Object
org.olap4j.mdx.AxisNode
- All Implemented Interfaces:
ParseTreeNode
An axis in an MDX query. For example, the typical MDX query has two axes,
which appear as the "ON COLUMNS" and "ON ROWS" clauses.
-
Constructor Summary
ConstructorsConstructorDescriptionAxisNode
(ParseRegion region, boolean nonEmpty, Axis axis, List<IdentifierNode> dimensionProperties, ParseTreeNode expression) Creates an axis. -
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.getAxis()
Returns the name of the axis this axis expression is populating.Returns the list of dimension properties of this axis.Returns the expression which is used to compute the value of this axis.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.boolean
Returns whether the axis has theNON 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 theNON EMPTY
property set.void
unparse
(ParseTreeWriter writer) Converts this node into MDX text.
-
Constructor Details
-
AxisNode
public AxisNode(ParseRegion region, boolean nonEmpty, Axis axis, List<IdentifierNode> dimensionProperties, ParseTreeNode expression) Creates an axis.- Parameters:
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 axis
-
-
Method Details
-
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 interfaceParseTreeNode
- Returns:
- Region of the source code this node was created from, if it was created by parsing
-
accept
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 interfaceParseTreeNode
- Parameters:
visitor
- Visitor- Returns:
- T, the specific return type of the visitor
-
getAxis
Returns the name of the axis this axis expression is populating.- Returns:
- axis name
-
isNonEmpty
public boolean isNonEmpty()Returns whether the axis has theNON EMPTY
property set.- Returns:
- whether the axis is NON EMPTY
-
setNonEmpty
public void setNonEmpty(boolean nonEmpty) Sets whether the axis has theNON EMPTY
property set. SeeisNonEmpty()
.- Parameters:
nonEmpty
- whether the axis is NON EMPTY
-
getExpression
Returns the expression which is used to compute the value of this axis.- Returns:
- the expression which is used to compute the value of this axis
-
setExpression
Sets the expression which is used to compute the value of this axis. SeegetExpression()
.- Parameters:
expr
- the expression which is used to compute the value of this axis
-
unparse
Description copied from interface:ParseTreeNode
Converts this node into MDX text.- Specified by:
unparse
in interfaceParseTreeNode
- Parameters:
writer
- Parse tree writer
-
getDimensionProperties
Returns the list of dimension properties of this axis.- Returns:
- list of dimension properties
-
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 interfaceParseTreeNode
- Returns:
- type of this expression
-
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 interfaceParseTreeNode
- Returns:
- The deep copy of this ParseTreeNode
-