Class CallNode
- All Implemented Interfaces:
ParseTreeNode
Examples of calls include:
5 + 2, a call to the infix arithmetic operator '+'[Measures].[Unit Sales] IS NULL, a call applying thepostfixoperatorIS NULLto a member expressionCrossJoin({[Gender].Children}, {[Store]}), a call to theCrossJoinfunction[Gender].Children, a call to theChildrenoperator, which hasproperty syntax[Gender].Properties("FORMAT_STRING"), a call to thePropertiesoperator, which hasmethod syntax
- Since:
- Jan 6, 2006
- Author:
- jhyde
-
Constructor Summary
ConstructorsConstructorDescriptionCallNode(ParseRegion region, String name, Syntax syntax, List<ParseTreeNode> args) Creates a CallNode.CallNode(ParseRegion region, String name, Syntax syntax, ParseTreeNode... args) Creates an CallNode using a variable number of arguments. -
Method Summary
Modifier and TypeMethodDescription<T> Taccept(ParseTreeVisitor<T> visitor) Accepts a visitor to this MDX parse tree node.deepCopy()Creates a deep copy of this ParseTreeNode object.booleanReturns the list of arguments to this call.Returns the name of the function or operator.Returns the region of the source code which this node was created from, if it was created by parsing.Returns the syntax of this call.getType()Returns the type of this expression.inthashCode()voidSets the type of this CallNode.voidunparse(ParseTreeWriter writer) Converts this node into MDX text.
-
Constructor Details
-
CallNode
Creates a CallNode.The
syntaxargument determines whether this is a prefix, infix or postfix operator, a function call, and so forth.The list of arguments
argsmust be specified, even if there are zero arguments, and each argument must be not null.The type is initially null, but can be set using
setType(org.olap4j.type.Type)after validation.- Parameters:
region- Region of source codename- Name of operator or functionsyntax- Syntax of callargs- List of zero or more arguments
-
CallNode
Creates an CallNode using a variable number of arguments.The
syntaxargument determines whether this is a prefix, infix or postfix operator, a function call, and so forth.The list of arguments
argsmust be specified, even if there are zero arguments, and each argument must be not null.- Parameters:
region- Region of source codename- Name of operator or functionsyntax- Syntax of callargs- List of zero or more arguments
-
-
Method Details
-
getRegion
Description copied from interface:ParseTreeNodeReturns 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:
getRegionin interfaceParseTreeNode- Returns:
- Region of the source code this node was created from, if it was created by parsing
-
setType
Sets the type of this CallNode.Typically, this method would be called by the validator when it has deduced the argument types, chosen between any overloaded functions or operators, and determined the result type of the function or operator.
- Parameters:
type- Result type of this call
-
getType
Description copied from interface:ParseTreeNodeReturns the type of this expression.Returns null if this node is not an expression, for instance a
SELECTnode.- Specified by:
getTypein interfaceParseTreeNode- Returns:
- type of this expression
-
unparse
Description copied from interface:ParseTreeNodeConverts this node into MDX text.- Specified by:
unparsein interfaceParseTreeNode- Parameters:
writer- Parse tree writer
-
accept
Description copied from interface:ParseTreeNodeAccepts 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:
acceptin interfaceParseTreeNode- Parameters:
visitor- Visitor- Returns:
- T, the specific return type of the visitor
-
getOperatorName
Returns the name of the function or operator.- Returns:
- name of the function or operator
-
getSyntax
Returns the syntax of this call.- Returns:
- the syntax of the call
-
getArgList
Returns the list of arguments to this call.- Returns:
- list of arguments
-
deepCopy
Description copied from interface:ParseTreeNodeCreates 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:
deepCopyin interfaceParseTreeNode- Returns:
- The deep copy of this ParseTreeNode
-
hashCode
public int hashCode() -
equals
-