Class LiteralNode
- All Implemented Interfaces:
ParseTreeNode
Symbols, such as the ASC
keyword in
Order([Store].Members, [Measures].[Unit Sales], ASC)
, are
also represented as Literals.
A LiteralNode is immutable.
- Author:
- jhyde
-
Method Summary
Modifier and TypeMethodDescription<T> T
accept
(ParseTreeVisitor<T> visitor) Accepts a visitor to this MDX parse tree node.static LiteralNode
createNull
(ParseRegion region) Creates a literal with the NULL value.static LiteralNode
createNumeric
(ParseRegion region, BigDecimal value, boolean approximate) Creates a numeric literal.static LiteralNode
createString
(ParseRegion region, String value) Creates a string literal.static LiteralNode
createSymbol
(ParseRegion region, String value) Creates a symbol literal.deepCopy()
Creates a deep copy of this ParseTreeNode object.Returns the region of the source code which this node was created from, if it was created by parsing.getType()
Returns the type of this expression.getValue()
Returns the value of this literal.void
unparse
(ParseTreeWriter writer) Converts this node into MDX text.
-
Method Details
-
createNull
Creates a literal with the NULL value.- Parameters:
region
- Region of source code- Returns:
- literal representing the NULL value
-
createString
Creates a string literal.- Parameters:
region
- Region of source codevalue
- String value- Returns:
- literal representing the string value
- See Also:
-
createSymbol
Creates a symbol literal.- Parameters:
region
- Region of source codevalue
- Name of symbol- Returns:
- literal representing the symbol value
- See Also:
-
createNumeric
Creates a numeric literal.- Parameters:
region
- Region of source codevalue
- Value of literal; must not be nullapproximate
- Whether the literal is approximate- Returns:
- literal representing the integer value
-
accept
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
-
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
-
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
-
getValue
Returns the value of this literal.Value is always of type
String
(if the literal is a string or a symbol), of typeBigDecimal
(if the literal is numeric), or null (if the literal is of null type).- Returns:
- value
-
unparse
Description copied from interface:ParseTreeNode
Converts this node into MDX text.- Specified by:
unparse
in interfaceParseTreeNode
- Parameters:
writer
- Parse tree writer
-
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
-