org.apache.axis2.client
Interface OperationClient


public interface OperationClient

An operation client is the way an advanced user interacts with Axis2. Actual operation clients understand a specific MEP and hence their behavior is defined by their MEP. To interact with an operation client, you first get one from a specific AxisOperation. Then you set the messages into it one by one (whatever is available). Then, when you call execute() the client will execute what it can at that point. If executing the operation client results in a new message being created, then if a message receiver is registered with the client then the message will be delivered to that client.


Method Summary
 void addMessageContext(MessageContext mc)
          Add a message context to the client for processing.
 void complete(MessageContext msgCtxt)
          To close the transport if necessary , can call this method.
 void execute(boolean block)
          Execute the MEP.
 MessageContext getMessageContext(String messageLabel)
          Return a message from the client - will return null if the requested message is not available.
 OperationContext getOperationContext()
          To get the operation context of the operation cleint
 Options getOptions()
          Return the options used by this client.
 void reset()
          Reset the operation client to a clean status after the MEP has completed.
 void setCallback(Callback callback)
          Set the callback to be executed when a message comes into the MEP and the operation client is executed.
 void setOptions(Options options)
          Sets the options that should be used for this particular client.
 

Method Detail

setOptions

public void setOptions(Options options)
Sets the options that should be used for this particular client. This resets the entire set of options to use the new options - so you'd lose any option cascading that may have been set up.

Parameters:
options - the options

getOptions

public Options getOptions()
Return the options used by this client. If you want to set a single option, then the right way is to do getOptions() and set specific options.

Returns:
the options, which will never be null.

addMessageContext

public void addMessageContext(MessageContext mc)
                       throws AxisFault
Add a message context to the client for processing. This method must not process the message - it only records it in the operation client. Processing only occurs when execute() is called.

Parameters:
mc - the message context
Throws:
AxisFault - if this is called inappropriately.

getMessageContext

public MessageContext getMessageContext(String messageLabel)
                                 throws AxisFault
Return a message from the client - will return null if the requested message is not available.

Parameters:
messageLabel - the message label of the desired message context
Returns:
the desired message context or null if its not available.
Throws:
AxisFault - if the message label is invalid

setCallback

public void setCallback(Callback callback)
Set the callback to be executed when a message comes into the MEP and the operation client is executed. This is the way the operation client provides notification that a message has been received by it. Exactly when its executed and under what conditions is a function of the specific operation client.

Parameters:
callback - the callback to be used when the client decides its time to use it

execute

public void execute(boolean block)
             throws AxisFault
Execute the MEP. What this does depends on the specific operation client. The basic idea is to have the operation client execute and do something with the messages that have been added to it so far. For example, if its an Out-In MEP, then if the Out message has been set, then executing the client asks it to send the message and get the In message, possibly using a different thread.

Parameters:
block - Indicates whether execution should block or return ASAP. What block means is of course a function of the specific operation client.
Throws:
AxisFault - if something goes wrong during the execution of the operation client.

reset

public void reset()
           throws AxisFault
Reset the operation client to a clean status after the MEP has completed. This is how you can reuse an operation client. NOTE: this does not reset the options; only the internal state so the client can be used again.

Throws:
AxisFault - if reset is called before the MEP client has completed an interaction.

complete

public void complete(MessageContext msgCtxt)
              throws AxisFault
To close the transport if necessary , can call this method. The most usage of thie method when clinet use two tarnport for sending and receiving , there we need to remove entry from waitings calls in the transport listener queue Note : DO NOT call this method if you are not using two transport send and receive

Parameters:
msgCtxt - : MessageContext# which have all the trnport information
Throws:
AxisFault - : throws AxisFault if something goes worng

getOperationContext

public OperationContext getOperationContext()
To get the operation context of the operation cleint

Returns:
OperationContext