You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2005/09/05 11:56:00 UTC

svn commit: r278707 [2/2] - in /webservices/sandesha/trunk/src/org/apache/sandesha2: ./ handlers/ msgprocessors/ msgreceivers/ storage/ util/ wsrm/

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/MessageNumber.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/MessageNumber.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/MessageNumber.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/MessageNumber.java Mon Sep  5 02:54:38 2005
@@ -18,6 +18,8 @@
 
 import java.util.Iterator;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
@@ -26,20 +28,24 @@
 import org.apache.axis2.soap.SOAPEnvelope;
 
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class MessageNumber implements IOMRMElement {
 	
 	private long messageNumber;
 	private OMElement messageNoElement;
 	
 	OMNamespace msgNoNamespace =
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);	
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public MessageNumber(){
-		messageNoElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.MSG_NUMBER,msgNoNamespace);
+		messageNoElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(Constants.WSRM.MSG_NUMBER,msgNoNamespace);
 	}
 	
 	public long getMessageNumber(){
@@ -48,47 +54,37 @@
 	public void setMessageNumber(long messageNumber){
 		this.messageNumber = messageNumber;
 	}
-	private boolean readMNElement(OMElement element) {
-		Iterator iterator = element.getChildren();
-		while (iterator.hasNext()) {
-			OMNode omnode = (OMNode)iterator.next();
-			if(omnode.getType() != OMNode.ELEMENT_NODE){
-				continue ;
-			}				
-			OMElement childElement = (OMElement)omnode ;
-			if (childElement.getLocalName().equals(Constants.WSRM.MSG_NUMBER)) {
-				messageNumber = Long.parseLong(childElement.getText());
-				return true;
-			}else {
-			   readMNElement(childElement);	
-			}
-		}
-		return false;
-	}
 	
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
-		readMNElement(envelope);
+	public Object fromOMElement(OMElement seqenceElement) throws OMException {
+		OMElement msgNumberPart = seqenceElement.getFirstChildWithName( 
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.MSG_NUMBER));
+		if (msgNumberPart==null)
+			throw new OMException ("The passed sequnce element does not contain a message number part");
+		
+		messageNoElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(Constants.WSRM.MSG_NUMBER,msgNoNamespace);
+
+		String msgNoStr = msgNumberPart.getText();
+		messageNumber = Long.parseLong(msgNoStr);
 		return this;
 	}
-	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
-		//soapheaderblock element will be given. 
-		long msgNo = getMessageNumber();
-		if (msgNo <= 0 ){
+	
+	public OMElement toOMElement(OMElement element) throws OMException {
+		if (messageNumber <= 0 ){
 			throw new OMException("Set A Valid Message Number");
 		}
-		messageNoElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
-				new Long(msgNo).toString()));
-		messageElement.addChild(messageNoElement);
 		
-		return messageElement;
-	}
-	public OMElement getSOAPElement() throws OMException {
-		long msgNo = getMessageNumber();
-		messageNoElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(new 
-					Long(msgNo).toString()));
+		messageNoElement.setText(Long.toString(messageNumber));
+		element.addChild(messageNoElement);
+		
+		messageNoElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(Constants.WSRM.MSG_NUMBER,msgNoNamespace);
 		
+		return element;
+	}
+	
+	public OMElement getOMElement() throws OMException {
 		return messageNoElement;
 	}
+	
 	public OMElement getMessageNumberElement(){
 		return messageNoElement;
 	}

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Nack.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Nack.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Nack.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Nack.java Mon Sep  5 02:54:38 2005
@@ -18,6 +18,8 @@
 
 import java.util.Iterator;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
@@ -25,62 +27,75 @@
 import org.apache.axis2.om.OMNode;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class Nack implements IOMRMElement {
 	private OMElement nackElement;
-	private long notAckNumber;
-	OMNamespace nackNamespace =
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	private long nackNumber;
+	
+	OMNamespace rmNamespace =
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public Nack(){
-		nackElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
-				Constants.WSRM.NACK,nackNamespace);
+		nackElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.NACK,rmNamespace);
 	}
-	public OMElement getSOAPElement() throws OMException {
-		nackElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
-				new Long(notAckNumber).toString()));
+	
+	public OMElement getOMElement() throws OMException {
 		return nackElement;
 	}
