View Javadoc

1   package org.codehaus.xfire.xmlbeans;
2   
3   import org.apache.xmlbeans.XmlCursor;
4   import org.apache.xmlbeans.XmlObject;
5   import org.codehaus.xfire.fault.XFireFault;
6   import org.codehaus.xfire.soap.Soap11;
7   
8   /***
9    * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
10   * @since Nov 17, 2004
11   */
12  public class XMLBeansFault
13      extends XFireFault
14  {
15      private static final long serialVersionUID = 1L;
16      
17      private XmlObject fault;
18      
19      /***
20       * @param fault The XmlObject representing the fault.
21       */
22      public XMLBeansFault(XmlObject fault)
23      {
24          super();
25          this.fault = fault;
26          
27          XmlCursor cursor = fault.newCursor();
28          cursor.toFirstChild();
29  
30          if (cursor.getName().getNamespaceURI().equals(Soap11.getInstance().getNamespace()))
31              createSoap11Fault(cursor);
32          else
33              createSoap12Fault(cursor);
34      }
35      
36      /***
37       * Fill in the fault information from the XmlCursor.
38       * @param cursor
39       */
40      protected void createSoap11Fault(XmlCursor cursor)
41      {
42          cursor.toFirstChild();
43          
44          do
45          {
46              if ( cursor.getName().getLocalPart().equals("faultcode") )
47              {
48                  setFaultCode( cursor.getTextValue() );
49              }
50              if ( cursor.getName().getLocalPart().equals("faultstring") )
51              {
52                  setMessage( cursor.getTextValue() );
53              }
54              if ( cursor.getName().getLocalPart().equals("faultactor") )
55              {
56                  setRole( cursor.getTextValue() );
57              }
58              if ( cursor.getName().getLocalPart().equals("faultcode") )
59              {
60                  setDetail( cursor.getDomNode() );
61              }
62          }
63          while( cursor.toNextSibling() );
64      }
65  
66      
67      /***
68       * Fill in the fault information from the XmlCursor.
69       * @param cursor
70       */
71      protected void createSoap12Fault(XmlCursor cursor)
72      {
73          // TODO
74      }
75      
76      /***
77       * @return Returns the fault.
78       */
79      public XmlObject getFault()
80      {
81          return fault;
82      }
83      
84      /***
85       * @param fault The fault to set.
86       */
87      public void setFault(XmlObject fault)
88      {
89          this.fault = fault;
90      }
91  }