Class AbstractExpCompiler

    • Constructor Detail

      • AbstractExpCompiler

        public AbstractExpCompiler​(Evaluator evaluator,
                                   Validator validator)
        Creates an AbstractExpCompiler
        Parameters:
        evaluator - Evaluator
        validator - Validator
      • AbstractExpCompiler

        public AbstractExpCompiler​(Evaluator evaluator,
                                   Validator validator,
                                   List<ResultStyle> resultStyles)
        Creates an AbstractExpCompiler which is constrained to produce one of a set of result styles.
        Parameters:
        evaluator - Evaluator
        validator - Validator
        resultStyles - List of result styles, preferred first, must not be
    • Method Detail

      • getEvaluator

        public Evaluator getEvaluator()
        Description copied from interface: ExpCompiler
        Returns the evaluator to be used for evaluating expressions during the compilation process.
        Specified by:
        getEvaluator in interface ExpCompiler
      • getValidator

        public Validator getValidator()
        Description copied from interface: ExpCompiler
        Returns the validator which was used to validate this expression.
        Specified by:
        getValidator in interface ExpCompiler
        Returns:
        validator
      • compile

        public Calc compile​(Exp exp)
        Compiles an expression. Uses the current ResultStyle to compile the expression.
        Specified by:
        compile in interface ExpCompiler
        Parameters:
        exp - Expression
        Returns:
        Compiled expression
      • compileAs

        public Calc compileAs​(Exp exp,
                              Type resultType,
                              List<ResultStyle> preferredResultTypes)
        Compiles an expression to a given result type.

        If resultType is not null, casts the expression to that type. Throws an exception if that conversion is not allowed by the type system.

        The preferredResultStyles parameter specifies a list of desired result styles. It must not be null, but may be empty. Uses a new ResultStyle to compile the expression.

        Specified by:
        compileAs in interface ExpCompiler
        Parameters:
        exp - Expression
        resultType - Desired result type, or null to use expression's current type
        preferredResultTypes - List of result types, in descending order of preference. Never null.
        Returns:
        Compiled expression, or null if none can satisfy
      • compileInteger

        public IntegerCalc compileInteger​(Exp exp)
        Description copied from interface: ExpCompiler
        Compiles an expression which yields an int result. The expression is implicitly converted into a scalar.
        Specified by:
        compileInteger in interface ExpCompiler
      • compileString

        public StringCalc compileString​(Exp exp)
        Description copied from interface: ExpCompiler
        Compiles an expression which yields a String result. The expression is implicitly converted into a scalar.
        Specified by:
        compileString in interface ExpCompiler
      • toList

        public ListCalc toList​(IterCalc calc)
        Converts an iterable over tuples to a list of tuples.
        Parameters:
        calc - Calc
        Returns:
        List calculation.
      • compileIter

        public IterCalc compileIter​(Exp exp)
        Description copied from interface: ExpCompiler
        Compiles an expression which yields an immutable Iterable result.
        Specified by:
        compileIter in interface ExpCompiler
        Parameters:
        exp - Expression
        Returns:
        Calculator which yields an Iterable
      • compileBoolean

        public BooleanCalc compileBoolean​(Exp exp)
        Description copied from interface: ExpCompiler
        Compiles an expression which yields a boolean result.
        Specified by:
        compileBoolean in interface ExpCompiler
        Parameters:
        exp - Expression
        Returns:
        Calculator which yields a boolean
      • compileDouble

        public DoubleCalc compileDouble​(Exp exp)
        Description copied from interface: ExpCompiler
        Compiles an expression which yields a double result.
        Specified by:
        compileDouble in interface ExpCompiler
        Parameters:
        exp - Expression
        Returns:
        Calculator which yields a double
      • compileTuple

        public TupleCalc compileTuple​(Exp exp)
        Description copied from interface: ExpCompiler
        Compiles an expression which yields a tuple result.
        Specified by:
        compileTuple in interface ExpCompiler
        Parameters:
        exp - Expression
        Returns:
        Calculator which yields a tuple
      • compileScalar

        public Calc compileScalar​(Exp exp,
                                  boolean specific)
        Description copied from interface: ExpCompiler
        Compiles an expression to yield a scalar result.

        If the expression yields a member or tuple, the calculator will automatically apply that member or tuple to the current dimensional context and return the value of the current measure.

        Specified by:
        compileScalar in interface ExpCompiler
        Parameters:
        exp - Expression
        specific - Whether to try to use the specific compile method for scalar types. For example, if specific is true and exp is a string expression, calls ExpCompiler.compileString(mondrian.olap.Exp)
        Returns:
        Calculation which returns the scalar value of the expression
      • registerParameter

        public ParameterSlot registerParameter​(Parameter parameter)
        Description copied from interface: ExpCompiler
        Implements a parameter, returning a unique slot which will hold the parameter's value.
        Specified by:
        registerParameter in interface ExpCompiler
        Parameters:
        parameter - Parameter
        Returns:
        Slot