Class AbstractListCalc

java.lang.Object
mondrian.calc.impl.AbstractCalc
mondrian.calc.impl.AbstractListCalc
All Implemented Interfaces:
Calc, IterCalc, ListCalc
Direct Known Subclasses:
IterableListCalc, NativizeSetFunDef.NativeListCalc, SetFunDef.SetListCalc

public abstract class AbstractListCalc extends AbstractCalc implements ListCalc
Abstract implementation of the ListCalc interface.

The derived class must implement the ListCalc.evaluateList(mondrian.olap.Evaluator) method, and the evaluate(mondrian.olap.Evaluator) method will call it.

Since:
Sep 27, 2005
Author:
jhyde
  • Constructor Details

    • AbstractListCalc

      protected AbstractListCalc(Exp exp, Calc[] calcs)
      Creates an abstract implementation of a compiled expression which returns a mutable list of tuples.
      Parameters:
      exp - Expression which was compiled
      calcs - List of child compiled expressions (for dependency analysis)
    • AbstractListCalc

      protected AbstractListCalc(Exp exp, Calc[] calcs, boolean mutable)
      Creates an abstract implementation of a compiled expression which returns a list.
      Parameters:
      exp - Expression which was compiled
      calcs - List of child compiled expressions (for dependency analysis)
      mutable - Whether the list is mutable
  • Method Details

    • getType

      public SetType getType()
      Description copied from interface: Calc
      Returns the type of this expression.
      Specified by:
      getType in interface Calc
      Overrides:
      getType in class AbstractCalc
    • evaluate

      public final Object evaluate(Evaluator evaluator)
      Description copied from interface: Calc
      Evaluates this expression.
      Specified by:
      evaluate in interface Calc
      Parameters:
      evaluator - Provides dimensional context in which to evaluate this expression
      Returns:
      Result of expression evaluation
    • evaluateIterable

      public TupleIterable evaluateIterable(Evaluator evaluator)
      Description copied from interface: IterCalc
      Evaluates an expression to yield an Iterable of members or tuples.

      The Iterable is immutable.

      Specified by:
      evaluateIterable in interface IterCalc
      Parameters:
      evaluator - Evaluation context
      Returns:
      An Iterable of members or tuples, never null.
    • getResultStyle

      public ResultStyle getResultStyle()
      Description copied from interface: Calc
      Returns style in which the result of evaluating this expression is returned.

      One application of this method is for the compiler to figure out whether the compiled expression is returning a mutable list. If a mutable list is required, the compiler can create a mutable copy.

      Specified by:
      getResultStyle in interface Calc
      Overrides:
      getResultStyle in class AbstractCalc
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object