-	private boolean readNackElement(OMElement element){
-		Iterator iterator = element.getChildren();
-		while(iterator.hasNext()){
-			OMNode omNode = (OMNode)iterator.next();
-			if(omNode.getType() != OMNode.ELEMENT_NODE){
-				continue;
-			}
-			OMElement childElement = (OMElement)omNode;
-			if(childElement.getLocalName().equals(Constants.WSRM.NACK)){
-				notAckNumber = Long.parseLong(childElement.getText());
-				return true;
-			}else{
-				readNackElement(childElement);
-			}
+	
+
+	public Object fromOMElement(OMElement nackElement) throws OMException{
+		/*OMElement nackPart = sequenceAckElement.getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.NACK));*/
+		
+		if (nackElement==null)
+			throw new OMException ("Passed seq ack element does not contain a nack part");
+		
+		try {
+			nackNumber = Long.parseLong(nackElement.getText());
+		}catch (Exception ex ) {
+			throw new OMException ("Nack element does not contain a valid long value");
 		}
-		return false;	
-	}
-	//duplicate method for the purpose of using comming iteration easily
-	public Object fromSOAPEnvelope(OMElement element) throws OMException{
-		notAckNumber = Long.parseLong(element.getText());
+		
+		nackElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.NACK,rmNamespace);
+		
 		return this;
 	} 
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
-		readNackElement(envelope);
-		return this;
-	}
-	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
-		nackElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
-				new Long(notAckNumber).toString()));
-		messageElement.addChild(nackElement);
-		return messageElement;
-	}
-	public void setNackNumber(long notAckNumber){
-		this.notAckNumber = notAckNumber;
+	
+	public OMElement toOMElement(OMElement sequenceAckElement) throws OMException {
+		if (sequenceAckElement==null)
+			throw new OMException ("Cant set the nack part since the seq ack element is null");
+		
+		if (nackNumber<=0)
+			throw new OMException ("Cant set the nack part since the nack number does not have a valid value");
+		
+		if (nackElement==null) 
+		    throw new OMException ("Cant set the nack part since the element is null");
+		
+		nackElement.setText(Long.toString(nackNumber));
+		sequenceAckElement.addChild(nackElement);
+
+		nackElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.NACK,rmNamespace);
+		
+		return sequenceAckElement;
 	}
-	public long getNackNumber(){
-		return notAckNumber;
+
+	public long getNackNumber() {
+		return nackNumber;
 	}
 
+	public void setNackNumber(long nackNumber) {
+		this.nackNumber = nackNumber;
+	}
+	
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/RMElements.java Mon Sep  5 02:54:38 2005
@@ -18,6 +18,7 @@
 
 import java.util.Iterator;
 
+import javax.xml.namespace.QName;
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamWriter;
 
@@ -30,101 +31,131 @@
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class RMElements{
-	private Sequence sequenceElement;
-	private SequenceAcknowledgement sequenceAcknowledgementElement;
 	
-	private CreateSequence createSequenceElement;
-	private CreateSequenceResponse createSequenceResponseElement;
-	private TerminateSequence terminateSequenceElement;
-
-	public OMElement getSOAPElement() throws OMException {
-		//this mehod has no significant in the code
-		return null;
-	}
+	private Sequence sequence = null;
+	private SequenceAcknowledgement sequenceAcknowledgement = null;
+	private CreateSequence createSequence = null;
+	private CreateSequenceResponse createSequenceResponse = null;
+	private TerminateSequence terminateSequence = null;
+	private AckRequested ackRequested = null;
 	
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
-		SOAPHeader soapHeader = envelope.getHeader();
-		Iterator iterator = soapHeader.examineAllHeaderBlocks();
-		while (iterator.hasNext()){
-			SOAPHeaderBlock childBlock = (SOAPHeaderBlock)iterator.next();
-			if (childBlock.getLocalName().equals(Constants.WSRM.SEQUENCE)){
-				sequenceElement = new Sequence();
-				childBlock.setMustUnderstand(false);
-				childBlock.setComplete(true);
-				sequenceElement.fromSOAPEnvelope(envelope);
-				
-			}
-			if (childBlock.getLocalName().equals(Constants.WSRM.SEQUENCE_ACK)){
-				sequenceAcknowledgementElement = new SequenceAcknowledgement();
-				childBlock.setMustUnderstand(false);
-				childBlock.setComplete(true);
-				sequenceAcknowledgementElement.fromSOAPEnvelope(envelope);
-			}
+	public void fromSOAPEnvelope(SOAPEnvelope envelope) {
+		
+		if (envelope==null)
+			throw new OMException ("The passed envelope is null");
+		
+		OMElement sequenceElement = envelope.getHeader().getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.SEQUENCE));
+		if (sequenceElement!=null) {
+			sequence = new Sequence ();
+			sequence.fromOMElement(envelope.getHeader());
 		}
-		createSequenceElement = new CreateSequence();
-		createSequenceResponseElement = new CreateSequenceResponse();
-		terminateSequenceElement = new TerminateSequence();
 		
-		createSequenceElement.fromSOAPEnvelope(envelope);
-		createSequenceResponseElement.fromSOAPEnvelope(envelope);
-		terminateSequenceElement.fromSOAPEnvelope(envelope);
-
-		return this;
-	}
-
-	public SOAPEnvelope toSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
+		OMElement sequenceAckElement = envelope.getHeader().getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.SEQUENCE_ACK));
+		if (sequenceAckElement!=null) {
+			sequenceAcknowledgement  = new SequenceAcknowledgement ();
+			sequence.fromOMElement(envelope.getHeader());
+		}
+		
+		OMElement createSeqElement = envelope.getBody().getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.CREATE_SEQUENCE));
+		if (createSeqElement!=null) {
+			createSequence  = new CreateSequence ();
+			createSequence.fromOMElement(envelope.getBody());
+		}
 		
