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 }