public class LiteralNode extends Object implements ParseTreeNode
Symbols, such as the ASC keyword in
Order([Store].Members, [Measures].[Unit Sales], ASC), are
also represented as Literals.
A LiteralNode is immutable.
| Modifier and Type | Method and Description |
|---|---|
<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.
|
LiteralNode |
deepCopy()
Creates a deep copy of this ParseTreeNode object.
|
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.
|
Object |
getValue()
Returns the value of this literal.
|
void |
unparse(ParseTreeWriter writer)
Converts this node into MDX text.
|
public static LiteralNode createNull(ParseRegion region)
region - Region of source codepublic static LiteralNode createString(ParseRegion region, String value)
region - Region of source codevalue - String valuecreateSymbol(org.olap4j.mdx.ParseRegion, java.lang.String)public static LiteralNode createSymbol(ParseRegion region, String value)
region - Region of source codevalue - Name of symbolcreateString(org.olap4j.mdx.ParseRegion, java.lang.String)public static LiteralNode createNumeric(ParseRegion region, BigDecimal value, boolean approximate)
region - Region of source codevalue - Value of literal; must not be nullapproximate - Whether the literal is approximatepublic <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 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 Object getValue()
Value is always of type String (if the literal is a string or
a symbol), of type BigDecimal (if the literal is
numeric), or null (if the literal is of null type).
public void unparse(ParseTreeWriter writer)
ParseTreeNodeunparse in interface ParseTreeNodewriter - Parse tree writerpublic LiteralNode deepCopy()
ParseTreeNodeNote: implementing classes can return the concrete type instead of ParseTreeNode (using Java 1.5 covariant return types)
deepCopy in interface ParseTreeNode