Package mondrian.calc.impl
Class ConstantCalc
java.lang.Object
mondrian.calc.impl.AbstractCalc
mondrian.calc.impl.GenericCalc
mondrian.calc.impl.ConstantCalc
- All Implemented Interfaces:
BooleanCalc
,Calc
,DateTimeCalc
,DimensionCalc
,DoubleCalc
,HierarchyCalc
,IntegerCalc
,LevelCalc
,MemberCalc
,StringCalc
,TupleCalc
,VoidCalc
Calculator which always returns the same value.
- Since:
- Sep 27, 2005
- Author:
- jhyde
-
Field Summary
Fields inherited from class mondrian.calc.impl.AbstractCalc
exp, type
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
collectArguments
(Map<String, Object> arguments) Collects any other arguments to this calc.static BooleanCalc
constantBoolean
(boolean b) Creates an expression which evaluates to a given boolean.static Calc
constantDimension
(Dimension dimension) Creates an expression which evaluates to a given dimension.static DoubleCalc
constantDouble
(double v) Creates an expression which evaluates to a given double.static Calc
constantHierarchy
(Hierarchy hierarchy) Creates an expression which evaluates to a given hierarchy.static ConstantCalc
constantInteger
(int i) Creates an expression which evaluates to a given integer.static Calc
constantLevel
(Level level) Creates an expression which evaluates to a given level.static Calc
constantMember
(Member member) Creates an expression which evaluates to a given member.static ConstantCalc
constantNull
(Type type) Creates an expression which evaluates to null.static StringCalc
Creates an expression which evaluates to a given string.boolean
Returns whether this expression depends upon a given hierarchy.Evaluates this expression.double
evaluateDouble
(Evaluator evaluator) Evaluates this expression to yield adouble
value.int
evaluateInteger
(Evaluator evaluator) Evaluates this expression to yield anint
value.Calc[]
getCalcs()
Returns this expression's child expressions.protected String
getName()
Returns the name of this expression type, used when serializing an expression to a string.Returns style in which the result of evaluating this expression is returned.Methods inherited from class mondrian.calc.impl.GenericCalc
evaluateBoolean, evaluateDateTime, evaluateDimension, evaluateHierarchy, evaluateLevel, evaluateMember, evaluateString, evaluateTuple, evaluateVoid, numberToDouble
Methods inherited from class mondrian.calc.impl.AbstractCalc
accept, anyDepends, anyDependsButFirst, butDepends, getArguments, 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, getType, isWrapperFor, unwrap
-
Constructor Details
-
ConstantCalc
-
-
Method Details
-
getName
Description copied from class:AbstractCalc
Returns the name of this expression type, used when serializing an expression to a string.The default implementation tries to extract a name from a function call, if any, then prints the last part of the class name.
- Overrides:
getName
in classAbstractCalc
-
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 interfaceCalc
- Overrides:
getResultStyle
in classAbstractCalc
- See Also:
-
collectArguments
Description copied from class:AbstractCalc
Collects any other arguments to this calc.The default implementation returns name, class, type, resultStyle. A subclass must call super, but may add other arguments.
- Overrides:
collectArguments
in classAbstractCalc
- Parameters:
arguments
- Collection of name/value pairs, represented as a map
-
evaluate
Description copied from interface:Calc
Evaluates this expression.- Parameters:
evaluator
- Provides dimensional context in which to evaluate this expression- Returns:
- Result of expression evaluation
-
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
- Overrides:
evaluateInteger
in classGenericCalc
- 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
- Overrides:
evaluateDouble
in classGenericCalc
- Parameters:
evaluator
- Evaluation context- Returns:
- evaluation result
-
dependsOn
Description copied from interface:Calc
Returns whether this expression depends upon a given hierarchy.If it does not depend on the hierarchy, then re-evaluating the expression with a different member of this context must produce the same answer.
Some examples:- The expression
depends on all dimensions except[Measures].[Unit Sales]
[Measures]
. - The boolean expression
depends on all hierarchies except [Measures] and [Time].([Measures].[Unit Sales], [Time].[1997]) > 1000
- The list expression
depends upon all hierarchies except [Store] and [Measures]. How so? Normally the scalar expression would depend upon all hierarchies except [Measures], but theFilter([Store].[USA].Children, [Measures].[Unit Sales] < 50)
Filter
function sets the [Store] context before evaluating the scalar expression, so it is not inherited from the surrounding context.
- Specified by:
dependsOn
in interfaceCalc
- Overrides:
dependsOn
in classAbstractCalc
- Parameters:
hierarchy
- Hierarchy- Returns:
- Whether this expression's result depends upon the current member of the hierarchy
- The expression
-
getCalcs
Description copied from class:AbstractCalc
Returns this expression's child expressions.- Overrides:
getCalcs
in classAbstractCalc
-
constantInteger
Creates an expression which evaluates to a given integer.- Parameters:
i
- Integer value- Returns:
- Constant integer expression
-
constantDouble
Creates an expression which evaluates to a given double.- Parameters:
v
- Double value- Returns:
- Constant double expression
-
constantString
Creates an expression which evaluates to a given string.- Parameters:
s
- String value- Returns:
- Constant string expression
-
constantBoolean
Creates an expression which evaluates to a given boolean.- Parameters:
b
- Boolean value- Returns:
- Constant boolean expression
-
constantNull
Creates an expression which evaluates to null.- Parameters:
type
- Type- Returns:
- Constant null expression
-
constantMember
Creates an expression which evaluates to a given member.- Parameters:
member
- Member- Returns:
- Constant member expression
-
constantLevel
Creates an expression which evaluates to a given level.- Parameters:
level
- Level- Returns:
- Constant level expression
-
constantHierarchy
Creates an expression which evaluates to a given hierarchy.- Parameters:
hierarchy
- Hierarchy- Returns:
- Constant hierarchy expression
-
constantDimension
Creates an expression which evaluates to a given dimension.- Parameters:
dimension
- Dimension- Returns:
- Constant dimension expression
-