public class WithMemberNode extends Object implements ParseTreeNode
WITH MEMBER clause of an MDX SELECT statement.| Constructor and Description |
|---|
WithMemberNode(ParseRegion region,
IdentifierNode name,
ParseTreeNode exp,
List<PropertyValueNode> memberPropertyList)
Constructs a formula specifying a member.
|
| Modifier and Type | Method and Description |
|---|---|
<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.
|
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.
|
public WithMemberNode(ParseRegion region, IdentifierNode name, ParseTreeNode exp, List<PropertyValueNode> memberPropertyList)
region - Source code regionname - Name of member being declaredexp - Expression for value of membermemberPropertyList - Collection of properties of memberpublic 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 void unparse(ParseTreeWriter writer)
ParseTreeNodeunparse in interface ParseTreeNodewriter - Parse tree writerpublic IdentifierNode getIdentifier()
The name is as specified in the parse tree; it may not be identical to the unique name of the member.
public ParseTreeNode getExpression()
public void setExpression(ParseTreeNode expression)
expression - Expressionpublic <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 Type getType()
ParseTreeNodeReturns null if this node is not an expression, for instance a
SELECT node.
getType in interface ParseTreeNodepublic List<PropertyValueNode> getMemberPropertyList()
The list may be empty, but is never null. Each entry is a (name, expression) pair.
public WithMemberNode deepCopy()
ParseTreeNodeNote: implementing classes can return the concrete type instead of ParseTreeNode (using Java 1.5 covariant return types)
deepCopy in interface ParseTreeNode