+		OMElement createSeqResElement = envelope.getBody().getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.CREATE_SEQUENCE_RESPONSE));
+		if (createSeqResElement!=null) {
+			createSequenceResponse  = new CreateSequenceResponse ();
+			createSequenceResponse.fromOMElement(envelope.getBody());
+		}
+		
+		OMElement terminateSeqElement = envelope.getBody().getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.TERMINATE_SEQUENCE));
+		if (terminateSeqElement!=null) {
+			terminateSequence = new TerminateSequence ();
+			terminateSequence.fromOMElement(envelope.getBody());
+		}
 		
-		if(sequenceElement != null){
-			sequenceElement.toSOAPEnvelope(envelope);
+		OMElement ackRequestedElement = envelope.getHeader().getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.ACK_REQUESTED));
+		if (ackRequestedElement!=null) {
+			ackRequested = new AckRequested ();
+			ackRequested.fromOMElement(envelope.getHeader());
+		}	
+	}
+
+	public SOAPEnvelope toSOAPEnvelope(SOAPEnvelope envelope)  {
+		if(sequence != null){
+			sequence.toOMElement(envelope.getHeader());
 		}
-		if ( sequenceAcknowledgementElement != null) {
-			sequenceAcknowledgementElement.toSOAPEnvelope(envelope);
+		if ( sequenceAcknowledgement != null) {
+			sequenceAcknowledgement.toOMElement(envelope.getHeader());
 		}
-		if ( createSequenceElement != null){
-			createSequenceElement.toSOAPEnvelope(envelope);
+		if ( createSequence != null){
+			createSequence.toOMElement(envelope.getBody());
 		}
-		if (createSequenceResponseElement != null){
-			createSequenceResponseElement.toSOAPEnvelope(envelope);
+		if (createSequenceResponse != null){
+			createSequenceResponse.toOMElement(envelope.getBody());
 		}
-		if (terminateSequenceElement != null){
-			terminateSequenceElement.toSOAPEnvelope(envelope);
+		if (terminateSequence != null){
+			terminateSequence.toOMElement(envelope.getBody());
+		}
+		if (ackRequested != null){
+			ackRequested.toOMElement(envelope.getBody());
 		}
 		return envelope;
 	}
+	
 	public CreateSequence getCreateSequence(){
-		return createSequenceElement;
+		return createSequence;
 	}
 	public CreateSequenceResponse getCreateSequenceResponse(){
-		return createSequenceResponseElement;
+		return createSequenceResponse;
 	}
 	public Sequence getSequence(){
-		return sequenceElement;
+		return sequence;
 	}
 	public SequenceAcknowledgement getSequenceAcknowledgement(){
-		return sequenceAcknowledgementElement;
+		return sequenceAcknowledgement;
 	}
 	public TerminateSequence getTerminateSequence(){
-		return terminateSequenceElement;
+		return terminateSequence;
 	}
+	
 	public void setCreateSequence(CreateSequence createSequence){
-		createSequenceElement = createSequence;
+		this.createSequence = createSequence;
 	}
+	
 	public void setCreateSequenceResponse(CreateSequenceResponse createSequenceResponse){
-		createSequenceResponseElement = createSequenceResponse;
+		this.createSequenceResponse = createSequenceResponse;
 	}
+	
 	public void setSequence(Sequence sequence){
-		sequenceElement = sequence;
+		this.sequence = sequence;
 	}
+	
 	public void setSequenceAcknowledgement(SequenceAcknowledgement sequenceAcknowledgement){
-		sequenceAcknowledgementElement = sequenceAcknowledgement;
+		this.sequenceAcknowledgement = sequenceAcknowledgement;
 	}
+	
 	public void setTerminateSequence(TerminateSequence terminateSequence){
-		terminateSequenceElement = terminateSequence;
+		this.terminateSequence = terminateSequence;
 	}
 	
-	
+
+	public AckRequested getAckRequested() {
+		return ackRequested;
+	}
+
+	public void setAckRequested(AckRequested ackRequested) {
+		this.ackRequested = ackRequested;
+	}
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Sequence.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Sequence.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Sequence.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/Sequence.java Mon Sep  5 02:54:38 2005
@@ -16,75 +16,111 @@
  */
 package org.apache.sandesha2.wsrm;
 
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
 import org.apache.axis2.om.OMNamespace;
+import org.apache.axis2.soap.SOAPBody;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.axis2.soap.SOAPHeader;
 import org.apache.axis2.soap.SOAPHeaderBlock;
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
 
+
 public class Sequence implements IOMRMElement {
 
 	private OMElement sequenceElement;
+	
 	private Identifier identifier;
 	private MessageNumber messageNumber;
-	private LastMessage lastMessage;
+	private LastMessage lastMessage = null;
 	
 	OMNamespace seqNoNamespace =
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public Sequence(){
-		sequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.SEQUENCE,seqNoNamespace);
+		sequenceElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+						.createOMElement(Constants.WSRM.SEQUENCE,seqNoNamespace);
 	}
-	public OMElement getSOAPElement() throws OMException {
-		sequenceElement.addChild(identifier.getSOAPElement());
-		sequenceElement.addChild(messageNumber.getSOAPElement());
-		sequenceElement.addChild(lastMessage.getSOAPElement());
+	
+	public OMElement getOMElement() throws OMException {
 		return sequenceElement;
 	}
 
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
+	public Object fromOMElement(OMElement headerElement) throws OMException {
+		
+		SOAPHeader header = (SOAPHeader) headerElement;
+		if (header==null)
+			throw new OMException ("Sequence element cannot be added to non-header element");
+		
+		OMElement sequencePart = sequenceElement=headerElement.getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.SEQUENCE));
+		if (sequencePart==null)
+			throw new OMException ("Cannot find Sequence element in the given element");
+		
+		sequenceElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+							.createOMElement(Constants.WSRM.SEQUENCE,seqNoNamespace);
+		
 		identifier = new Identifier();
-		lastMessage = new LastMessage();
 		messageNumber = new MessageNumber();
-		identifier.fromSOAPEnvelope(envelope);
-		messageNumber.fromSOAPEnvelope(envelope);
-		lastMessage.fromSOAPEnvelope(envelope);
+		identifier.fromOMElement(sequencePart);
+		messageNumber.fromOMElement(sequencePart);
+
+		OMElement lastMessageElement = sequencePart.getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.LAST_MSG));
+		
+		if (lastMessageElement!=null){
+			lastMessage = new LastMessage(); 
+			lastMessage.fromOMElement(sequencePart);
+		}
+		
 		return this;
 	}
 	
-	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
-		//soapelevement will be given here. 
-		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
+	public OMElement toOMElement(OMElement headerElement) throws OMException {
+		
+		if (headerElement==null || !(headerElement instanceof SOAPHeader))
+			throw new OMException ("Cant add Sequence Part to a non-header element");
+
+		SOAPHeader soapHeader = (SOAPHeader) headerElement;
+		if (soapHeader==null)
+			throw new OMException ("cant add the sequence part to a non-header element");
+		if (sequenceElement==null)
+			throw new OMException ("cant add Sequence Part since Sequence is null");
+		if (identifier==null)
+			throw new OMException ("Cant add Sequence part since identifier is null");
+		if (messageNumber==null)
+			throw new OMException ("Cant add Sequence part since MessageNumber is null");
 		
-		SOAPHeader soapHeader = soapEnvelope.getHeader();
+		
+        identifier.toOMElement(sequenceElement);
+        messageNumber.toOMElement(sequenceElement);
+		if (lastMessage != null) 
+            lastMessage.toOMElement (sequenceElement);
+
 		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
 				Constants.WSRM.SEQUENCE,seqNoNamespace);
 		soapHeaderBlock.setMustUnderstand(true);
+		soapHeaderBlock.addChild(sequenceElement);
 		
-		if (lastMessage != null) {
-            lastMessage.toSOAPEnvelope(soapHeaderBlock);
-        }
-
-        if (identifier != null) {
-            identifier.toSOAPEnvelope(soapHeaderBlock);
-        }
-
-        if (messageNumber != null) {
-            messageNumber.toSOAPEnvelope(soapHeaderBlock);
-        }
+		//resetting the element. So that subsequest toOMElement calls will attach a different object.
+		sequenceElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+							.createOMElement(Constants.WSRM.SEQUENCE,seqNoNamespace); 
 		
-		return envelope;
-	}
-	public void addChildElement(OMElement element) throws OMException{
-		sequenceElement.addChild(element);
+		return headerElement;
 	}
