Class FormulaFunction
- java.lang.Object
-
- org.pentaho.reporting.libraries.formula.lvalues.AbstractLValue
-
- org.pentaho.reporting.libraries.formula.lvalues.FormulaFunction
-
- All Implemented Interfaces:
Serializable
,Cloneable
,LValue
public class FormulaFunction extends AbstractLValue
A function. Formulas consist of functions, references or static values, which are connected by operators. Functions always have a cannonical name, which must be unique and which identifies the function. Functions can have a list of parameters. The number of parameters can vary, and not all parameters need to be filled. Functions can have required and optional parameters. Mixing required and optional parameters is not allowed. Optional parameters cannot be ommited, unless they are the last parameter in the list. This class provides the necessary wrapper functionality to fill in the parameters.- Author:
- Thomas Morgner
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description FormulaFunction(String functionName, LValue[] parameters)
FormulaFunction(String functionName, LValue[] parameters, ParsePosition parsePosition)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
clone()
TypeValuePair
evaluate()
LValue[]
getChildValues()
Returns any dependent lvalues (parameters and operands, mostly).Function
getFunction()
Returns the initialized function.String
getFunctionName()
Returns the function's name.FunctionDescription
getMetaData()
Returns the function's meta-data.void
initialize(FormulaContext context)
boolean
isConstant()
Checks whether the LValue is constant.String
toString()
-
Methods inherited from class org.pentaho.reporting.libraries.formula.lvalues.AbstractLValue
getContext, getParsePosition, getValueType, setParsePosition
-
-
-
-
Constructor Detail
-
FormulaFunction
public FormulaFunction(String functionName, LValue[] parameters, ParsePosition parsePosition)
-
-
Method Detail
-
initialize
public void initialize(FormulaContext context) throws EvaluationException
- Specified by:
initialize
in interfaceLValue
- Overrides:
initialize
in classAbstractLValue
- Throws:
EvaluationException
-
getFunctionName
public String getFunctionName()
Returns the function's name. This is the normalized name and may not be suitable for the user. Query the function's metadata to retrieve a display-name.- Returns:
- the function's name.
-
getFunction
public Function getFunction()
Returns the initialized function. Be aware that this method will return null if this LValue instance has not yet been initialized.- Returns:
- the function instance or null, if the FormulaFunction instance has not yet been initialized.
-
getMetaData
public FunctionDescription getMetaData()
Returns the function's meta-data. Be aware that this method will return null if this LValue instance has not yet been initialized.- Returns:
- the function description instance or null, if the FormulaFunction instance has not yet been initialized.
-
clone
public Object clone() throws CloneNotSupportedException
- Specified by:
clone
in interfaceLValue
- Overrides:
clone
in classAbstractLValue
- Throws:
CloneNotSupportedException
-
evaluate
public TypeValuePair evaluate() throws EvaluationException
- Throws:
EvaluationException
-
getChildValues
public LValue[] getChildValues()
Returns any dependent lvalues (parameters and operands, mostly).- Specified by:
getChildValues
in interfaceLValue
- Overrides:
getChildValues
in classAbstractLValue
- Returns:
-
isConstant
public boolean isConstant()
Checks whether the LValue is constant. Constant lvalues always return the same value.- Returns:
- true, if the function will always return the same value.
-
-