1 package org.codehaus.xfire.service; 2 3 import java.util.Iterator; 4 5 /*** 6 * Represents the description of a service operation fault. 7 * <p/> 8 * Faults are created using the {@link OperationInfo#addFault(String)} method. 9 * 10 * @author <a href="mailto:poutsma@mac.com">Arjen Poutsma</a> 11 */ 12 public class FaultInfo 13 extends MessagePartContainer 14 implements Visitable 15 { 16 private String name; 17 18 /*** 19 * Initializes a new instance of the <code>FaultInfo</code> class with the given name and operation 20 * 21 * @param name the name. 22 */ 23 FaultInfo(String name, OperationInfo operation) 24 { 25 super(operation); 26 this.name = name; 27 } 28 29 /*** 30 * Returns the name of the fault. 31 * 32 * @return the name. 33 */ 34 public String getName() 35 { 36 return name; 37 } 38 39 /*** 40 * Sets the name of the fault. 41 * 42 * @param name the name. 43 */ 44 public void setName(String name) 45 { 46 if ((name == null) || (name.length() == 0)) 47 { 48 throw new IllegalArgumentException("Invalid name [" + name + "]"); 49 } 50 getOperation().removeFault(getName()); 51 this.name = name; 52 getOperation().addFault(this); 53 } 54 55 /*** 56 * Acceps the given visitor. Iterates over all message part infos. 57 * 58 * @param visitor the visitor. 59 */ 60 public void accept(Visitor visitor) 61 { 62 visitor.startFault(this); 63 for (Iterator iterator = getMessageParts().iterator(); iterator.hasNext();) 64 { 65 MessagePartInfo messagePartInfo = (MessagePartInfo) iterator.next(); 66 messagePartInfo.accept(visitor); 67 } 68 visitor.endFault(this); 69 } 70 }