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
,java.io.Serializable
public class ElementOf extends ArrayFunctionBase
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:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.singularsys.jep.functions.ArrayFunctionBase
ArrayFunctionBase.ZeroLengthErrorBehaviour
-
-
Field Summary
Fields Modifier and Type Field Description protected Comparative
comp
-
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
-
-
Constructor Summary
Constructors Constructor Description ElementOf(Comparative comp, boolean elementOf)
Construct the function.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
calc(java.lang.Object first, java.util.List<java.lang.Object> l)
Calculates if the element is in the list or not.protected java.lang.Object
calc(java.util.List<java.lang.Object> l)
Should not be called.void
run(java.util.Stack<java.lang.Object> stack)
Calls the calc method after concatenating the second and subsequent elements into list.-
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 Detail
-
comp
protected Comparative comp
-
-
Constructor Detail
-
ElementOf
public ElementOf(Comparative comp, boolean 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 Detail
-
calc
protected java.lang.Object calc(java.lang.Object first, java.util.List<java.lang.Object> l) throws EvaluationException
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 or Boolean.FALSE depending on if the element is in the list.
- Throws:
EvaluationException
-
run
public void run(java.util.Stack<java.lang.Object> stack) throws EvaluationException
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
protected java.lang.Object calc(java.util.List<java.lang.Object> l) throws EvaluationException
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
-
-