View Javadoc

    1   package org.codehaus.xfire.handler;
    2
    3   import javax.xml.namespace.QName;
    4
    5   import org.codehaus.xfire.MessageContext;
    6   import org.codehaus.xfire.fault.XFireFault;
    7
    8   /***
    9    * <p>
    10   * A handler is just something that processes an XML message.
    11   * </p>
    12   * <p>
    13   * If an exception occurrs in the invoke method, the entity which
    14   * started the invocation, is responsible for turning the exception
    15   * into a fault.
    16   * </p>
    17   *
    18   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse </a>
    19   * @since Feb 18, 2004
    20   */
    21  public interface Handler
    22  {
    23      String ROLE = Handler.class.getName();
    24
    25      /***
    26       * @return null or an empty array if there are no headers.
    27       */
    28      QName[] getUnderstoodHeaders();
    29
    30      /***
    31       * The roles which this service applies to.
    32       *
    33       * @return <code>null</code> or an empty if this endpoint handles no
    34       *         roles.
    35       */
    36      String[] getRoles();
    37
    38      /***
    39       * The phase which this handler would like to be in.
    40       *
    41       * @return
    42       * @see Phase
    43       */
    44      String getPhase();
    45
    46      /***
    47       * Invoke a handler. If a fault occurs it will be handled via the
    48       * <code>handleFault</code> method.
    49       *
    50       * @param message
    51       *            The message context.
    52       */
    53      void invoke(MessageContext context)
    54          throws Exception;
    55
    56      /***
    57       * Handles faults that occur in this handler. This is not responsible for
    58       * actually writing the fault response message.
    59       *
    60       * @param context
    61       */
    62      void handleFault(XFireFault fault, MessageContext context);
    63  }