com.sun.xml.ws.api.pipe
Class NextAction

java.lang.Object
  extended by com.sun.xml.ws.api.pipe.NextAction

public final class NextAction
extends Object

Indicates what shall happen after Tube.processRequest(Packet) or Tube.processResponse(Packet) returns.

To allow reuse of this object, this class is mutable.


Field Summary
(package private) static int ABORT_RESPONSE
           
(package private) static int INVOKE
           
(package private) static int INVOKE_AND_FORGET
           
(package private) static int INVOKE_ASYNC
           
(package private)  int kind
           
(package private)  Tube next
           
(package private)  Runnable onExitRunnable
           
(package private)  Packet packet
           
(package private) static int RETURN
           
(package private) static int SUSPEND
           
(package private) static int THROW
           
(package private) static int THROW_ABORT_RESPONSE
           
(package private)  Throwable throwable
          Really either RuntimeException or Error.
 
Constructor Summary
NextAction()
           
 
Method Summary
 void abortResponse(Packet response)
          Indicates that the next action is to abort the processResponse chain because of some non-exception condition.
 String getKindString()
          Returns kind in a human readable string, to assist debugging.
 Tube getNext()
          Returns the next tube
 Packet getPacket()
          Returns the last Packet
 Throwable getThrowable()
          Returns the Throwable generated by the last Tube
 void invoke(Tube next, Packet p)
          Indicates that the next action should be to invoke the next tube's Tube.processRequest(Packet), then later invoke the current tube's Tube.processResponse(Packet) with the response packet.
 void invokeAndForget(Tube next, Packet p)
          Indicates that the next action should be to invoke the next tube's Tube.processRequest(Packet), but the current tube doesn't want to receive the response packet to its Tube.processResponse(Packet).
 void invokeAsync(Tube next, Packet p)
          Indicates that the next action is to invoke the next tube in the tubeline async from the thread that started the tubeline.
 void returnWith(Packet response)
          Indicates that the next action is to flip the processing direction and starts response processing.
 void setNext(Tube next)
          Sets the next tube
 void suspend()
          Indicates that the fiber should be suspended.
 void suspend(Runnable onExitRunnable)
          Indicates that the fiber should be suspended.
 void suspend(Tube next)
          Indicates that the fiber should be suspended.
 void suspend(Tube next, Runnable onExitRunnable)
          Indicates that the fiber should be suspended.
 void throwException(Throwable t)
          Indicates that the next action is to flip the processing direction and starts exception processing.
 void throwExceptionAbortResponse(Throwable t)
          Indicates that the next action is to abort the processResponse chain because of an exception.
 String toString()
          Dumps the contents to assist debugging.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

kind

int kind

next

Tube next

packet

Packet packet

throwable

Throwable throwable
Really either RuntimeException or Error.


onExitRunnable

Runnable onExitRunnable

INVOKE

static final int INVOKE
See Also:
Constant Field Values

INVOKE_AND_FORGET

static final int INVOKE_AND_FORGET
See Also:
Constant Field Values

RETURN

static final int RETURN
See Also:
Constant Field Values

THROW

static final int THROW
See Also:
Constant Field Values

SUSPEND

static final int SUSPEND
See Also:
Constant Field Values

THROW_ABORT_RESPONSE

static final int THROW_ABORT_RESPONSE
See Also:
Constant Field Values

ABORT_RESPONSE

static final int ABORT_RESPONSE
See Also:
Constant Field Values

INVOKE_ASYNC

static final int INVOKE_ASYNC
See Also:
Constant Field Values
Constructor Detail

NextAction

public NextAction()
Method Detail

invoke

public void invoke(Tube next,
                   Packet p)
Indicates that the next action should be to invoke the next tube's Tube.processRequest(Packet), then later invoke the current tube's Tube.processResponse(Packet) with the response packet.


invokeAndForget

public void invokeAndForget(Tube next,
                            Packet p)
Indicates that the next action should be to invoke the next tube's Tube.processRequest(Packet), but the current tube doesn't want to receive the response packet to its Tube.processResponse(Packet).


returnWith

public void returnWith(Packet response)
Indicates that the next action is to flip the processing direction and starts response processing.


throwException

public void throwException(Throwable t)
Indicates that the next action is to flip the processing direction and starts exception processing.

Parameters:
t - Either RuntimeException or Error, but defined to take Throwable because Tube.processException(Throwable) takes Throwable.

throwExceptionAbortResponse

public void throwExceptionAbortResponse(Throwable t)
Indicates that the next action is to abort the processResponse chain because of an exception. How that exception is processed is not defined.

Parameters:
t - Either RuntimeException or Error

abortResponse

public void abortResponse(Packet response)
Indicates that the next action is to abort the processResponse chain because of some non-exception condition.

Parameters:
response - The response that is being aborted

invokeAsync

public void invokeAsync(Tube next,
                        Packet p)
Indicates that the next action is to invoke the next tube in the tubeline async from the thread that started the tubeline. Only fibers that were started using startSync should use this next action kind.

Parameters:
next - The next tube in the tubeline
p - The request to pass to the next tube

suspend

public void suspend()
Indicates that the fiber should be suspended. Once resumed, return the response processing.


suspend

public void suspend(Runnable onExitRunnable)
Indicates that the fiber should be suspended. Once the current Thread exits the fiber's control loop, the onExitRunnable will be invoked. This Runnable may call Fiber.resume(Packet); however it is still guaranteed that the current Thread will return control, therefore, further processing will be handled on a Thread from the Executor. For synchronous cases, the Thread invoking this fiber cannot return until fiber processing is complete; therefore, the guarantee is only that the onExitRunnable will be invoked prior to completing the suspension.

Since:
2.2.7

suspend

public void suspend(Tube next)
Indicates that the fiber should be suspended. Once resumed, resume with the Tube.processRequest(Packet) on the given next tube.


suspend

public void suspend(Tube next,
                    Runnable onExitRunnable)
Indicates that the fiber should be suspended. Once the current Thread exits the fiber's control loop, the onExitRunnable will be invoked. This Runnable may call Fiber.resume(Packet); however it is still guaranteed that the current fiber will return control, therefore, further processing will be handled on a Thread from the Executor. For synchronous cases, the Thread invoking this fiber cannot return until fiber processing is complete; therefore, the guarantee is only that the onExitRunnable will be invoked prior to completing the suspension.

Once resumed, resume with the Tube.processRequest(Packet) on the given next tube.

Since:
2.2.7

getNext

public Tube getNext()
Returns the next tube

Returns:
Next tube

setNext

public void setNext(Tube next)
Sets the next tube

Parameters:
next - Next tube

getPacket

public Packet getPacket()
Returns the last Packet

Returns:
Packet

getThrowable

public Throwable getThrowable()
Returns the Throwable generated by the last Tube

Returns:
the Throwable

toString

public String toString()
Dumps the contents to assist debugging.

Overrides:
toString in class Object

getKindString

public String getKindString()
Returns kind in a human readable string, to assist debugging.



Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.