edu.neu.ccs.parser
Class NumericOperation

java.lang.Object
  extended byedu.neu.ccs.parser.Operation
      extended byedu.neu.ccs.parser.NumericOperation

public class NumericOperation
extends Operation

Class used to store a numeric operation.

As of 2.5.0, this class was extracted from the class JPTParser and made standalone.

Unlike Operation, this class is concrete in order to allow some methods that may not be needed to use the default implementation that returns null.

Operations that will be used must be overridden.


Field Summary
 
Fields inherited from class edu.neu.ccs.parser.Operation
IDENTITY, OPERATION_PREFIX
 
Constructor Summary
NumericOperation(String s)
          Constructs an operation with the given symbol.
NumericOperation(String s, boolean unary, boolean binary)
          Constructs an operation with the given symbol and settings for unary and binary usage.
 
Method Summary
 Object binaryForXFloating(XDouble x, XDouble y)
          Override this method to specify the result of this operation acting as a binary operation on floating arguments.
 Object binaryForXIntegral(XBigInteger a, XBigInteger b)
          Override this method to specify the result of this operation acting as a binary operation on integral arguments.
 Object performOperation(Object left, Object right)
          Performs the operation on the given values and returns the result.
 Object unaryForXFloating(XDouble x)
          Override this method to specify the result of this operation acting as a unary operation on a floating argument.
 Object unaryForXIntegral(XBigInteger a)
          Override this method to specify the result of this operation acting as a unary operation on an integral argument.
 
Methods inherited from class edu.neu.ccs.parser.Operation
checkBinary, checkUnary, isBinary, isUnary, symbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NumericOperation

public NumericOperation(String s)
Constructs an operation with the given symbol.

Parameters:
s - the symbol() for the operation

NumericOperation

public NumericOperation(String s,
                        boolean unary,
                        boolean binary)
Constructs an operation with the given symbol and settings for unary and binary usage.

Parameters:
s - the symbol() for the operation
unary - whether the operation may be unary
binary - whether the operation may be binary
Method Detail

performOperation

public final Object performOperation(Object left,
                                     Object right)
                              throws ParseException

Performs the operation on the given values and returns the result.

Specified by:
performOperation in class Operation
Parameters:
left - the left side operand for a binary operation or null for a unary operation
right - the right side operand for a unary or binary operation
Throws:
ParseException

unaryForXIntegral

public Object unaryForXIntegral(XBigInteger a)
Override this method to specify the result of this operation acting as a unary operation on an integral argument.

Parameters:
a - the argument

binaryForXIntegral

public Object binaryForXIntegral(XBigInteger a,
                                 XBigInteger b)
Override this method to specify the result of this operation acting as a binary operation on integral arguments.

Parameters:
a - argument 1
b - argument 2

unaryForXFloating

public Object unaryForXFloating(XDouble x)
Override this method to specify the result of this operation acting as a unary operation on a floating argument.

Parameters:
x - the argument

binaryForXFloating

public Object binaryForXFloating(XDouble x,
                                 XDouble y)
Override this method to specify the result of this operation acting as a binary operation on floating arguments.

Parameters:
x - argument 1
y - argument 2