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 Detail

      • 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 Detail

      • 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.

      • 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()