mondrian.calc.impl
Class ConstantCalc

java.lang.Object
  extended by mondrian.calc.impl.AbstractCalc
      extended by mondrian.calc.impl.GenericCalc
          extended by mondrian.calc.impl.ConstantCalc
All Implemented Interfaces:
BooleanCalc, Calc, DateTimeCalc, DimensionCalc, DoubleCalc, HierarchyCalc, IntegerCalc, IterCalc, LevelCalc, ListCalc, MemberCalc, MemberListCalc, StringCalc, TupleCalc, TupleListCalc, 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
ConstantCalc(Type type, Object o)
           
 
Method Summary
 void accept(CalcWriter calcWriter)
          Prints this expression, by accepting a visiting CalcWriter.
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 constantString(String s)
          Creates an expression which evaluates to a given string.
 boolean dependsOn(Dimension dimension)
          Returns whether this expression depends upon a given dimension.
 Object evaluate(Evaluator evaluator)
          Evaluates this expression.
 double evaluateDouble(Evaluator evaluator)
          Evaluates this expression to yield a double value.
 int evaluateInteger(Evaluator evaluator)
          Evaluates this expression to yield an int value.
 Calc[] getCalcs()
          Returns this expression's child expressions.
 ResultStyle getResultStyle()
          Returns style in which the result of evaluating this expression is returned.
 
Methods inherited from class mondrian.calc.impl.GenericCalc
evaluateBoolean, evaluateDateTime, evaluateDimension, evaluateHierarchy, evaluateIterable, evaluateLevel, evaluateList, evaluateMember, evaluateMemberIterable, evaluateMemberList, evaluateString, evaluateTuple, evaluateTupleIterable, evaluateTupleList, evaluateVoid, numberToDouble
 
Methods inherited from class mondrian.calc.impl.AbstractCalc
anyDepends, anyDependsButFirst, butDepends, getArguments, getName, 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
getType
 

Constructor Detail

ConstantCalc

public ConstantCalc(Type type,
                    Object o)
Method Detail

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:
ExpCompiler.compileList(mondrian.olap.Exp, boolean)

accept

public void accept(CalcWriter calcWriter)
Description copied from interface: Calc
Prints this expression, by accepting a visiting CalcWriter.

Specified by:
accept in interface Calc
Overrides:
accept in class AbstractCalc
Parameters:
calcWriter - Writer

evaluate

public Object evaluate(Evaluator evaluator)
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

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
Overrides:
evaluateInteger in class GenericCalc
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
Overrides:
evaluateDouble in class GenericCalc
Parameters:
evaluator - Evaluation context
Returns:
evaluation result

dependsOn

public boolean dependsOn(Dimension dimension)
Description copied from interface: Calc
Returns whether this expression depends upon a given dimension.

If it does not depend on the dimension, then re-evaluating the expression with a different member of this context must produce the same answer.

Some examples:

Specified by:
dependsOn in interface Calc
Overrides:
dependsOn in class AbstractCalc
Parameters:
dimension - Dimension
Returns:
Whether this expression's result depends upon the current member of the dimension

getCalcs

public Calc[] getCalcs()
Description copied from class: AbstractCalc
Returns this expression's child expressions.

Specified by:
getCalcs in class AbstractCalc

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

constantDimension

public static Calc constantDimension(Dimension dimension)
Creates an expression which evaluates to a given dimension.

Parameters:
dimension - Dimension
Returns:
Constant dimension expression

SourceForge.net_Logo