+	
 	
 	public Identifier getIdentifier(){
 		return identifier;

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java Mon Sep  5 02:54:38 2005
@@ -20,6 +20,10 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
@@ -29,135 +33,148 @@
 import org.apache.axis2.soap.SOAPHeader;
 import org.apache.axis2.soap.SOAPHeaderBlock;
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class SequenceAcknowledgement implements IOMRMElement {
 	private OMElement sequenceAcknowledgementElement;
 	private Identifier identifier;
-	private List acknowledgementRanges;
+	private List acknowledgementRangeList;
 	private List nackList;
-	OMNamespace seqAcksNamespace =
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
+	OMNamespace rmNamespace =
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public SequenceAcknowledgement(){
-		sequenceAcknowledgementElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
-				Constants.WSRM.SEQUENCE_ACK,seqAcksNamespace);
-		acknowledgementRanges = new LinkedList();
+		sequenceAcknowledgementElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.SEQUENCE_ACK,rmNamespace);
+		acknowledgementRangeList = new LinkedList();
 		nackList = new LinkedList();
 	}
-	public OMElement getSOAPElement() throws OMException {
-		Iterator iterator = acknowledgementRanges.iterator();
-		while(iterator.hasNext()){
-			AcknowledgementRange range = (AcknowledgementRange)iterator.next();
-			sequenceAcknowledgementElement.addChild(
-					range.getSOAPElement());
-			
-		}
-		iterator = nackList.iterator();
-		while(iterator.hasNext()){
-			Nack nack = (Nack)iterator.next();
-			sequenceAcknowledgementElement.addChild(
-					nack.getSOAPElement());
-		}
-		sequenceAcknowledgementElement.addChild(identifier.getSOAPElement());
+	
+	public OMElement getOMElement() throws OMException {
 		return sequenceAcknowledgementElement;
 	}
 
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
-		identifier = new Identifier();
-		SOAPHeader soapHeader = envelope.getHeader();
-		Iterator iterator = soapHeader.getChildren();
-		while (iterator.hasNext()){
-			OMNode omNode = (OMNode) iterator.next();
-			
-			if (!(omNode instanceof OMElement)) {
-				continue;
-			}
-			OMElement omElement = (OMElement) omNode;
+	public Object fromOMElement(OMElement element) throws OMException {
+		
+
+		
+		if (element==null || !(element instanceof SOAPHeader)) 
+			throw new OMException ("Cant get sequence acknowlegement from a non-header element");
+		
+		SOAPHeader header = (SOAPHeader) element;
+		OMElement sequenceAckPart = header.getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.SEQUENCE_ACK));
+		
+		if (sequenceAckPart==null)
+			throw new OMException ("The passed element does not contain a seqence ackknowledgement Part");
+		
+
+		
+		identifier = new Identifier ();
+		identifier.fromOMElement(sequenceAckPart);
+		
+
+		Iterator ackRangeParts = sequenceAckPart.getChildrenWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.ACK_RANGE));
+		
+		while (ackRangeParts.hasNext()) {
+			OMElement ackRangePart = (OMElement) ackRangeParts.next();	
 			
-			if (omElement.getLocalName().equals(Constants.WSRM.SEQUENCE_ACK)){
-				Iterator childIterator = omElement.getChildren();
-				while (childIterator.hasNext()){
-					OMNode childOMNode = (OMNode) childIterator.next();
-					
-					if (!(childOMNode instanceof OMElement)) {
-						continue;
-					}
-					
-					OMElement childElement = (OMElement) childOMNode;
-					
-					if (childElement.getLocalName().equals(Constants.WSRM.ACK_RANGE)){
-						AcknowledgementRange ackRange = new AcknowledgementRange();
-						ackRange.fromSOAPEnvelope(childElement);
-						acknowledgementRanges.add(ackRange);
-					}
-					
-					if (childElement.getLocalName().equals(Constants.WSRM.NACK)){
-						Nack nack = new Nack();	
-						nack.fromSOAPEnvelope(childElement);
-						nackList.add(nack);
-					}
-					
-					if ( childElement.getLocalName().equals(Constants.WSRM.IDENTIFIER)){
-						identifier = new Identifier();
-						identifier.fromSOAPEnvelope(envelope);
-					}
-				}
-			}
+			AcknowledgementRange ackRange = new AcknowledgementRange ();
+			ackRange.fromOMElement (ackRangePart);
+			acknowledgementRangeList.add(ackRange);
+		}
+		
+		Iterator nackParts = sequenceAckPart.getChildrenWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.NACK));
+		
+		while (nackParts.hasNext()) {
+			OMElement nackPart = (OMElement) nackParts.next();	
+			Nack nack = new Nack ();
+			nack.fromOMElement (nackPart);
+			nackList.add(nack);
 		}
 		
