org.nfunk.jep.function
Class If

java.lang.Object
  extended by org.nfunk.jep.function.PostfixMathCommand
      extended by org.nfunk.jep.function.If
All Implemented Interfaces:
CallbackEvaluationI, PostfixMathCommandI

public class If
extends PostfixMathCommand
implements CallbackEvaluationI

The if(condExpr,posExpr,negExpr) function. The value of trueExpr will be returned if condExpr is >0 or Boolean.TRUE and value of negExpr will be returned if condExpr is <= 0 or Boolean.TRUE.

This function performs lazy evaluation so that only posExpr or negExpr will be evaluated. For Complex numbers only the real part is used.

An alternate form if(condExpr,posExpr,negExpr,zeroExpr) is also available. Note most computations are carried out over floating point doubles so testing for zero can be dangerous.

This function implements the SpecialEvaluationI interface so that it handles setting the value of a variable.

Since:
Feb 05 Handles Number arguments, so works with Integers rather than just Doubles
Version:
2.3.0 beta 1 now supports a Boolean first argument.
Author:
Rich Morris Created on 18-Nov-2003

Field Summary
 
Fields inherited from class org.nfunk.jep.function.PostfixMathCommand
curNumberOfParameters, numberOfParameters
 
Constructor Summary
If()
           
 
Method Summary
 boolean checkNumberOfParameters(int n)
          Checks the number of parameters of the call.
 java.lang.Object evaluate(Node node, EvaluatorI pv)
          Performs some special evaluation on the node.
 
Methods inherited from class org.nfunk.jep.function.PostfixMathCommand
checkStack, getNumberOfParameters, run, setCurNumberOfParameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

If

public If()
Method Detail

checkNumberOfParameters

public boolean checkNumberOfParameters(int n)
Checks the number of parameters of the call.

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.

evaluate

public java.lang.Object evaluate(Node node,
                                 EvaluatorI pv)
                          throws ParseException
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
Throws:
ParseException


http://www.singularsys.com/jep Copyright © 2007 Singular Systems