com.singularsys.jep.misc.functions
Class Case

java.lang.Object
  extended by com.singularsys.jep.functions.PostfixMathCommand
      extended by com.singularsys.jep.functions.NaryFunction
          extended by 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

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.singularsys.jep.functions.CallbackEvaluationI
CallbackEvaluationI.Runnable
 
Field Summary
 
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
 
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
 
Methods inherited from interface com.singularsys.jep.functions.CallbackEvaluationI.Runnable
run
 

Constructor Detail

Case

public Case()
Method Detail

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 node
pv - 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