mondrian.calc.impl
Class GenericCalc

java.lang.Object
  extended by mondrian.calc.impl.AbstractCalc
      extended by mondrian.calc.impl.GenericCalc
All Implemented Interfaces:
BooleanCalc, Calc, DateTimeCalc, DimensionCalc, DoubleCalc, HierarchyCalc, IntegerCalc, LevelCalc, MemberCalc, StringCalc, TupleCalc, VoidCalc
Direct Known Subclasses:
AbstractVoidCalc, AggregateFunDef.AggregateCalc, CacheCalc, ConstantCalc, MemberValueCalc, TupleValueCalc, ValueCalc

public abstract class GenericCalc
extends AbstractCalc
implements TupleCalc, StringCalc, IntegerCalc, DoubleCalc, BooleanCalc, DateTimeCalc, VoidCalc, MemberCalc, LevelCalc, HierarchyCalc, DimensionCalc

Adapter which computes a scalar or tuple expression and converts it to any required type.

Since:
Sep 26, 2005
Version:
$Id: //open/mondrian/src/main/mondrian/calc/impl/GenericCalc.java#15 $
Author:
jhyde
See Also:
GenericIterCalc

Field Summary
 
Fields inherited from class mondrian.calc.impl.AbstractCalc
exp, type
 
Constructor Summary
protected GenericCalc(Exp exp)
          Creates a GenericCalc without specifying child calculated expressions.
protected GenericCalc(Exp exp, Calc[] calcs)
          Creates an GenericCalc.
 
Method Summary
 boolean evaluateBoolean(Evaluator evaluator)
          Evaluates this expression to yield a boolean value.
 java.util.Date evaluateDateTime(Evaluator evaluator)
          Evaluates this expression to yield a Date value.
 Dimension evaluateDimension(Evaluator evaluator)
          Evaluates this expression to yield a dimension.
 double evaluateDouble(Evaluator evaluator)
          Evaluates this expression to yield a double value.
 Hierarchy evaluateHierarchy(Evaluator evaluator)
          Evaluates this expression to yield a hierarchy.
 int evaluateInteger(Evaluator evaluator)
          Evaluates this expression to yield an int value.
 Level evaluateLevel(Evaluator evaluator)
          Evaluates this expression to yield a level.
 Member evaluateMember(Evaluator evaluator)
          Evaluates this expression to yield a member.
 java.lang.String evaluateString(Evaluator evaluator)
          Evaluates this expression to yield a String value.
 Member[] evaluateTuple(Evaluator evaluator)
          Evaluates this expression to yield a tuple.
 void evaluateVoid(Evaluator evaluator)
           
static double numberToDouble(java.lang.Number number)
           
 
Methods inherited from class mondrian.calc.impl.AbstractCalc
accept, anyDepends, anyDependsButFirst, butDepends, dependsOn, getArguments, getCalcs, getName, getResultStyle, getType, simplifyEvaluator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface mondrian.calc.Calc
accept, dependsOn, evaluate, getResultStyle, getType
 

Constructor Detail

GenericCalc

protected GenericCalc(Exp exp)
Creates a GenericCalc without specifying child calculated expressions.

Subclass should override AbstractCalc.getCalcs().

Parameters:
exp - Source expression

GenericCalc

protected GenericCalc(Exp exp,
                      Calc[] calcs)
Creates an GenericCalc.

Parameters:
exp - Source expression
calcs - Child compiled expressions
Method Detail

evaluateTuple

public Member[] evaluateTuple(Evaluator evaluator)
Description copied from interface: TupleCalc
Evaluates this expression to yield a tuple.

A tuple cannot contain any null members. If any of the members is null, this method must return a null.

Specified by:
evaluateTuple in interface TupleCalc
Parameters:
evaluator - Evaluation context
Returns:
an array of members, or null to represent the null tuple

evaluateString

public java.lang.String evaluateString(Evaluator evaluator)
Description copied from interface: StringCalc
Evaluates this expression to yield a String value.

Specified by:
evaluateString in interface StringCalc
Parameters:
evaluator - Evaluation context
Returns:
evaluation result

evaluateInteger

public int evaluateInteger(Evaluator evaluator)
Description copied from interface: IntegerCalc
Evaluates this expression to yield an int value. If the result is null, returns the special FunUtil.IntegerNull value.

Specified by:
evaluateInteger in interface IntegerCalc
Parameters:
evaluator - Evaluation context
Returns:
evaluation result

evaluateDouble

public double evaluateDouble(Evaluator evaluator)
Description copied from interface: DoubleCalc
Evaluates this expression to yield a double value. If the result is null, returns the special FunUtil.DoubleNull value.

Specified by:
evaluateDouble in interface DoubleCalc
Parameters:
evaluator - Evaluation context
Returns:
evaluation result

numberToDouble

public static double numberToDouble(java.lang.Number number)

evaluateBoolean

public boolean evaluateBoolean(Evaluator evaluator)
Description copied from interface: BooleanCalc
Evaluates this expression to yield a boolean value. If the result is null, returns the special FunUtil.BooleanNull value.

Specified by:
evaluateBoolean in interface BooleanCalc
Parameters:
evaluator - Evaluation context
Returns:
evaluation result

evaluateDateTime

public java.util.Date evaluateDateTime(Evaluator evaluator)
Description copied from interface: DateTimeCalc
Evaluates this expression to yield a Date value.

Specified by:
evaluateDateTime in interface DateTimeCalc
Parameters:
evaluator - Evaluation context
Returns:
evaluation result

evaluateVoid

public void evaluateVoid(Evaluator evaluator)
Specified by:
evaluateVoid in interface VoidCalc

evaluateMember

public Member evaluateMember(Evaluator evaluator)
Description copied from interface: MemberCalc
Evaluates this expression to yield a member.

May return the null member (see Hierarchy.getNullMember()) but never null.

Specified by:
evaluateMember in interface MemberCalc
Parameters:
evaluator - Evaluation context
Returns:
a member

evaluateLevel

public Level evaluateLevel(Evaluator evaluator)
Description copied from interface: LevelCalc
Evaluates this expression to yield a level.

Never returns null.

Specified by:
evaluateLevel in interface LevelCalc
Parameters:
evaluator - Evaluation context
Returns:
a level

evaluateHierarchy

public Hierarchy evaluateHierarchy(Evaluator evaluator)
Description copied from interface: HierarchyCalc
Evaluates this expression to yield a hierarchy.

Never returns null.

Specified by:
evaluateHierarchy in interface HierarchyCalc
Parameters:
evaluator - Evaluation context
Returns:
a hierarchy

evaluateDimension

public Dimension evaluateDimension(Evaluator evaluator)
Description copied from interface: DimensionCalc
Evaluates this expression to yield a dimension.

Never returns null.

Specified by:
evaluateDimension in interface DimensionCalc
Parameters:
evaluator - Evaluation context
Returns:
a dimension

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads