View Javadoc

1   package org.codehaus.xfire.client;
2   
3   import javax.xml.stream.XMLStreamException;
4   import javax.xml.stream.XMLStreamReader;
5   import javax.xml.stream.XMLStreamWriter;
6   
7   import org.codehaus.xfire.attachments.Attachments;
8   import org.codehaus.xfire.fault.XFireFault;
9   
10  /***
11   * <p>
12   * A ClientHandler creates the necessary requestion and response objects
13   * from the XML streams.  If this is a SOAP invocation, there will be a
14   * handler for the header and for the body.
15   * </p>
16   * 
17   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
18   * @since Oct 26, 2004
19   */
20  public interface ClientHandler
21  {
22      /***
23       * @return Whether or not there is a request to write.
24       */
25      boolean hasRequest();
26      
27      /***
28       * Write the request to the XMLStreamWriter.
29       * 
30       * @param writer
31       * @throws XMLStreamException
32       */
33      void writeRequest( XMLStreamWriter writer ) 
34          throws XMLStreamException;
35      
36      /***
37       * Handle the response.
38       * @param reader
39       * @throws XMLStreamException
40       * @throws XFireFault The ClientHandler must create an XFireFault
41       * and throw it if a fault occurs.
42       */
43      void handleResponse( XMLStreamReader reader )
44          throws XMLStreamException, XFireFault;
45      
46      /***
47       * Get the attachments to send with the request.
48       * 
49       * @return Return <code>null</code> if there are no attachments.
50       */
51      Attachments getAttachments();
52  }