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 }