+		sequenceAcknowledgementElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.SEQUENCE_ACK,rmNamespace);
+		
 		return this;
 	}
 
-	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
-		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
-		SOAPHeader soapHeader = soapEnvelope.getHeader();
-		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
-				Constants.WSRM.SEQUENCE_ACK,seqAcksNamespace);
-		soapHeaderBlock.setMustUnderstand(true);
-		//adding ackRanges
-		Iterator iterator = acknowledgementRanges.iterator();
-		while(iterator.hasNext()){
-			AcknowledgementRange ackRange = (AcknowledgementRange)iterator.next();
-			ackRange.toSOAPEnvelope(soapHeaderBlock);
-		}
-		iterator = nackList.iterator();
-		while(iterator.hasNext()){
-			Nack nack = (Nack)iterator.next();
-			nack.toSOAPEnvelope(soapHeaderBlock);
+	public OMElement toOMElement(OMElement header) throws OMException {
+		
+		if (header==null || !(header instanceof SOAPHeader))
+			throw new OMException ();
+		
+		SOAPHeader SOAPHeader = (SOAPHeader) header;
+		
+		if (sequenceAcknowledgementElement==null)
+			throw new OMException ("Cant set sequence acknowledgement since the element is null");
+		
+		if (identifier==null)
+			throw new OMException ("Cant set the sequence since Identifier is null");
+		
+		identifier.toOMElement(sequenceAcknowledgementElement);
+		
+		Iterator ackRangeIt = acknowledgementRangeList.iterator();
+		while (ackRangeIt.hasNext()) {
+			AcknowledgementRange ackRange = (AcknowledgementRange) ackRangeIt.next();
+			ackRange.toOMElement (sequenceAcknowledgementElement);
 		}
-		if ( identifier != null){
-			identifier.toSOAPEnvelope(soapHeaderBlock);
+		
+		Iterator nackIt = nackList.iterator();
+		while (nackIt.hasNext()) {
+			Nack nack = (Nack) nackIt.next();
+			nack.toOMElement (sequenceAcknowledgementElement);
 		}
-		return envelope;
+		
+		SOAPHeader.addChild(sequenceAcknowledgementElement);
+		
+		sequenceAcknowledgementElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.SEQUENCE_ACK,rmNamespace);
+		
+		return header;
 	}
+	
 	public void setIdentifier(Identifier identifier){
 		this.identifier = identifier;
 	}
+	
 	public void setAckRanges(List acknowledgementRagngesList){
-		acknowledgementRanges = acknowledgementRagngesList;
+		acknowledgementRangeList = acknowledgementRagngesList;
 	}
+	
 	public Nack addNackRangges(Nack nack){
 		nackList.add(nack);
 		return nack;
 	}
+	
 	public AcknowledgementRange addAcknowledgementRanges(AcknowledgementRange ackRange){
-		acknowledgementRanges.add(ackRange);
+		acknowledgementRangeList.add(ackRange);
 		return ackRange;
 	}
+	
 	public Identifier getIdentifier(){
 		return identifier;
 	}
+	
 	public List getAcknowledgementRanges(){
-		return acknowledgementRanges;
+		return acknowledgementRangeList;
 	}
+	
 	public List getNackList(){
 		return nackList;
 	}
+	
 	public void addChildElement(OMElement element){
-		acknowledgementRanges.add(element);
+		acknowledgementRangeList.add(element);
 	}
 
 }

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceFault.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceFault.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceFault.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceFault.java Mon Sep  5 02:54:38 2005
@@ -18,6 +18,10 @@
 
 import java.util.Iterator;
 
