operators
Class PSArc

java.lang.Object
  extended byoperators.PSArc
All Implemented Interfaces:
pstypes.PSObject, pstypes.PSOperator, pstypes.PSPathOperator

public class PSArc
extends java.lang.Object
implements pstypes.PSPathOperator

Implements PSPathOperator interface.

Methods such as getOperatorToken() are inherited from PSPathOperator interface which, in turn, are inherited from PSOperator. This concrete class is responsible for adding an arc to the contents of the Graphics Stack. The arc needs five parameters from the stack: x y r ang1 ang2. It is centered at (x,y), has radius r and extends from angle ang1 to angle ang2 counter-clockwise. The angles are calculated based on the x axis. I also draws a line from the current path to the end of the arc.

Before moving, action() has to check if there are 5 PSNumber literals on top of the Runtime Stack.


Constructor Summary
PSArc()
           
 
Method Summary
 void action(dtypes.PSStack s, dtypes.PSPath p)
          Creates a new DrawableArc and adds it to the contents of the Graphics Stack.
 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

PSArc

public PSArc()
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 "arc".

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 drawing of an arc can occur if the coordinates have been given and the current positon is not null.

Precondition : A valid instance of PSStack.
Postcondition : A reply to the question whether the operator can perfom its defined behaviour.

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

action

public void action(dtypes.PSStack s,
                   dtypes.PSPath p)
Creates a new DrawableArc and adds it to the contents of the Graphics Stack.

Precondition : A valid stack is given to method with 5 PSNumber literals on top and the current position is not null.
Postcondition : The arc will be added to the contents of the Graphics Stack from the current position to the coordinates given (y comes before x). It also updates the variable holding the current position.

Specified by:
action in interface pstypes.PSPathOperator
Parameters:
s - The Runtime Stack which holds the coordinates.
p - The Graphics Stack.