Package com.singularsys.jep.standard
Class StandardOperatorTable2
- java.lang.Object
-
- com.singularsys.jep.EmptyOperatorTable
-
- com.singularsys.jep.OperatorTable2
-
- com.singularsys.jep.standard.StandardOperatorTable2
-
- All Implemented Interfaces:
JepComponent
,OperatorTableI
,java.io.Serializable
- Direct Known Subclasses:
BigDecOperatorTable
,BitwiseOperatorTable
,ExtendedOperatorSet
,FieldOperatorTable
,XOperatorTable
public class StandardOperatorTable2 extends OperatorTable2
Provides the standard implementations of operators used by Jep. The logic is specified by the superclassOperatorTable2
.- Author:
- Richard Morris
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.singularsys.jep.OperatorTable2
OperatorTable2.BasicOperators, OperatorTable2.PsudoOperators, OperatorTable2.SpecialOperators
-
Nested classes/interfaces inherited from class com.singularsys.jep.EmptyOperatorTable
EmptyOperatorTable.OperatorKey
-
-
Constructor Summary
Constructors Modifier Constructor Description StandardOperatorTable2()
Create the standard set of operators.StandardOperatorTable2(OperatorTable2 oldTable)
Decorator constructor.protected
StandardOperatorTable2(java.util.Map<EmptyOperatorTable.OperatorKey,Operator> oldTable)
Constructor with pre-specified table of operators
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
setBasicPfmcs()
Sets the standard set of pfmc's for basic operators.protected void
setPsudoPfmcs()
protected void
setSpecialPfmcs()
Sets the standard set of pfmc's for special operators assignment, dot product, cross product, list operator and the element of operator.OperatorTableI
shallowCopy()
Create a new version of this OperatorTable.-
Methods inherited from class com.singularsys.jep.OperatorTable2
getAdd, getAnd, getAssign, getCross, getDivide, getDot, getEle, getEQ, getGE, getGT, getLE, getList, getLT, getMod, getMultiply, getNE, getNop, getNot, getOr, getPower, getRange, getSubtract, getUDivide, getUMinus, getUPlus
-
Methods inherited from class com.singularsys.jep.EmptyOperatorTable
addOperator, addOperator, addOperator, appendOperator, appendOperator, entrySet, getKey, getLightWeightInstance, getNumOps, getOperator, getOperatorMap, getOperators, getOperatorsByName, getOperatorsBySymbol, init, insertOperator, insertOperator, keySet, removeOperator, removeOperator, replaceOperator, replaceOperator, setBinaryInverseOp, setDistributiveOver, setGroupOperatorRelations, setGroupOperatorRelations, setInverseOp, setPrecedenceTable, setRootOp, setStandardOperatorRelations, threadSafeMapCopy, toString
-
-
-
-
Constructor Detail
-
StandardOperatorTable2
public StandardOperatorTable2()
Create the standard set of operators. CallssetBasicPfmcs()
,setSpecialPfmcs()
,setPsudoPfmcs()
.
-
StandardOperatorTable2
public StandardOperatorTable2(OperatorTable2 oldTable)
Decorator constructor. Shares the same set of operators as the argument and callssetBasicPfmcs()
,setSpecialPfmcs()
,setPsudoPfmcs()
to assign new PFMC's to the operators.- Parameters:
oldTable
- base table
-
StandardOperatorTable2
protected StandardOperatorTable2(java.util.Map<EmptyOperatorTable.OperatorKey,Operator> oldTable)
Constructor with pre-specified table of operators- Parameters:
oldTable
-
-
-
Method Detail
-
setBasicPfmcs
protected void setBasicPfmcs()
Sets the standard set of pfmc's for basic operators. This method is called by the constructor and subclasses can override this method to change or prevent building of these pfmcs.- See Also:
OperatorTable2.BasicOperators
-
setSpecialPfmcs
protected void setSpecialPfmcs()
Sets the standard set of pfmc's for special operators assignment, dot product, cross product, list operator and the element of operator. This method is called by the constructor and subclasses can override this method to change or prevent building of these pfmcs.- See Also:
OperatorTable2.SpecialOperators
-
setPsudoPfmcs
protected void setPsudoPfmcs()
-
shallowCopy
public OperatorTableI shallowCopy()
Description copied from class:EmptyOperatorTable
Create a new version of this OperatorTable. Operators are copied into new table. However Operators whose pfmc implement JepComponent are duplicated. This means the table could be used in a separate thread without problem. Subclasses should override with method to return a table of the correct type, a typical implementation would be@Override public OperatorTableI shallowCopy() { Map<OperatorKey, Operator> map = this.threadSafeMapCopy(); return new MyOperatorTable(map); }
using theEmptyOperatorTable.threadSafeMapCopy()
method to return a copy of the map of operators and a constructor taking this map which uses theEmptyOperatorTable(Map)
constructor.- Specified by:
shallowCopy
in interfaceOperatorTableI
- Overrides:
shallowCopy
in classOperatorTable2
- Returns:
- a new Table
-
-