Class ElementOf
java.lang.Object
com.singularsys.jep.functions.PostfixMathCommand
com.singularsys.jep.functions.ArrayFunctionBase
com.singularsys.jep.misc.functions.ElementOf
- All Implemented Interfaces:
PostfixMathCommandI
,Serializable
Tests if the first argument is in a set of values given in subsequent arguments.
For example IN(var,"north","south","east","west").
An array can be used for a two argument version
IN(var,["north","south","east","west"]).
The function can be configured to return the negation, i.e. not element of.
The function could be used as an operator:
public enum InOperators implements EmptyOperatorTable.OperatorKey { IN,NOTIN } Jep jep = new Jep(new StandardConfigurableParser()); OperatorTableI opTab = jep.getOperatorTable(); Operator eqOp = opTab.getEQ(); Operator inOp = new Operator( "IN", new ElementOf((Comparative) eqOp.getPFMC(),true), Operator.BINARY+Operator.RIGHT); Operator notInOp = new Operator( "NOTIN", new ElementOf((Comparative) eqOp.getPFMC(),false), Operator.BINARY+Operator.RIGHT); opTab.addOperator(InOperators.IN,inOp,eqOp); opTab.addOperator(InOperators.NOTIN,notInOp,eqOp); jep.reinitializeComponents();
- Since:
- 3.5.0
- Author:
- Richard Morris
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.singularsys.jep.functions.ArrayFunctionBase
ArrayFunctionBase.ZeroLengthErrorBehaviour
-
Field Summary
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
-
Constructor Summary
-
Method Summary
Methods inherited from class com.singularsys.jep.functions.ArrayFunctionBase
addToArray, checkNumberOfParameters, getZeroLengthErrorBehaviour, setZeroLengthErrorBehaviour, throwAtLeastOneExcep
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString, toString
-
Field Details
-
comp
-
-
Constructor Details
-
ElementOf
Construct the function.- Parameters:
comp
- comparative object used to compare two elementselementOf
- whether the function calculate "element-of" or "not element-of". If false the result of function is negated.
-
-
Method Details
-
calc
Calculates if the element is in the list or not.- Parameters:
first
- element to testl
- list with all the other arguments in the list- Returns:
Boolean.TRUE
orBoolean.FALSE
depending on if the element is in the list.- Throws:
EvaluationException
-
run
Calls the calc method after concatenating the second and subsequent elements into list.- Specified by:
run
in interfacePostfixMathCommandI
- Overrides:
run
in classArrayFunctionBase
- Parameters:
stack
- arguments for function- Throws:
EvaluationException
- if function cannot be evaluated
-
calc
Should not be called.- Specified by:
calc
in classArrayFunctionBase
- Parameters:
l
- The list to operate on. Note this is in reverse order of the arguments of the function.- Returns:
- The result of the calculation.
- Throws:
EvaluationException
- always
-