+import javax.wsdl.extensions.soap.SOAPBinding;
+import javax.wsdl.extensions.soap.SOAPBody;
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
@@ -26,71 +30,80 @@
 import org.apache.axis2.soap.SOAPHeader;
 import org.apache.axis2.soap.SOAPHeaderBlock;
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class SequenceFault implements IOMRMElement {
 	private OMElement sequenceFaultElement;
 	private FaultCode faultCode;
 	
-	OMNamespace sequenceFaultNameSpace = 
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
+	OMNamespace rmNamespace = 
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(
 				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public SequenceFault(){
-		sequenceFaultElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
-				Constants.WSRM.SEQUENCE_FAULT,sequenceFaultNameSpace);
+		sequenceFaultElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.SEQUENCE_FAULT,rmNamespace);
 	}
-	public OMElement getSOAPElement() throws OMException {
-		sequenceFaultElement.addChild(faultCode.getSOAPElement());
+	
+	public OMElement getOMElement() throws OMException {
 		return sequenceFaultElement;
 	}
 
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
-		//only for fault thus not intereated in refactoring
-		Iterator iterator = envelope.getChildren();
-		OMElement childElement;
-		OMElement siblings;
-		OMElement grandSiblings;
-		while(iterator.hasNext()){
-			childElement = (OMElement)iterator.next();
-			Iterator iteSib1 = childElement.getChildren();
-			while(iteSib1.hasNext()){
-				siblings = (OMElement)iteSib1.next();
-				Iterator iteSib2 = siblings.getChildren(); 
-				while(iteSib2.hasNext()){
-					grandSiblings = (OMElement)iteSib2.next();
-					if(grandSiblings.getLocalName().equals(Constants.WSRM.SEQUENCE_FAULT)){
-						faultCode = new FaultCode();
-						faultCode.fromSOAPEnvelope(envelope);
-					}
-				}
-			}
+	public Object fromOMElement(OMElement body) throws OMException {
+		
+		if (body==null || !(body instanceof SOAPBody))
+			throw new OMException ("Cant get Sequence Fault part from a non-header element");
+		
+		OMElement sequenceFaultPart = body.getFirstChildWithName( 
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.SEQUENCE_FAULT));
+		
+		if (sequenceFaultPart==null)
+			throw new OMException ("The passed element does not contain a Sequence Fault element");
+		
+		OMElement faultCodePart = sequenceFaultPart.getFirstChildWithName( 
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.FAULT_CODE));
+		
+		if (faultCodePart!=null) {
+		    faultCode = new FaultCode ();
+		    faultCode.fromOMElement(sequenceFaultPart);
 		}
+		
+		sequenceFaultElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.SEQUENCE_FAULT,rmNamespace);
+		
 		return this;
