CALC - public abstract class AbstractCalculator<CALC>
extends java.lang.Object
Calculator| Constructor and Description |
|---|
AbstractCalculator() |
| Modifier and Type | Method and Description |
|---|---|
<T extends AbstractCalculator> |
bind(java.lang.Class<T> clazz)
Bind another Calculator class functionalities to expression.
|
Num |
calculate()
Calculate prepared expression.
|
CALC |
closeBracket()
Close bracket
|
CALC |
expression(AbstractCalculator expression,
boolean withinBrackets)
Copy expression from given calculator into this expression within or without brackets
|
CALC |
expression(java.lang.String expression)
Parse and append given expression to existing expression
|
CALC |
expression(java.lang.String expression,
java.lang.Object... values)
Parse and append given expression to existing expression
String representation of expression that will be parsed with unknown variables.
|
CALC |
function(java.lang.Class<? extends Function> function,
java.lang.Object... values)
Append function with value to expression.
|
Num |
getCalculatedValue()
Return calculated value
|
char |
getDecimalSeparator()
Get decimal separator used throughout expression
|
char |
getGroupingSeparator()
Get grouping separator used throughout expression
|
java.lang.String |
getInfix()
Get infix (common arithmetic and logical expression notation) representation of given expression
|
java.lang.String |
getPostfix()
Convert defined expression to postfix String
|
Properties |
getProperties()
Get defined properties
|
Rounding |
getRoundingMode()
Get rounding mode used throughout expression
|
java.lang.Integer |
getScale()
Get scale mode used throughout expression
|
protected abstract CALC |
getThis()
Return reference of subclass
|
java.util.LinkedList<Step> |
getTracedSteps()
Get calculation steps if
isTracingSteps() is TRUE |
UseExtension |
getUsedExtensions()
List registered local scoped operations.
|
boolean |
hasStripTrailingZeros() |
boolean |
isCalculated()
Check whether the calculation is made according to a expression
|
boolean |
isTracingSteps()
Check if is tracking steps enabled or disabled.
|
CALC |
openBracket()
Open bracket
|
CALC |
operator(java.lang.Class<? extends Operator> operator)
Append operator to expression
|
protected CALC |
operator(java.lang.Class<? extends Operator> operator,
java.lang.Object value)
Append operator and number to expression
|
protected CALC |
operator(java.lang.Class<? extends Operator> operator,
java.lang.String value,
char decimalSeparator)
Append operator and parsed String value with custom decimal separator used in String representation of value
|
CALC |
setDecimalSeparator(char decimalSeparator)
Set decimal separator for entire expression
|
CALC |
setGroupingSeparator(char decimalSeparator)
Set number grouping separator for entire expression
|
CALC |
setInfix(CList infix)
Provide infix list for this calculator.
|
CALC |
setProperties(Properties properties)
Set proeprties
|
CALC |
setRoundingMode(Rounding roundingMode)
Set rounding mode for entire expression
|
CALC |
setScale(java.lang.Integer scale)
Set scale for entire expression
|
void |
setSteps(java.util.LinkedList<Step> calculationSteps) |
CALC |
setStripTrailingZeros(boolean stripTrailingZeros) |
CALC |
setTracingSteps(boolean trackSteps)
If set to TRUE it will track step of calculation.
|
java.lang.String |
toString() |
CALC |
use(java.lang.Class<? extends Extension> operationClass)
|
CALC |
val(java.lang.Object value)
Append value to expression
|
CALC |
val(java.lang.Object value,
java.lang.Class<? extends NumConverter> converter)
Append value to expression
|
CALC |
val(java.lang.String value,
char decimalSeparator)
Append String value to expression that will be parsed to
Num with defined decimal separator |
protected abstract CALC getThis()
public CALC use(java.lang.Class<? extends Extension> operationClass)
Operator or Function inside scope of this calculation, which can be used during parsing expression.
With using custom extension it's possible to override existing extension from global scope.
Because during calculation API first scan scoped (locally used) extensions and after that search in global extension from CacheExtensionoperationClass - public UseExtension getUsedExtensions()
public CALC val(java.lang.Object value)
value - public CALC val(java.lang.Object value, java.lang.Class<? extends NumConverter> converter)
value - custom type valueconverter - class for convert custom type to Numpublic CALC val(java.lang.String value, char decimalSeparator)
Num with defined decimal separatorvalue - String representation of numberdecimalSeparator - used in string representation of numberpublic final CALC operator(java.lang.Class<? extends Operator> operator)
operator - protected final CALC operator(java.lang.Class<? extends Operator> operator, java.lang.Object value)
operator - value - protected final CALC operator(java.lang.Class<? extends Operator> operator, java.lang.String value, char decimalSeparator)
operator - value - decimalSeparator - public final CALC function(java.lang.Class<? extends Function> function, java.lang.Object... values)
function - values - can accept any object that Num can work withFunction}public final CALC expression(java.lang.String expression) throws java.text.ParseException
expression - java.text.ParseExceptionpublic final CALC expression(java.lang.String expression, java.lang.Object... values) throws java.text.ParseException
Num.setName(String) then name will be matched with name of unknown variable.
Otherwise unknown variable will be matched by declared order.
expression - values - that match unknown variable by name or by orderAbstractCalculatorjava.text.ParseExceptionpublic CALC expression(AbstractCalculator expression, boolean withinBrackets)
expression - withinBrackets - public CALC openBracket()
public CALC closeBracket()
public Properties getProperties()
public CALC setProperties(Properties properties)
properties - public CALC setScale(java.lang.Integer scale)
scale - public java.lang.Integer getScale()
public CALC setRoundingMode(Rounding roundingMode)
roundingMode - public Rounding getRoundingMode()
public CALC setDecimalSeparator(char decimalSeparator)
decimalSeparator - public char getDecimalSeparator()
public CALC setGroupingSeparator(char decimalSeparator)
decimalSeparator - public char getGroupingSeparator()
public boolean hasStripTrailingZeros()
public CALC setStripTrailingZeros(boolean stripTrailingZeros)
public CALC setTracingSteps(boolean trackSteps)
getTracedSteps()trackSteps - public boolean isTracingSteps()
#setTracingSteps(boolean)}public java.util.LinkedList<Step> getTracedSteps()
isTracingSteps() is TRUE{@link}public Num calculate()
#calculate()},
#getCalculatedValue()}public <T extends AbstractCalculator> T bind(java.lang.Class<T> clazz)
clazz - public java.lang.String getPostfix()
public java.lang.String getInfix()
getPostfix()}public final CALC setInfix(CList infix)
infix - public boolean isCalculated()
getResult()}public Num getCalculatedValue()
hasResult()}public final void setSteps(java.util.LinkedList<Step> calculationSteps)
public java.lang.String toString()
toString in class java.lang.ObjectJCalc API 2014 Davor Sauer - Apache 2.0