com.singularsys.jep.misc.functions
Class SwitchDefault

java.lang.Object
  extended by com.singularsys.jep.functions.PostfixMathCommand
      extended by com.singularsys.jep.functions.NaryFunction
          extended by com.singularsys.jep.misc.functions.SwitchDefault
All Implemented Interfaces:
CallbackEvaluationI, CallbackEvaluationI.Runnable, PostfixMathCommandI, java.io.Serializable

public class SwitchDefault
extends NaryFunction
implements CallbackEvaluationI, CallbackEvaluationI.Runnable

A switch statement, with a default value. The argument is selected based on the integer value of the first argument, the last argument is returned if the first argument is greater than the number of arguments -2. For example switchDefault(2,5,6,7,8) will return 5, and switchDefault(9,5,6,7,8) will return 8. The first argument must be an exact integer.

Author:
Richard Morris
See Also:
Case, 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
SwitchDefault()
           
 
Method Summary
 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, checkNumberOfParameters, 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

SwitchDefault

public SwitchDefault()
Method Detail

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