org.olap4j.mdx
Class AxisNode

java.lang.Object
  extended by 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.

Version:
$Id: AxisNode.java 245 2009-05-26 21:14:13Z sgwood $

Constructor Summary
AxisNode(ParseRegion region, boolean nonEmpty, Axis axis, java.util.List<IdentifierNode> dimensionProperties, ParseTreeNode expression)
          Creates an axis.
 
Method Summary
<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 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.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 code
nonEmpty - Whether to filter out members of this axis whose cells are all empty
axis - Which axis (ROWS, COLUMNS, etc.)
dimensionProperties - List of dimension properties; if null, empty list is assumed
expression - 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 interface ParseTreeNode
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 interface ParseTreeNode
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 the NON EMPTY property set.

Returns:
whether the axis is NON EMPTY

setNonEmpty

public void setNonEmpty(boolean nonEmpty)
Sets whether the axis has the NON EMPTY property set. See isNonEmpty().

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. See getExpression().

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 interface ParseTreeNode
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 interface ParseTreeNode
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 interface ParseTreeNode
Returns:
The deep copy of this ParseTreeNode

SourceForge.net_Logo