public class ConstantCalc extends GenericCalc
exp, type
Constructor and Description |
---|
ConstantCalc(Type type,
Object o) |
Modifier and Type | Method and Description |
---|---|
void |
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 |
constantString(String s)
Creates an expression which evaluates to a given string.
|
boolean |
dependsOn(Hierarchy hierarchy)
Returns whether this expression depends upon a given hierarchy.
|
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.
|
protected String |
getName()
Returns the name of this expression type, used when serializing an
expression to a string.
|
ResultStyle |
getResultStyle()
Returns style in which the result of evaluating this expression is
returned.
|
evaluateBoolean, evaluateDateTime, evaluateDimension, evaluateHierarchy, evaluateLevel, evaluateMember, evaluateString, evaluateTuple, evaluateVoid, numberToDouble
accept, anyDepends, anyDependsButFirst, butDepends, getArguments, getType, isWrapperFor, simplifyEvaluator, unwrap
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
accept, getType, isWrapperFor, unwrap
protected String getName()
AbstractCalc
The default implementation tries to extract a name from a function call, if any, then prints the last part of the class name.
getName
in class AbstractCalc
public ResultStyle getResultStyle()
Calc
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.
getResultStyle
in interface Calc
getResultStyle
in class AbstractCalc
ExpCompiler.compileList(mondrian.olap.Exp, boolean)
public void collectArguments(Map<String,Object> arguments)
AbstractCalc
The default implementation returns name, class, type, resultStyle. A subclass must call super, but may add other arguments.
collectArguments
in class AbstractCalc
arguments
- Collection of name/value pairs, represented as a mappublic Object evaluate(Evaluator evaluator)
Calc
evaluator
- Provides dimensional context in which to evaluate
this expressionpublic int evaluateInteger(Evaluator evaluator)
IntegerCalc
int
value.
If the result is null, returns the special
FunUtil.IntegerNull
value.evaluateInteger
in interface IntegerCalc
evaluateInteger
in class GenericCalc
evaluator
- Evaluation contextpublic double evaluateDouble(Evaluator evaluator)
DoubleCalc
double
value.
If the result is null, returns the special
FunUtil.DoubleNull
value.evaluateDouble
in interface DoubleCalc
evaluateDouble
in class GenericCalc
evaluator
- Evaluation contextpublic boolean dependsOn(Hierarchy hierarchy)
Calc
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:[Measures].[Unit Sales]
depends on all dimensions except [Measures]
.
([Measures].[Unit Sales],
[Time].[1997]) > 1000
depends on all hierarchies except [Measures] and [Time].
Filter([Store].[USA].Children,
[Measures].[Unit Sales] < 50)
depends upon all hierarchies except [Store] and [Measures].
How so? Normally the scalar expression would depend upon all hierarchies
except [Measures], but the Filter
function sets the [Store]
context before evaluating the scalar expression, so it is not inherited
from the surrounding context.
dependsOn
in interface Calc
dependsOn
in class AbstractCalc
hierarchy
- Hierarchypublic Calc[] getCalcs()
AbstractCalc
getCalcs
in class AbstractCalc
public static ConstantCalc constantInteger(int i)
i
- Integer valuepublic static DoubleCalc constantDouble(double v)
v
- Double valuepublic static StringCalc constantString(String s)
s
- String valuepublic static BooleanCalc constantBoolean(boolean b)
b
- Boolean valuepublic static ConstantCalc constantNull(Type type)
type
- Typepublic static Calc constantMember(Member member)
member
- Memberpublic static Calc constantLevel(Level level)
level
- Levelpublic static Calc constantHierarchy(Hierarchy hierarchy)
hierarchy
- HierarchyCopyright © 2020 Hitachi Vantara. All rights reserved.