View Javadoc

1   package org.codehaus.xfire.fault;
2   
3   import java.util.ArrayList;
4   import java.util.Iterator;
5   import java.util.List;
6   
7   import org.codehaus.xfire.MessageContext;
8   
9   /***
10   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
11   */
12  public class FaultHandlerPipeline
13      implements FaultHandler
14  {
15      private List handlers;
16      
17      public FaultHandlerPipeline()
18      {
19          handlers = new ArrayList();
20      }
21      
22      public FaultHandler getHandler(int i)
23      {
24          return (FaultHandler) handlers.get(i);
25      }
26      
27      public int size()
28      {
29          return handlers.size();
30      }
31  
32      public void handleFault(XFireFault fault, MessageContext context) 
33      {
34          for (Iterator itr = handlers.iterator(); itr.hasNext();)
35          {
36              FaultHandler h = (FaultHandler) itr.next();
37              h.handleFault(fault, context);
38          }
39      }
40      
41      public void addHandler(FaultHandler handler)
42      {
43          handlers.add(handler);
44      }
45      
46      public void remove(FaultHandler handler)
47      {
48          handlers.remove(handler);
49      }
50      
51      public Iterator iterator()
52      {
53          return handlers.iterator();
54      }
55  }