Package org.olap4j.mdx
Class AxisNode
- java.lang.Object
-
- org.olap4j.mdx.AxisNode
-
- All Implemented Interfaces:
ParseTreeNode
public class AxisNode extends java.lang.Object implements 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
Constructors Constructor Description AxisNode(ParseRegion region, boolean nonEmpty, Axis axis, java.util.List<IdentifierNode> dimensionProperties, ParseTreeNode expression)
Creates an axis.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.java.util.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 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 Detail
-
AxisNode
public AxisNode(ParseRegion region, boolean nonEmpty, Axis axis, java.util.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 Detail
-
getRegion
public ParseRegion 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
public <T> T accept(ParseTreeVisitor<T> visitor)
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
public Axis 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
public ParseTreeNode 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
public void setExpression(ParseTreeNode expr)
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
public void unparse(ParseTreeWriter writer)
Description copied from interface:ParseTreeNode
Converts this node into MDX text.- Specified by:
unparse
in interfaceParseTreeNode
- Parameters:
writer
- Parse tree writer
-
getDimensionProperties
public java.util.List<IdentifierNode> getDimensionProperties()
Returns the list of dimension properties of this axis.- Returns:
- list of dimension properties
-
getType
public Type 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
public AxisNode 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
-
-