Package mondrian.olap

Class Literal

All Implemented Interfaces:
Exp

public class Literal extends ExpBase
Represents a constant value, such as a string or number, in a parse tree.

Symbols, such as the ASC keyword in Order([Store].Members, [Measures].[Unit Sales], ASC), are also represented as Literals.

Author:
jhyde, 21 January, 1999
  • Field Details

    • category

      public final int category
    • nullValue

      public static final Literal nullValue
    • emptyString

      public static final Literal emptyString
    • zero

      public static final Literal zero
    • one

      public static final Literal one
    • negativeOne

      public static final Literal negativeOne
    • doubleZero

      public static final Literal doubleZero
    • doubleOne

      public static final Literal doubleOne
    • doubleNegativeOne

      public static final Literal doubleNegativeOne
  • Method Details

    • createString

      public static Literal createString(String s)
      Creates a string literal.
      See Also:
    • createSymbol

      public static Literal createSymbol(String s)
      Creates a symbol.
      See Also:
    • create

      public static Literal create(Double d)
      Creates a numeric literal.
    • create

      public static Literal create(Integer i)
      Creates an integer literal.
    • create

      public static Literal create(BigDecimal d)
      Creates a numeric literal.

      Using a BigDecimal allows us to store the precise value that the user typed. We will have to fit the value into a native double or int later on, but parse time is not the time to be throwing away information.

    • clone

      public Literal clone()
      Specified by:
      clone in interface Exp
      Specified by:
      clone in class ExpBase
    • unparse

      public void unparse(PrintWriter pw)
      Description copied from class: QueryPart
      Writes a string representation of this parse tree node to the given writer.
      Specified by:
      unparse in interface Exp
      Overrides:
      unparse in class QueryPart
      Parameters:
      pw - writer
    • getCategory

      public int getCategory()
      Description copied from interface: Exp
      Returns the Category of the expression.
    • getType

      public Type getType()
      Description copied from interface: Exp
      Returns the type of this expression. Never null.
    • accept

      public Exp accept(Validator validator)
      Description copied from interface: Exp
      Validates this expression. The validator acts in the role of 'visitor' (see Gang of Four 'visitor pattern'), and an expression in the role of 'visitee'.
      Parameters:
      validator - Validator contains validation context
      Returns:
      The validated expression; often but not always the same as this expression
    • accept

      public Calc accept(ExpCompiler compiler)
      Description copied from interface: Exp
      Converts this expression into an a tree of expressions which can be efficiently evaluated.
      Specified by:
      accept in interface Exp
      Overrides:
      accept in class ExpBase
      Returns:
      A compiled expression
    • accept

      public Object accept(MdxVisitor visitor)
      Description copied from interface: Exp
      Accepts a visitor to this Exp. The implementation should generally dispatches to the MdxVisitor.visit(mondrian.olap.Query) method appropriate to the type of expression.
      Parameters:
      visitor - Visitor
    • getValue

      public Object getValue()
    • getIntValue

      public int getIntValue()