Class ElementOf
java.lang.Object
com.singularsys.jep.functions.PostfixMathCommand
com.singularsys.jep.functions.ArrayFunctionBase
com.singularsys.jep.misc.functions.ElementOf
- All Implemented Interfaces:
ZeroLengthBehaviourI,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 interface com.singularsys.jep.functions.ZeroLengthBehaviourI
ZeroLengthBehaviourI.DefaultZeroLengthBehaviourI, ZeroLengthBehaviourI.ZeroLengthErrorBehaviour, ZeroLengthBehaviourI.ZeroLengthHelper -
Field Summary
FieldsFields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, description, name, NaN, numberOfParameters -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class com.singularsys.jep.functions.ArrayFunctionBase
addToArray, checkNumberOfParameters, getZeroLengthErrorBehaviour, getZeroLengthValue, setZeroLengthErrorBehaviour, setZeroLengthValue, throwAtLeastOneExcepMethods inherited from class com.singularsys.jep.functions.PostfixMathCommand
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, asType, getDescription, getDescription, getDescriptionWithType, getName, getNumberOfParameters, setCurNumberOfParameters, setDescription, setName, toString, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.singularsys.jep.functions.ZeroLengthBehaviourI
getErrorMessage, getValueOrException, zeroLengthResultOrException
-
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
-