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  }