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
FieldsFields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class com.singularsys.jep.functions.ArrayFunctionBase
addToArray, checkNumberOfParameters, getZeroLengthErrorBehaviour, setZeroLengthErrorBehaviour, throwAtLeastOneExcepMethods 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.TRUEorBoolean.FALSEdepending 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:
runin interfacePostfixMathCommandI- Overrides:
runin classArrayFunctionBase- Parameters:
stack- arguments for function- Throws:
EvaluationException- if function cannot be evaluated
-
calc
Should not be called.- Specified by:
calcin 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
-