+		
 	}
 
-	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
-//		soapelevement will be given here. 
-		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
-		
-		SOAPHeader soapHeader = soapEnvelope.getHeader();
-		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
-				Constants.WSRM.SEQUENCE_FAULT,sequenceFaultNameSpace);
-		soapHeaderBlock.setMustUnderstand(true);
-		
+	public OMElement toOMElement(OMElement body) throws OMException {
+
+		if (body==null || !(body instanceof SOAPBody))
+			throw new OMException ("Cant get Sequence Fault part from a non-header element");
+
+		if (sequenceFaultElement==null)
+			throw new OMException ("Cant add the sequnce fault since the internal element is null");
 		
-        if (faultCode != null) {
-            faultCode.toSOAPEnvelope(soapHeaderBlock);
-        }
+		if (faultCode!=null) 
+			faultCode.toOMElement(sequenceFaultElement);
 		
-		return envelope;
+		body.addChild(sequenceFaultElement);
+
+		sequenceFaultElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+				Constants.WSRM.SEQUENCE_FAULT,rmNamespace);
 		
+		return body;
 	}
+	
 	public void setFaultCode(FaultCode faultCode){
 		this.faultCode = faultCode;
 	}
+	
 	public FaultCode getFaultCode(){
 		return faultCode;
 	}

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceOffer.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceOffer.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceOffer.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/SequenceOffer.java Mon Sep  5 02:54:38 2005
@@ -16,53 +16,87 @@
  */
 package org.apache.sandesha2.wsrm;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
 import org.apache.axis2.om.OMNamespace;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class SequenceOffer implements IOMRMElement {
 	private OMElement sequenceOfferElement;
-	private Identifier identifier;
+	private Identifier identifier=null;
+	private Expires expires=null;
 	
-	OMNamespace sequenceOfferNameSpace = 
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
+	OMNamespace rmNamespace = 
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(
 				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public SequenceOffer(){
-		sequenceOfferElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
-				Constants.WSRM.SEQUENCE_OFFER,sequenceOfferNameSpace);
-	}
-	public void addChildElement(OMElement element) throws OMException{
-		sequenceOfferElement.addChild(element);
+		sequenceOfferElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+									.createOMElement(Constants.WSRM.SEQUENCE_OFFER,rmNamespace);
 	}
 	
-	public OMElement getSOAPElement() throws OMException {
-		sequenceOfferElement.addChild(identifier.getSOAPElement());
+	public OMElement getOMElement() throws OMException {
 		return sequenceOfferElement;
 	}
 
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
+	public Object fromOMElement(OMElement createSequenceElement) throws OMException {
+		OMElement sequenceOfferPart = createSequenceElement.getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.SEQUENCE_OFFER));
+		if (sequenceOfferPart==null)
+			throw new OMException("The passed element does not contain a SequenceOffer part");
+		
+		sequenceOfferElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement( 
+									Constants.WSRM.SEQUENCE_OFFER,rmNamespace);
+		
 		identifier = new Identifier();
-		identifier.fromSOAPEnvelope(envelope);
+		identifier.fromOMElement(sequenceOfferPart);
+		
+		OMElement expiresPart = sequenceOfferPart.getFirstChildWithName(
+				new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.EXPIRES));
+		if(expiresPart!=null){
+			expires = new Expires ();
+			expires.fromOMElement(sequenceOfferElement);
+		}
+		
 		return this;
 	}
 
