jaliya      2005/02/15 20:49:30

  Added:       sandesha/src/org/apache/sandesha/ws/rm FaultCode.java
                        SequenceFault.java
  Log:
  Two classes to handle the WSRM Faults
  
  Revision  Changes    Path
  1.1                  
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/FaultCode.java
  
  Index: FaultCode.java
  ===================================================================
  package org.apache.sandesha.ws.rm;
  
  import org.apache.axis.message.MessageElement;
  import org.apache.sandesha.Constants;
  
  import javax.xml.soap.SOAPException;
  
  /**
   * Created by IntelliJ IDEA.
   * User: Jaliya
   * Date: Feb 15, 2005
   * Time: 4:51:44 PM
   * To change this template use File | Settings | File Templates.
   */
  public class FaultCode extends MessageElement implements IRmElement {
  
      /**
       * Field lastMsgElement
       */
      private MessageElement faultCode;
  
      /**
       * Constructor LastMessage
       */
      public FaultCode() {
          faultCode = new MessageElement();
          faultCode.setName("wsrm:FaultCode");
      }
  
      /*
       * (non-Javadoc)
       *
       * @see org.apache.sandesha.ws.rm.IRmElement#getSoapElement()
       */
  
      /**
       * Method getSoapElement
       *
       * @return MessageElement
       */
      public MessageElement getSoapElement() {
          return faultCode;
      }
  
      /**
       * Method fromSOAPEnvelope
       *
       * @param element
       * @return LastMessage
       */
      public FaultCode fromSOAPEnvelope(MessageElement element) {
          return this;
      }
  
      /**
       * Method toSOAPEnvelope
       *
       * @param msgElement
       * @return MessageElement
       * @throws SOAPException
       */
      public MessageElement toSOAPEnvelope(MessageElement msgElement)
              throws SOAPException {
          msgElement.addChildElement("FaultCode", Constants.NS_PREFIX_RM);
          return msgElement;
      }
  
      /*
       * (non-Javadoc)
       *
       * @see 
org.apache.sandesha.ws.rm.IRmElement#addChildElement(org.apache.axis.message.MessageElement)
       */
  
      /**
       * Method addChildElement
       *
       * @param element
       */
      public void addChildElement(MessageElement element) {
  
          // no child elements in LastMessage element
      }
  
  
      public MessageElement getFaultCode() {
          return faultCode;
      }
  
      public void setFaultCode(MessageElement faultCode) {
          this.faultCode = faultCode;
      }
  }
  
  
  
  1.1                  
ws-fx/sandesha/src/org/apache/sandesha/ws/rm/SequenceFault.java
  
  Index: SequenceFault.java
  ===================================================================
  package org.apache.sandesha.ws.rm;
  
  import org.apache.axis.message.MessageElement;
  import org.apache.axis.message.SOAPEnvelope;
  import org.apache.axis.message.SOAPHeaderElement;
  import org.apache.sandesha.Constants;
  
  import javax.xml.soap.Name;
  import javax.xml.soap.SOAPException;
  import java.util.Iterator;
  
  public class SequenceFault extends MessageElement implements IRmElement {
  
  
      private MessageElement sequenceFault;
  
      private FaultCode faultCode;
  
      public SequenceFault() {
          sequenceFault = new MessageElement();
          sequenceFault.setName("wsrm:SequenceFault");
      }
  
  
      public MessageElement getSoapElement() throws SOAPException {
  
  
          sequenceFault.addChildElement(faultCode.getSoapElement());
  
          return sequenceFault;
      }
  
  
      public SOAPEnvelope toSoapEnvelop(SOAPEnvelope envelope) throws Exception 
{
  
          SOAPEnvelope env = envelope;
  
          if (env.getHeader() == null) {
              env.addHeader();
          }
  
          Name name = env.createName("", Constants.NS_PREFIX_RM,
                  Constants.NS_URI_RM);
          SOAPHeaderElement headerElement = (SOAPHeaderElement) env.getHeader()
                  .addHeaderElement(name);
  
          headerElement.setActor(null);
          headerElement.setName("SequenceFault");
          headerElement.setMustUnderstand(true);
  
          if (faultCode != null) {
              faultCode.toSOAPEnvelope(headerElement);
          }
  
          return env;
      }
  
  
      public SequenceFault fromSOAPEnveploe(SOAPHeaderElement headerElement) {
          Iterator iterator = headerElement.getChildElements();
          MessageElement childElement;
  
          while (iterator.hasNext()) {
              childElement = (MessageElement) iterator.next();
  
              if (childElement.getName().equals("wsrm:FaultCode")) {
                  faultCode = new FaultCode();
                  faultCode.fromSOAPEnvelope(childElement);
              }
  
  
          }
  
          return this;
      }
  
      /*
       * (non-Javadoc)
       *
       * @see 
org.apache.sandesha.ws.rm.IRmElement#addChildElement(org.apache.axis.message.MessageElement)
       */
  
      /**
       * Method addChildElement
       *
       * @param element
       * @throws SOAPException
       */
      public void addChildElement(MessageElement element) throws SOAPException {
          sequenceFault.addChildElement(element);
      }
  
      public MessageElement getSequenceFault() {
          return sequenceFault;
      }
  
      public void setSequenceFault(MessageElement sequenceFault) {
          this.sequenceFault = sequenceFault;
      }
  }
  
  
  

Reply via email to