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  }