-	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
-		if (identifier != null){
-			identifier.toSOAPEnvelope(sequenceOfferElement);
+	public OMElement toOMElement(OMElement createSequenceElement) throws OMException {
+		if(sequenceOfferElement==null)
+			throw new OMException ("Cant set sequnceoffer. Offer element is null");
+		if (identifier==null)
+			throw new OMException ("Cant set sequnceOffer since identifier is null");
+
+		
+	    identifier.toOMElement(sequenceOfferElement);
+	    
+		if(expires!=null) {
+			expires.toOMElement(sequenceOfferElement);
 		}
-		messageElement.addChild(sequenceOfferElement);
-		return messageElement;
+		
+		createSequenceElement.addChild(sequenceOfferElement);
+			
+		sequenceOfferElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMElement(
+									Constants.WSRM.SEQUENCE_OFFER,rmNamespace);
+		
+		return createSequenceElement;
 	}
+	
 	public Identifier getIdentifer(){
 		return identifier;
 	}
+	
 	public void setIdentifier(Identifier identifier){
 		this.identifier = identifier;		
 	}

Modified: webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/TerminateSequence.java
URL: http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/TerminateSequence.java?rev=278707&r1=278706&r2=278707&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/TerminateSequence.java (original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/TerminateSequence.java Mon Sep  5 02:54:38 2005
@@ -16,6 +16,8 @@
  */
 package org.apache.sandesha2.wsrm;
 
+import javax.xml.namespace.QName;
+
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMException;
@@ -23,46 +25,77 @@
 import org.apache.axis2.soap.SOAPBody;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.sandesha2.Constants;
+import org.apache.sandesha2.SOAPAbstractFactory;
 
 /**
  * @author Saminda
- *
+ * @author chamikara
+ * @author sanka
  */
+
 public class TerminateSequence implements IOMRMElement {
+    
 	private OMElement terminateSequenceElement;
 	private Identifier identifier;
 	
-	OMNamespace terminateSequenceNameSpace = 
-		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
+	OMNamespace rmNameSpace = 
+		SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION).createOMNamespace(
 				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
+	
 	public TerminateSequence(){
-		terminateSequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
-				Constants.WSRM.TERMINATE_SEQUENCE,terminateSequenceNameSpace);
+		terminateSequenceElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+									.createOMElement(Constants.WSRM.TERMINATE_SEQUENCE,rmNameSpace);
 	}
-	public OMElement getSOAPElement() throws OMException {
-		terminateSequenceElement.addChild(identifier.getSOAPElement());
+	
+	public OMElement getOMElement() throws OMException {
 		return terminateSequenceElement;
 	}
-	public void addChild(OMElement element){
-		terminateSequenceElement.addChild(element);
-	}
-	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
+	
+	public Object fromOMElement(OMElement body) throws OMException {
+	    
+	    if (!(body instanceof SOAPBody))
+	        throw new OMException ("Cant add terminate sequence to a non body element");
+	    
+	    OMElement terminateSeqPart = body.getFirstChildWithName(
+	            new QName (Constants.WSRM.NS_URI_RM,Constants.WSRM.TERMINATE_SEQUENCE));
+	    
+	    if (terminateSeqPart==null)
+	        throw new OMException ("passed element does not contain a terminate sequence part");
+	    
 		identifier = new Identifier();
-		identifier.fromSOAPEnvelope(envelope);
+		identifier.fromOMElement(terminateSeqPart);
+		
+		terminateSequenceElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+									.createOMElement(Constants.WSRM.TERMINATE_SEQUENCE,rmNameSpace);
+		
 		return this;
 	}
-	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
-		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
-		SOAPBody soapBody = soapEnvelope.getBody();
-		if (identifier != null){
-			identifier.toSOAPEnvelope(terminateSequenceElement);
-		}
-		soapBody.addChild(terminateSequenceElement);
-		return envelope;
+	
+	public OMElement toOMElement(OMElement body) throws OMException {
+	    
+	    if (body==null || !(body instanceof SOAPBody))
+	        throw new OMException ("Cant add terminate sequence to a nonbody element");
+
+	    if (terminateSequenceElement==null)
+	        throw new OMException ("Cant add terminate sequnce since the internal element is null");
+	    
+	    if (identifier==null)
+	        throw new OMException ("Cant add terminate sequence since identifier is not set");
+	    
+		
+		identifier.toOMElement(terminateSequenceElement);
+		body.addChild(terminateSequenceElement);
+		
+		terminateSequenceElement = SOAPAbstractFactory.getSOAPFactory(Constants.DEFAULT_SOAP_VERSION)
+							.createOMElement(Constants.WSRM.TERMINATE_SEQUENCE,rmNameSpace);
+
+		return body;
 	}
+	
 	public Identifier getIdentifier(){
 		return identifier;
 	}
+	
 	public void setIdentifier(Identifier identifier){
 		this.identifier = identifier;
 	}



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org