|
Formula 1.0.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Objecthirondelle.formula.Formula
public final class Formula
Evaluate a mathematical formula.
If any variables are present in the formula, then they must all be assigned a value before the formula can be successfully evaluated.
If any custom functions are present in the formula, then they must all be defined before the formula can be successfully evaluated.
Constructor Summary | |
---|---|
Formula(String aFormula)
Constructor for the simplest case. |
|
Formula(String aFormula,
Map<String,Decimal> aVariableValues)
Constructor for a formula containing variables. |
|
Formula(String aFormula,
Map<String,Decimal> aVariableValues,
Map<String,Function> aCustomFunctions)
Full constructor, taking all possible parameters. |
Method Summary | |
---|---|
Decimal |
getAnswer()
Evaluate the formula, and return the answer as a number. |
Map<String,Function> |
getCustomFunctions()
Return the Map of custom functions passed to the constructor, if any. |
static Map<String,Function> |
getDefaultFunctions()
Return all built-in functions, in a mutable Map, whose key is the name of the function as it appears in a formula. |
String |
getFormula()
Return the text of the formula passed to the constructor. |
List<String> |
getFunctionNames()
Return the names of all functions appearing in the formula, if any. |
List<String> |
getUnknownFunctionNames()
Return the names of all functions appearing in the formula which aren't recognized, if any. |
List<String> |
getUnpopulatedVariableNames()
Return the names of all variables appearing in the formula which aren't populated, if any. |
List<String> |
getVariableNames()
Return the names of all variables appearing in the formula, if any. |
Map<String,Decimal> |
getVariableValues()
Return the Map of variable values passed to the constructor, if any. |
boolean |
hasUnknownFunctionNames()
Return true only if the formula has at least one unknown function name. |
boolean |
hasUnpopulatedVariables()
Return true only if the formula has at least one variable which has not been populated. |
boolean |
hasVariables()
Return true only if the formula has at least one variable. |
Methods inherited from class Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Formula(String aFormula)
As in the full constructor, but using an empty Map for the variables, and the default built-in functions. This constructor can only be used when there are no variables in the formula.
public Formula(String aFormula, Map<String,Decimal> aVariableValues)
public Formula(String aFormula, Map<String,Decimal> aVariableValues, Map<String,Function> aCustomFunctions)
aFormula
- the text of the formula; must have content; if the formula contains references to variables,
then values for all of those variables must be supplied in aVariableValuesaVariableValues
- maps all variable names to their corresponding values; possibly empty.aCustomFunctions
- maps all possible function names to their corresponding implementations of the Function
interface. Typically, callers will build this parameter by starting with getDefaultFunctions()
, and altering its return value.Method Detail |
---|
public static Map<String,Function> getDefaultFunctions()
The caller can alter the returned Map, and then pass the new Map to a constructor of this class. This allows you to add to the built-in functions, and even customize/replace the built-in functions themselves. In general, you may take the return value and :
public String getFormula()
public Map<String,Decimal> getVariableValues()
Decimal
value. May return an empty Map.
public Map<String,Function> getCustomFunctions()
Function
object. May return an empty Map.
public boolean hasVariables()
public boolean hasUnpopulatedVariables()
public List<String> getVariableNames()
public List<String> getUnpopulatedVariableNames()
public List<String> getFunctionNames()
public boolean hasUnknownFunctionNames()
public List<String> getUnknownFunctionNames()
public Decimal getAnswer() throws MalformedFormulaException
UnpopulatedVariableException
- if there are one or more variables in the formula that are
not in the Map of variable values passed to the constructor.
UnknownFunctionException
- if there are one or more function names in the formula that are
not in the Map of functions passed to the constructor.
MalformedFormulaException
|
Formula 1.0.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |