org.olap4j.mdx
Class WithMemberNode

java.lang.Object
  extended by org.olap4j.mdx.WithMemberNode
All Implemented Interfaces:
ParseTreeNode

public class WithMemberNode
extends java.lang.Object
implements ParseTreeNode

Parse tree node which declares a calculated member. Represented as the WITH MEMBER clause of an MDX SELECT statement.

Version:
$Id: WithMemberNode.java 229 2009-05-08 19:11:29Z jhyde $
Author:
jhyde

Constructor Summary
WithMemberNode(ParseRegion region, IdentifierNode name, ParseTreeNode exp, java.util.List<PropertyValueNode> memberPropertyList)
          Constructs a formula specifying a member.
 
Method Summary
<T> T
accept(ParseTreeVisitor<T> visitor)
          Accepts a visitor to this MDX parse tree node.
 WithMemberNode deepCopy()
          Creates a deep copy of this ParseTreeNode object.
 ParseTreeNode getExpression()
          Returns the expression to evaluate to calculate the member.
 IdentifierNode getIdentifier()
          Returns the name of the member declared.
 java.util.List<PropertyValueNode> getMemberPropertyList()
          Returns the list of properties of this member.
 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.
 void setExpression(ParseTreeNode expression)
          Sets the expression to evaluate to calculate the member.
 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

WithMemberNode

public WithMemberNode(ParseRegion region,
                      IdentifierNode name,
                      ParseTreeNode exp,
                      java.util.List<PropertyValueNode> memberPropertyList)
Constructs a formula specifying a member.

Parameters:
region - Source code region
name - Name of member being declared
exp - Expression for value of member
memberPropertyList - Collection of properties of member
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

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

getIdentifier

public IdentifierNode getIdentifier()
Returns the name of the member declared.

The name is as specified in the parse tree; it may not be identical to the unique name of the member.

Returns:
Name of member

getExpression

public ParseTreeNode getExpression()
Returns the expression to evaluate to calculate the member.

Returns:
expression

setExpression

public void setExpression(ParseTreeNode expression)
Sets the expression to evaluate to calculate the member.

Parameters:
expression - Expression

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

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

getMemberPropertyList

public java.util.List<PropertyValueNode> getMemberPropertyList()
Returns the list of properties of this member.

The list may be empty, but is never null. Each entry is a (name, expression) pair.

Returns:
list of properties

deepCopy

public WithMemberNode 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