View Javadoc

1   package org.codehaus.xfire.client.http;
2   
3   import java.io.OutputStream;
4   
5   import javax.xml.stream.XMLStreamException;
6   import javax.xml.stream.XMLStreamReader;
7   import javax.xml.stream.XMLStreamWriter;
8   
9   import org.codehaus.xfire.client.ClientHandler;
10  
11  /***
12   * A client which invokes REST style services.
13   * 
14   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
15   * @since Oct 26, 2004
16   */
17  public class RestHttpClient 
18      extends AbstractHttpClient
19  {
20      private ClientHandler handler;
21      
22      /***
23       * Create a REST client.
24       * @param bodyHandler The handler for the XML messages.
25       * @param url The url to invoke.
26       */
27      public RestHttpClient(ClientHandler bodyHandler, String url)
28      {
29          super();
30          this.handler = bodyHandler;
31          setUrl( url );
32      }    
33      
34      protected void writeRequest(OutputStream out)
35      {
36          if ( handler.hasRequest() )
37              super.writeRequest(out);
38      }
39      
40      protected void writeRequest(XMLStreamWriter writer) 
41          throws XMLStreamException
42      {
43          writer.writeStartDocument();
44          handler.writeRequest(writer);
45          writer.writeEndDocument();
46  
47          writer.close();
48      }
49  
50      protected void readResponse(XMLStreamReader reader) 
51          throws XMLStreamException
52      {
53          handler.handleResponse(reader);
54      } 
55  }