public abstract class Formula extends java.lang.Object implements Calculatable
| Modifier and Type | Field and Description |
|---|---|
protected int |
callCount |
protected boolean |
compiledFlag |
protected java.lang.String |
compiledSummary |
protected java.lang.String |
definition |
protected static java.util.concurrent.ConcurrentHashMap<java.lang.Class,java.util.HashMap> |
FUNCTION_TABLE |
protected java.util.HashMap<java.lang.String,Function> |
functions |
protected java.lang.Object[] |
list |
protected java.lang.String |
name |
protected static java.lang.String |
OPERATORS |
protected java.lang.String |
originalDefinition |
protected java.lang.Object |
specialHolder |
protected java.lang.String |
summary |
static Version |
VERSION |
| Constructor and Description |
|---|
Formula(java.lang.String desc)
Create a new formula
|
Formula(java.lang.String desc,
java.lang.String name)
Create a new formula
|
Formula(java.lang.String desc,
java.lang.String name,
boolean autoCompile)
Create a new formula
|
Formula(java.lang.String desc,
java.lang.String name,
boolean autoCompile,
java.lang.Object specialHolder)
Creates a formula.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
addDependentItem(java.lang.Object obj,
java.util.HashMap dependents)
add the dependent items
|
protected void |
appendNumber(java.lang.Appendable info,
double d)
For informational purposes add a number and make it look nice.
|
double |
calculate(Query query) |
double |
calculate(Query query,
java.lang.Appendable info,
CalculationPathNode parentCalcNode) |
protected double |
calculate(Query query,
int[] pos,
java.lang.Appendable info,
CalculationPathNode parentCalcNode)
Walk through all elements in the formula and return the result.
|
double |
calculateV1(Query query) |
double |
calculateV2(Query query) |
protected boolean |
checkAndMove(int[] pos,
java.lang.Object match) |
void |
compile() |
java.lang.Object |
compute(Query query) |
java.lang.Object |
compute(Query query,
java.lang.Appendable info,
CalculationPathNode parentCalcNode) |
java.lang.Object |
computeV1(Query query) |
java.lang.Object |
computeV2(Query query) |
java.lang.String |
convertToJavaScript() |
protected java.lang.String |
convertToJavaScript(java.util.HashMap<java.lang.String,java.lang.String> functionMap) |
java.util.HashMap |
findDependents() |
java.util.HashMap |
findDependents(java.util.HashMap dependents) |
protected java.lang.Object |
getDefinedItem(java.lang.String n) |
java.lang.String |
getDefinition() |
java.lang.String |
getDetails(Query query) |
java.lang.String |
getHelp() |
Formula |
getInternalSection(int section) |
int |
getInternalSectionCount() |
protected double |
getItem(Query query,
java.lang.Object o,
java.lang.Appendable info,
CalculationPathNode parentCalcNode)
Extend this method to add your own variables
|
java.lang.Object[] |
getItems() |
java.lang.String |
getName()
Returns the name of this formula.
|
java.lang.String |
getSummary(int indent,
boolean shouldIndent,
int[] pos,
boolean short_fg,
boolean formatHTML) |
protected double |
handleOp(double amount,
double d,
java.lang.String op) |
boolean |
isCompiled() |
boolean |
isTextItemAllowed() |
static java.lang.Object |
legacy(java.lang.String functionCode,
java.lang.Object[] arguments)
calls legacy functions
|
protected abstract Formula |
makeFormula(java.lang.String formula)
This method is used to create internal formulas.
|
protected java.lang.Object |
next(int[] pos) |
protected void |
parseFormula(java.util.StringTokenizer st,
java.util.ArrayList items) |
protected void |
registerFunctions(java.util.HashMap table) |
void |
setAllowTextItem(boolean isAllow) |
java.lang.String |
showCompiledVersion() |
java.lang.String |
showCompiledVersionHTML() |
java.lang.String |
showLongVersion() |
protected boolean |
splitUp(java.lang.String text,
java.util.ArrayList items) |
java.lang.String |
toString() |
public static final Version VERSION
protected static final java.lang.String OPERATORS
protected static final java.util.concurrent.ConcurrentHashMap<java.lang.Class,java.util.HashMap> FUNCTION_TABLE
protected boolean compiledFlag
protected java.lang.Object[] list
protected int callCount
protected java.util.HashMap<java.lang.String,Function> functions
protected java.lang.String originalDefinition
protected java.lang.String definition
protected java.lang.String name
protected java.lang.String summary
protected java.lang.String compiledSummary
protected java.lang.Object specialHolder
public Formula(java.lang.String desc)
throws java.lang.Exception
desc - java.lang.Exception - a serious problempublic Formula(java.lang.String desc,
java.lang.String name)
throws java.lang.Exception
desc - name - java.lang.Exception - a serious problempublic Formula(java.lang.String desc,
java.lang.String name,
boolean autoCompile)
throws java.lang.Exception
desc - name - autoCompile - java.lang.Exception - a serious problempublic Formula(java.lang.String desc,
java.lang.String name,
boolean autoCompile,
java.lang.Object specialHolder)
throws java.lang.Exception
desc - name - autoCompile - specialHolder - java.lang.Exception - a serious problem@CheckReturnValue
public static java.lang.Object legacy(java.lang.String functionCode,
java.lang.Object[] arguments)
functionCode - the function code.arguments - the arguments@CheckReturnValue
public java.lang.String convertToJavaScript()
throws java.lang.Exception
java.lang.Exceptionprotected java.lang.String convertToJavaScript(java.util.HashMap<java.lang.String,java.lang.String> functionMap)
throws java.lang.Exception
java.lang.Exception@CheckReturnValue
public java.lang.Object compute(@Nonnull
Query query,
java.lang.Appendable info,
CalculationPathNode parentCalcNode)
throws java.lang.Exception
compute in interface Calculatablejava.lang.Exception - * @a serious problem.@CheckReturnValue
public java.lang.Object compute(@Nonnull
Query query)
throws java.lang.Exception
query - java.lang.Exception - a serious problem@CheckReturnValue
public java.lang.Object computeV2(@Nonnull
Query query)
throws java.lang.Exception
query - java.lang.Exception - a serious problem@CheckReturnValue
public java.lang.Object computeV1(@Nonnull
Query query)
throws java.lang.Exception
query - java.lang.Exception - a serious problem@CheckReturnValue
public double calculate(@Nonnull
Query query)
throws java.lang.Exception
query - java.lang.Exception - a serious problem@CheckReturnValue
public double calculateV1(@Nonnull
Query query)
throws java.lang.Exception
query - java.lang.Exception - a serious problem@CheckReturnValue
public double calculateV2(@Nonnull
Query query)
throws java.lang.Exception
query - java.lang.Exception - a serious problem@CheckReturnValue public double calculate(Query query, java.lang.Appendable info, CalculationPathNode parentCalcNode) throws java.lang.Exception
calculate in interface Calculatablequery - info - parentCalcNode - parent calculation mode.java.lang.Exception - a serious problem@CheckReturnValue public java.lang.Object[] getItems()
@CheckReturnValue public boolean isCompiled()
@CheckReturnValue public java.lang.String getName()
@CheckReturnValue public Formula getInternalSection(int section)
section - @CheckReturnValue public int getInternalSectionCount()
public void compile()
throws java.lang.Exception
java.lang.Exception - a serious problemprotected boolean splitUp(java.lang.String text,
java.util.ArrayList items)
throws java.lang.Exception
text - items - java.lang.Exception - a serious problemprotected void parseFormula(java.util.StringTokenizer st,
java.util.ArrayList items)
throws java.lang.Exception
st - items - java.lang.Exception - a serious problemprotected java.lang.Object getDefinedItem(java.lang.String n)
throws java.lang.Exception
n - java.lang.Exception - a serious problemprotected void registerFunctions(java.util.HashMap table)
table - @CheckReturnValue public java.lang.String getHelp()
@CheckReturnValue public java.lang.String getDetails(Query query)
query - @Nonnull @CheckReturnValue public java.lang.String toString()
toString in class java.lang.Object@CheckReturnValue public java.lang.String showCompiledVersion()
@CheckReturnValue public java.lang.String showCompiledVersionHTML()
@CheckReturnValue public java.lang.String showLongVersion()
@CheckReturnValue
public java.lang.String getSummary(int indent,
boolean shouldIndent,
int[] pos,
boolean short_fg,
boolean formatHTML)
pos - indent - shouldIndent - short_fg - formatHTML - protected double getItem(Query query, java.lang.Object o, java.lang.Appendable info, CalculationPathNode parentCalcNode) throws java.lang.Exception
parentCalcNode - The parent nodequery - the user queryo - the section objectinfo - the info buffer MAYBE NULLjava.lang.Exception - a serious problemprotected double handleOp(double amount,
double d,
java.lang.String op)
amount - d - op - protected void appendNumber(java.lang.Appendable info,
double d)
info - The buffer to be appended tod - The actual number to appendprotected abstract Formula makeFormula(java.lang.String formula) throws java.lang.Exception
formula - java.lang.Exception - a serious problemprotected double calculate(@Nonnull
Query query,
int[] pos,
java.lang.Appendable info,
CalculationPathNode parentCalcNode)
throws NullValueException,
java.lang.Exception
pos - the positionquery - The parameters for this calculationinfo - if not null return the calculation info.parentCalcNode - parent calculation mode.java.lang.Exception - a serious problemNullValueException - thrown if the result is null.protected boolean checkAndMove(int[] pos,
java.lang.Object match)
pos - match - protected java.lang.Object next(int[] pos)
pos - public void setAllowTextItem(boolean isAllow)
isAllow - public boolean isTextItemAllowed()
public java.lang.String getDefinition()
getDefinition in interface Calculatablepublic java.util.HashMap findDependents()
throws java.lang.Exception
java.lang.Exception - a serious problempublic java.util.HashMap findDependents(java.util.HashMap dependents)
throws java.lang.Exception
dependents - java.lang.Exception - a serious problemprotected abstract void addDependentItem(java.lang.Object obj,
java.util.HashMap dependents)
throws java.lang.Exception
dependents - the items.obj - Object to be added to the dependent listjava.lang.Exception - Serious ProblemstSoftware Copyright © 2001-2014 stSoftware All Rights Reserved.