com.singularsys.jep.misc.functions
Class Case
java.lang.Object
com.singularsys.jep.functions.PostfixMathCommand
com.singularsys.jep.functions.NaryFunction
com.singularsys.jep.misc.functions.Case
- All Implemented Interfaces:
- CallbackEvaluationI, CallbackEvaluationI.Runnable, PostfixMathCommandI, java.io.Serializable
public class Case
- extends NaryFunction
- implements CallbackEvaluationI, CallbackEvaluationI.Runnable
A case statement.
The argument first argument is evaluated and then checked against the 2nd, 4th, 6th argument
if the two are equal then the 3rd, 5th, 7th argument is returned.
If no arguments match then the last argument is returned (if the number of args is even)
for example case("c","a",5,"b",6,"c",7,8)
will return 7.
- Author:
- Richard Morris
- See Also:
Switch
,
Serialized Form
Constructor Summary |
Case()
|
Method Summary |
boolean |
checkNumberOfParameters(int n)
Checks the number of parameters of the function. |
java.lang.Object |
eval(java.lang.Object[] vals)
Evaluate the function |
java.lang.Object |
evaluate(Node node,
Evaluator pv)
Performs some special evaluation on the node. |
Methods inherited from class com.singularsys.jep.functions.NaryFunction |
run |
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand |
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, checkStack, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Case
public Case()
checkNumberOfParameters
public boolean checkNumberOfParameters(int n)
- Description copied from class:
PostfixMathCommand
- Checks the number of parameters of the function.
Functions which set numberOfParameter=-1 should overload this method
- Specified by:
checkNumberOfParameters
in interface PostfixMathCommandI
- Overrides:
checkNumberOfParameters
in class PostfixMathCommand
- Parameters:
n
- number of parameters function will be called with.
- Returns:
- false if an illegal number of parameters is supplied, true otherwise.
eval
public java.lang.Object eval(java.lang.Object[] vals)
throws EvaluationException
- Description copied from class:
NaryFunction
- Evaluate the function
- Specified by:
eval
in class NaryFunction
- Parameters:
vals
- arguments to the function
- Returns:
- value returned by the function
- Throws:
EvaluationException
evaluate
public java.lang.Object evaluate(Node node,
Evaluator pv)
throws EvaluationException
- Description copied from interface:
CallbackEvaluationI
- Performs some special evaluation on the node.
This method has the responsibility for evaluating the children of the node
and it should generally call
pv.eval(node.jjtGetChild(i))
for each child.
The SymbolTable is not passed as an argument. This is because
it is better practice to get and set variable values by using
node.getVar().setValue() rather that through the SymbolTable with
requires a hashtable lookup.
- Specified by:
evaluate
in interface CallbackEvaluationI
- Parameters:
node
- The current nodepv
- The visitor, can be used evaluate the children
- Returns:
- the value after evaluation. This value will be passed to other
functions higher up the node tree. The value can be any type including Double or Vector<Object>
- Throws:
EvaluationException
- See Also:
Evaluator
Copyright © 2010 Singular Systems http://www.singularsys.com/jep