Package mondrian.calc.impl
Class GenericCalc
java.lang.Object
mondrian.calc.impl.AbstractCalc
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
,MemberArrayValueCalc
,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
- Author:
- jhyde
- See Also:
-
Field Summary
Fields inherited from class mondrian.calc.impl.AbstractCalc
exp, type
-
Constructor Summary
ModifierConstructorDescriptionprotected
GenericCalc
(Exp exp) Creates a GenericCalc without specifying child calculated expressions.protected
GenericCalc
(Exp exp, Calc[] calcs) Creates an GenericCalc. -
Method Summary
Modifier and TypeMethodDescriptionboolean
evaluateBoolean
(Evaluator evaluator) Evaluates this expression to yield aboolean
value.evaluateDateTime
(Evaluator evaluator) Evaluates this expression to yield aDate
value.evaluateDimension
(Evaluator evaluator) Evaluates this expression to yield a dimension.double
evaluateDouble
(Evaluator evaluator) Evaluates this expression to yield adouble
value.evaluateHierarchy
(Evaluator evaluator) Evaluates this expression to yield a hierarchy.int
evaluateInteger
(Evaluator evaluator) Evaluates this expression to yield anint
value.evaluateLevel
(Evaluator evaluator) Evaluates this expression to yield a level.evaluateMember
(Evaluator evaluator) Evaluates this expression to yield a member.evaluateString
(Evaluator evaluator) Evaluates this expression to yield aString
value.Member[]
evaluateTuple
(Evaluator evaluator) Evaluates this expression to yield a tuple.void
evaluateVoid
(Evaluator evaluator) static double
numberToDouble
(Number number) Methods inherited from class mondrian.calc.impl.AbstractCalc
accept, anyDepends, anyDependsButFirst, butDepends, collectArguments, dependsOn, getArguments, getCalcs, getName, getResultStyle, getType, isWrapperFor, simplifyEvaluator, unwrap
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, isWrapperFor, unwrap
-
Constructor Details
-
GenericCalc
Creates a GenericCalc without specifying child calculated expressions.Subclass should override
AbstractCalc.getCalcs()
.- Parameters:
exp
- Source expression
-
GenericCalc
Creates an GenericCalc.- Parameters:
exp
- Source expressioncalcs
- Child compiled expressions
-
-
Method Details
-
evaluateTuple
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 interfaceTupleCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- an array of members, or null to represent the null tuple
-
evaluateString
Description copied from interface:StringCalc
Evaluates this expression to yield aString
value.- Specified by:
evaluateString
in interfaceStringCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- evaluation result
-
evaluateInteger
Description copied from interface:IntegerCalc
Evaluates this expression to yield anint
value. If the result is null, returns the specialFunUtil.IntegerNull
value.- Specified by:
evaluateInteger
in interfaceIntegerCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- evaluation result
-
evaluateDouble
Description copied from interface:DoubleCalc
Evaluates this expression to yield adouble
value. If the result is null, returns the specialFunUtil.DoubleNull
value.- Specified by:
evaluateDouble
in interfaceDoubleCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- evaluation result
-
numberToDouble
-
evaluateBoolean
Description copied from interface:BooleanCalc
Evaluates this expression to yield aboolean
value. If the result is null, returns the specialFunUtil.BooleanNull
value.- Specified by:
evaluateBoolean
in interfaceBooleanCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- evaluation result
-
evaluateDateTime
Description copied from interface:DateTimeCalc
Evaluates this expression to yield aDate
value.- Specified by:
evaluateDateTime
in interfaceDateTimeCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- evaluation result
-
evaluateVoid
- Specified by:
evaluateVoid
in interfaceVoidCalc
-
evaluateMember
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 interfaceMemberCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- a member
-
evaluateLevel
Description copied from interface:LevelCalc
Evaluates this expression to yield a level.Never returns null.
- Specified by:
evaluateLevel
in interfaceLevelCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- a level
-
evaluateHierarchy
Description copied from interface:HierarchyCalc
Evaluates this expression to yield a hierarchy.Never returns null.
- Specified by:
evaluateHierarchy
in interfaceHierarchyCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- a hierarchy
-
evaluateDimension
Description copied from interface:DimensionCalc
Evaluates this expression to yield a dimension.Never returns null.
- Specified by:
evaluateDimension
in interfaceDimensionCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- a dimension
-