View Javadoc

1   package org.codehaus.xfire.service.binding;
2   
3   import javax.xml.namespace.QName;
4   import javax.xml.stream.XMLStreamReader;
5   import javax.xml.stream.XMLStreamWriter;
6   
7   import org.codehaus.xfire.MessageContext;
8   import org.codehaus.xfire.fault.XFireFault;
9   import org.codehaus.xfire.service.MessageHeaderInfo;
10  import org.codehaus.xfire.service.MessagePartInfo;
11  import org.codehaus.xfire.service.OperationInfo;
12  import org.codehaus.xfire.service.Service;
13  
14  /***
15   * A BindingProvider provides the ability to map XML and java objects. This can
16   * come in the form of simple POJOs or a DOM tree.  To use one must just implement
17   * the interface and provide it to the {@link ObjectServiceFactory}.
18   * 
19   * @author Dan Diephouse
20   */
21  public interface BindingProvider
22  {
23      void initialize(Service newParam);
24  
25      /***
26       * Gives a binding the chance to suggest a name for a particular parameter.
27       * @param m The method of the parameter.
28       * @param param The index of the parameter. -1 specifies the return parameter.
29       * @return The suggestion. null if there isn't a suggestion.
30       */
31      QName getSuggestedName(Service service, OperationInfo op, int param);
32      
33      Object readParameter(MessagePartInfo p, XMLStreamReader reader, MessageContext context)
34          throws XFireFault;
35  
36      void writeParameter(MessagePartInfo p,
37                          XMLStreamWriter writer,
38                          MessageContext context,
39                          Object value)
40          throws XFireFault;
41  
42      Object readHeader(MessageHeaderInfo p, MessageContext context)
43          throws XFireFault;
44  
45      void writeHeader(MessagePartInfo p, MessageContext context, Object value)
46          throws XFireFault;
47  }