operators
Class PSMul

java.lang.Object
  extended byoperators.PSMul
All Implemented Interfaces:
pstypes.PSArithmeticOperator, pstypes.PSObject, pstypes.PSOperator

public class PSMul
extends java.lang.Object
implements pstypes.PSArithmeticOperator

Implements PSArithmeticOperator interface.

Methods such as getOperatorToken() are inherited by PSArithmenticOperator interface which in turn, are inherited by PSOperator.This concrete class is responsible for the addittion of two numbers found on the top of the stack.

Before the multiplication,action() checks : First,there have to be at least two elements inside the stack. Second, both operands must be numbers,ie both types are PSNumber.Last,the multiplication is performed.


Constructor Summary
PSMul()
           
 
Method Summary
 void action(dtypes.PSStack s)
          Performs multiplication on two operands.
 java.lang.String getOperatorToken()
          Returns the token identifying this operator.
 boolean isValid(dtypes.PSStack s)
          Checks if it valid to use this operator now.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PSMul

public PSMul()
Method Detail

getOperatorToken

public java.lang.String getOperatorToken()
Returns the token identifying this operator.

Returns the name of the operand that this concrete class simulates,here "mul".

Precondition : A valid operator class has been created.
Postcondition : A string is returned,labeling the semantics of this class.

Specified by:
getOperatorToken in interface pstypes.PSOperator
Returns:
The token identifying this operator.

isValid

public boolean isValid(dtypes.PSStack s)
                throws exceptions.PSSyntaxException
Checks if it valid to use this operator now.

The multiplication can occur only if the stack contains two objects,both being of type PSNumber.

Precondition : A valid instance of PSStack is given.
Postcondition : A reply to the question whether the multiplication can occur.

Specified by:
isValid in interface pstypes.PSOperator
Parameters:
s - A reference to a PSStack instance.
Returns:
True if the operation can be performed,false otherwise.
Throws:
exceptions.PSSyntaxException - The syntax of the token is wrong.

action

public void action(dtypes.PSStack s)
Performs multiplication on two operands.

Perfoms the multiplication upon the top two elements of the stack .

Precondition : A valid stack is given to method with at least two PSNumber operands.
Postcondition : Multiplication will be performed and the result will be stored back to the stack.

Specified by:
action in interface pstypes.PSArithmeticOperator
Parameters:
s - The Run-time Stack where the operands (here literals) are retrieved and stored.