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
public class ConstantCalc extends GenericCalc
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
Constructors Constructor Description ConstantCalc(Type type, Object o)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcollectArguments(Map<String,Object> arguments)Collects any other arguments to this calc.static BooleanCalcconstantBoolean(boolean b)Creates an expression which evaluates to a given boolean.static CalcconstantDimension(Dimension dimension)Creates an expression which evaluates to a given dimension.static DoubleCalcconstantDouble(double v)Creates an expression which evaluates to a given double.static CalcconstantHierarchy(Hierarchy hierarchy)Creates an expression which evaluates to a given hierarchy.static ConstantCalcconstantInteger(int i)Creates an expression which evaluates to a given integer.static CalcconstantLevel(Level level)Creates an expression which evaluates to a given level.static CalcconstantMember(Member member)Creates an expression which evaluates to a given member.static ConstantCalcconstantNull(Type type)Creates an expression which evaluates to null.static StringCalcconstantString(String s)Creates an expression which evaluates to a given string.booleandependsOn(Hierarchy hierarchy)Returns whether this expression depends upon a given hierarchy.Objectevaluate(Evaluator evaluator)Evaluates this expression.doubleevaluateDouble(Evaluator evaluator)Evaluates this expression to yield adoublevalue.intevaluateInteger(Evaluator evaluator)Evaluates this expression to yield anintvalue.Calc[]getCalcs()Returns this expression's child expressions.protected StringgetName()Returns the name of this expression type, used when serializing an expression to a string.ResultStylegetResultStyle()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
-
-
-
-
Method Detail
-
getName
protected String getName()
Description copied from class:AbstractCalcReturns 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:
getNamein classAbstractCalc
-
getResultStyle
public ResultStyle getResultStyle()
Description copied from interface:CalcReturns 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:
getResultStylein interfaceCalc- Overrides:
getResultStylein classAbstractCalc- See Also:
ExpCompiler.compileList(mondrian.olap.Exp, boolean)
-
collectArguments
public void collectArguments(Map<String,Object> arguments)
Description copied from class:AbstractCalcCollects 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:
collectArgumentsin classAbstractCalc- Parameters:
arguments- Collection of name/value pairs, represented as a map
-
evaluate
public Object evaluate(Evaluator evaluator)
Description copied from interface:CalcEvaluates this expression.- Parameters:
evaluator- Provides dimensional context in which to evaluate this expression- Returns:
- Result of expression evaluation
-
evaluateInteger
public int evaluateInteger(Evaluator evaluator)
Description copied from interface:IntegerCalcEvaluates this expression to yield anintvalue. If the result is null, returns the specialFunUtil.IntegerNullvalue.- Specified by:
evaluateIntegerin interfaceIntegerCalc- Overrides:
evaluateIntegerin classGenericCalc- Parameters:
evaluator- Evaluation context- Returns:
- evaluation result
-
evaluateDouble
public double evaluateDouble(Evaluator evaluator)
Description copied from interface:DoubleCalcEvaluates this expression to yield adoublevalue. If the result is null, returns the specialFunUtil.DoubleNullvalue.- Specified by:
evaluateDoublein interfaceDoubleCalc- Overrides:
evaluateDoublein classGenericCalc- Parameters:
evaluator- Evaluation context- Returns:
- evaluation result
-
dependsOn
public boolean dependsOn(Hierarchy hierarchy)
Description copied from interface:CalcReturns 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)Filterfunction sets the [Store] context before evaluating the scalar expression, so it is not inherited from the surrounding context.
- Specified by:
dependsOnin interfaceCalc- Overrides:
dependsOnin classAbstractCalc- Parameters:
hierarchy- Hierarchy- Returns:
- Whether this expression's result depends upon the current member of the hierarchy
- The expression
-
getCalcs
public Calc[] getCalcs()
Description copied from class:AbstractCalcReturns this expression's child expressions.- Overrides:
getCalcsin classAbstractCalc
-
constantInteger
public static ConstantCalc constantInteger(int i)
Creates an expression which evaluates to a given integer.- Parameters:
i- Integer value- Returns:
- Constant integer expression
-
constantDouble
public static DoubleCalc constantDouble(double v)
Creates an expression which evaluates to a given double.- Parameters:
v- Double value- Returns:
- Constant double expression
-
constantString
public static StringCalc constantString(String s)
Creates an expression which evaluates to a given string.- Parameters:
s- String value- Returns:
- Constant string expression
-
constantBoolean
public static BooleanCalc constantBoolean(boolean b)
Creates an expression which evaluates to a given boolean.- Parameters:
b- Boolean value- Returns:
- Constant boolean expression
-
constantNull
public static ConstantCalc constantNull(Type type)
Creates an expression which evaluates to null.- Parameters:
type- Type- Returns:
- Constant null expression
-
constantMember
public static Calc constantMember(Member member)
Creates an expression which evaluates to a given member.- Parameters:
member- Member- Returns:
- Constant member expression
-
constantLevel
public static Calc constantLevel(Level level)
Creates an expression which evaluates to a given level.- Parameters:
level- Level- Returns:
- Constant level expression
-
constantHierarchy
public static Calc constantHierarchy(Hierarchy hierarchy)
Creates an expression which evaluates to a given hierarchy.- Parameters:
hierarchy- Hierarchy- Returns:
- Constant hierarchy expression
-
-