You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2012/06/09 11:18:27 UTC
svn commit: r1348340 [1/2] - in /axis/axis2/java/core/trunk/modules:
jaxws/src/org/apache/axis2/jaxws/message/util/impl/ saaj/
saaj/src/org/apache/axis2/saaj/ saaj/src/org/apache/axis2/saaj/util/
Author: veithen
Date: Sat Jun 9 09:18:25 2012
New Revision: 1348340
URL: http://svn.apache.org/viewvc?rev=1348340&view=rev
Log:
Eliminated axiom-dom as a compile time dependency of axis2-saaj and made it a runtime dependency. This should break the strong coupling between axis2-saaj and axiom-dom and make axis2-saaj more robust with respect to changes in Axiom's DOOM implementation.
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
axis/axis2/java/core/trunk/modules/saaj/pom.xml
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailEntryImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java
Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java Sat Jun 9 09:18:25 2012
@@ -21,10 +21,8 @@ package org.apache.axis2.jaxws.message.u
import org.apache.axiom.attachments.Attachments;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.dom.ElementImpl;
import org.apache.axiom.om.util.StAXUtils;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
@@ -631,8 +629,8 @@ public class SAAJConverterImpl implement
// get that and add it as a text node under the original element.
Node value = se.getFirstChild();
if (value != null && value instanceof org.apache.axis2.saaj.SOAPElementImpl) {
- org.apache.axis2.saaj.SOAPElementImpl valueElement = (org.apache.axis2.saaj.SOAPElementImpl) value;
- ElementImpl e = valueElement.getTarget();
+ org.apache.axis2.saaj.SOAPElementImpl<?> valueElement = (org.apache.axis2.saaj.SOAPElementImpl<?>) value;
+ OMElement e = valueElement.getOMTarget();
String content = e.getText();
SOAPElement child = fault.addChildElement(new QName(se.getNamespaceURI(), SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME));
@@ -656,8 +654,8 @@ public class SAAJConverterImpl implement
// get that and add it as a text node under the original element.
Node value = se.getFirstChild();
if (value != null && value instanceof org.apache.axis2.saaj.SOAPElementImpl) {
- org.apache.axis2.saaj.SOAPElementImpl valueElement = (org.apache.axis2.saaj.SOAPElementImpl) value;
- ElementImpl e = valueElement.getTarget();
+ org.apache.axis2.saaj.SOAPElementImpl<?> valueElement = (org.apache.axis2.saaj.SOAPElementImpl<?>) value;
+ OMElement e = valueElement.getOMTarget();
String content = e.getText();
SOAPElement child = fault.addChildElement(new QName(se.getNamespaceURI(), SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME));
Modified: axis/axis2/java/core/trunk/modules/saaj/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/pom.xml?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/saaj/pom.xml Sat Jun 9 09:18:25 2012
@@ -44,6 +44,7 @@
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-dom</artifactId>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java Sat Jun 9 09:18:25 2012
@@ -19,10 +19,8 @@
package org.apache.axis2.saaj;
+import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
-import org.apache.axiom.om.impl.dom.DocumentImpl;
-import org.apache.axiom.om.impl.dom.TextImpl;
import org.apache.axiom.om.util.Base64;
import org.apache.axis2.saaj.util.SAAJDataSource;
import org.apache.axis2.transport.http.HTTPConstants;
@@ -284,7 +282,7 @@ public class AttachmentPartImpl extends
if (datahandler != null) {
this.dataHandler = datahandler;
setMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE, datahandler.getContentType());
- omText = DOOMAbstractFactory.getOMFactory().createOMText(datahandler, true);
+ omText = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory().createOMText(datahandler, true);
} else {
throw new IllegalArgumentException("Cannot set null DataHandler");
}
@@ -528,10 +526,6 @@ public class AttachmentPartImpl extends
return omText;
}
- public TextImpl getText(DocumentImpl doc) {
- return new TextImpl(doc, omText.getText(), doc.getOMFactory());
- }
-
/**
* Set the filename of this attachment part.
*
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailEntryImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailEntryImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailEntryImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailEntryImpl.java Sat Jun 9 09:18:25 2012
@@ -19,7 +19,7 @@
package org.apache.axis2.saaj;
-import org.apache.axiom.om.impl.dom.ElementImpl;
+import org.apache.axiom.om.OMElement;
import javax.xml.namespace.QName;
import javax.xml.soap.DetailEntry;
@@ -32,10 +32,10 @@ import java.util.Iterator;
* which carries information about errors related to the SOAPBody object that contains it, is
* application-specific.
*/
-public class DetailEntryImpl extends SOAPElementImpl implements DetailEntry {
+public class DetailEntryImpl extends SOAPElementImpl<OMElement> implements DetailEntry {
/** @param element */
- public DetailEntryImpl(ElementImpl element) {
+ public DetailEntryImpl(OMElement element) {
super(element);
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java Sat Jun 9 09:18:25 2012
@@ -19,7 +19,7 @@
package org.apache.axis2.saaj;
-import org.apache.axiom.om.impl.dom.ElementImpl;
+import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPFaultDetail;
import javax.xml.namespace.QName;
@@ -52,14 +52,11 @@ import java.util.Iterator;
* "http://www.wombat.org/trader"); d.addDetailEntry(name); Iterator it = d.getDetailEntries();
* </PRE>
*/
-public class DetailImpl extends SOAPFaultElementImpl implements Detail {
-
-// private SOAPFaultDetail faultDetail;
+public class DetailImpl extends SOAPFaultElementImpl<SOAPFaultDetail> implements Detail {
/** @param element */
public DetailImpl(SOAPFaultDetail element) {
- super((ElementImpl)element);
-// faultDetail = element;
+ super(element);
}
/**
@@ -72,8 +69,8 @@ public class DetailImpl extends SOAPFaul
* Detail object.
*/
public DetailEntry addDetailEntry(Name name) throws SOAPException {
- SOAPElementImpl childElement = (SOAPElementImpl)addChildElement(name);
- DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.target);
+ SOAPElementImpl<?> childElement = (SOAPElementImpl<?>)addChildElement(name);
+ DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.omTarget);
childElement.target.setUserData(SAAJ_NODE, detailEntry, null);
return detailEntry;
}
@@ -85,10 +82,10 @@ public class DetailImpl extends SOAPFaul
* <code>Detail</code> object
*/
public Iterator getDetailEntries() {
- final Iterator detailEntriesIter = target.getChildElements();
+ final Iterator detailEntriesIter = omTarget.getChildElements();
Collection details = new ArrayList();
while (detailEntriesIter.hasNext()) {
- details.add(new DetailEntryImpl((ElementImpl)detailEntriesIter.next()));
+ details.add(new DetailEntryImpl((OMElement)detailEntriesIter.next()));
}
return details.iterator();
}
@@ -101,8 +98,8 @@ public class DetailImpl extends SOAPFaul
* Detail object.
*/
public DetailEntry addDetailEntry(QName qname) throws SOAPException {
- SOAPElementImpl childElement = (SOAPElementImpl)addChildElement(qname);
- DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.target);
+ SOAPElementImpl<?> childElement = (SOAPElementImpl<?>)addChildElement(qname);
+ DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.omTarget);
childElement.target.setUserData(SAAJ_NODE, detailEntry, null);
return detailEntry;
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java Sat Jun 9 09:18:25 2012
@@ -19,8 +19,10 @@
package org.apache.axis2.saaj;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.w3c.dom.Element;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
@@ -96,19 +98,19 @@ public class MessageFactoryImpl extends
* protocol of this MessageFactory instance is DYNAMIC_SOAP_PROTOCOL
*/
public SOAPMessage createMessage() throws SOAPException {
- org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl soapEnvelope;
+ OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
+ SOAPEnvelope soapEnvelope;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- soapEnvelope = (org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)
- new SOAP12Factory().getDefaultEnvelope();
+ soapEnvelope = metaFactory.getSOAP12Factory().getDefaultEnvelope();
} else if (soapVersion.equals(SOAPConstants.DYNAMIC_SOAP_PROTOCOL)) {
throw new UnsupportedOperationException("createMessage() is not supported for " +
"DYNAMIC_SOAP_PROTOCOL");
} else {
//SOAP 1.1
- soapEnvelope = (org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)
- new SOAP11Factory().getDefaultEnvelope();
+ soapEnvelope = metaFactory.getSOAP11Factory().getDefaultEnvelope();
}
- soapEnvelope.getOwnerDocument().appendChild(soapEnvelope);
+ Element domSoapEnvelope = (Element)soapEnvelope;
+ domSoapEnvelope.getOwnerDocument().appendChild(domSoapEnvelope);
SOAPMessageImpl soapMessage = new SOAPMessageImpl(new SOAPEnvelopeImpl(soapEnvelope));
soapMessage.setSaveRequired();
return soapMessage;
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java Sat Jun 9 09:18:25 2012
@@ -23,11 +23,13 @@ import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.dom.DOMMessageFormatter;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.impl.dom.NodeImpl;
-import org.apache.axiom.soap.impl.dom.SOAPBodyImpl;
-import org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFault;
+import org.apache.axiom.soap.SOAPFaultDetail;
+import org.apache.axiom.soap.SOAPFaultNode;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPHeaderBlock;
import org.w3c.dom.Attr;
import org.w3c.dom.Comment;
import org.w3c.dom.DOMException;
@@ -48,19 +50,25 @@ import javax.xml.soap.SOAPException;
* some tree manipulation methods. This interface provides methods for getting the value of a node,
* for getting and setting the parent of a node, and for removing a node.
*/
-public abstract class SAAJNode<T extends org.w3c.dom.Node> implements Node {
+public abstract class SAAJNode<T extends org.w3c.dom.Node, S extends OMNode> implements Node {
protected final T target;
+ protected final S omTarget;
protected SOAPElement parentElement;
static final String SAAJ_NODE = "saaj.node";
- public SAAJNode(T target) {
+ public SAAJNode(T target, S omTarget) {
this.target = target;
+ this.omTarget = omTarget;
}
public final T getTarget() {
return target;
}
+ public final S getOMTarget() {
+ return omTarget;
+ }
+
/**
* Removes this <code>Node</code> object from the tree. Once removed, this node can be garbage
* collected if there are no application references to it.
@@ -165,7 +173,7 @@ public abstract class SAAJNode<T extends
if (domNode == null) {
return null;
}
- Node saajNode = (Node)((NodeImpl)domNode).getUserData(SAAJ_NODE);
+ Node saajNode = (Node)domNode.getUserData(SAAJ_NODE);
if (saajNode == null) { // if SAAJ node has not been set in userData, try to construct it
return toSAAJNode2(domNode, parentNode);
}
@@ -190,77 +198,62 @@ public abstract class SAAJNode<T extends
Text text = (Text)domNode;
org.w3c.dom.Node prevSiblingDOMNode = text.getPreviousSibling();
org.w3c.dom.Node nextSiblingDOMNode = text.getNextSibling();
- SOAPElementImpl parent = new SOAPElementImpl((ElementImpl)domNode.getParentNode());
+ SOAPElementImpl<OMElement> parent = new SOAPElementImpl<OMElement>((OMElement)domNode.getParentNode());
TextImplEx saajTextNode =
new TextImplEx(text.getData(), parent, prevSiblingDOMNode, nextSiblingDOMNode);
- ((NodeImpl)domNode).setUserData(SAAJ_NODE, saajTextNode, null);
+ domNode.setUserData(SAAJ_NODE, saajTextNode, null);
return saajTextNode;
} else if (domNode instanceof org.w3c.dom.Comment) {
Comment comment = (Comment)domNode;
org.w3c.dom.Node prevSiblingDOMNode = comment.getPreviousSibling();
org.w3c.dom.Node nextSiblingDOMNode = comment.getNextSibling();
- SOAPElementImpl parent = new SOAPElementImpl((ElementImpl)domNode.getParentNode());
+ SOAPElementImpl<OMElement> parent = new SOAPElementImpl<OMElement>((OMElement)domNode.getParentNode());
CommentImpl saajTextNode = new CommentImpl(comment.getData(),
parent, prevSiblingDOMNode,
nextSiblingDOMNode);
- ((NodeImpl)domNode).setUserData(SAAJ_NODE, saajTextNode, null);
+ domNode.setUserData(SAAJ_NODE, saajTextNode, null);
return saajTextNode;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPBodyImpl) {
- org.apache.axiom.soap.impl.dom.SOAPBodyImpl doomSOAPBody = (SOAPBodyImpl)domNode;
+ } else if (domNode instanceof SOAPBody) {
javax.xml.soap.SOAPBody saajSOAPBody =
- new org.apache.axis2.saaj.SOAPBodyImpl(doomSOAPBody);
- doomSOAPBody.setUserData(SAAJ_NODE, saajSOAPBody, null);
+ new org.apache.axis2.saaj.SOAPBodyImpl((SOAPBody)domNode);
+ domNode.setUserData(SAAJ_NODE, saajSOAPBody, null);
return saajSOAPBody;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl) {
- org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl doomSOAPEnv
- = (SOAPEnvelopeImpl)domNode;
+ } else if (domNode instanceof SOAPEnvelope) {
javax.xml.soap.SOAPEnvelope saajEnvelope
- = new org.apache.axis2.saaj.SOAPEnvelopeImpl(doomSOAPEnv);
- doomSOAPEnv.setUserData(SAAJ_NODE, saajEnvelope, null);
+ = new org.apache.axis2.saaj.SOAPEnvelopeImpl((SOAPEnvelope)domNode);
+ domNode.setUserData(SAAJ_NODE, saajEnvelope, null);
return saajEnvelope;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPFaultNodeImpl) {
- org.apache.axiom.soap.impl.dom.SOAPFaultNodeImpl doomSOAPFaultNode
- = (org.apache.axiom.soap.impl.dom.SOAPFaultNodeImpl)domNode;
+ } else if (domNode instanceof SOAPFaultNode) {
javax.xml.soap.SOAPFaultElement saajSOAPFaultEle
- = new org.apache.axis2.saaj.SOAPFaultElementImpl(doomSOAPFaultNode);
- doomSOAPFaultNode.setUserData(SAAJ_NODE, saajSOAPFaultEle, null);
+ = new org.apache.axis2.saaj.SOAPFaultElementImpl<SOAPFaultNode>((SOAPFaultNode)domNode);
+ domNode.setUserData(SAAJ_NODE, saajSOAPFaultEle, null);
return saajSOAPFaultEle;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPFaultDetailImpl) {
- org.apache.axiom.soap.impl.dom.SOAPFaultDetailImpl doomSOAPFaultDetail
- = (org.apache.axiom.soap.impl.dom.SOAPFaultDetailImpl)domNode;
+ } else if (domNode instanceof SOAPFaultDetail) {
javax.xml.soap.Detail saajDetail
- = new org.apache.axis2.saaj.DetailImpl(doomSOAPFaultDetail);
- doomSOAPFaultDetail.setUserData(SAAJ_NODE, saajDetail, null);
+ = new org.apache.axis2.saaj.DetailImpl((SOAPFaultDetail)domNode);
+ domNode.setUserData(SAAJ_NODE, saajDetail, null);
return saajDetail;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPFaultImpl) {
- org.apache.axiom.soap.impl.dom.SOAPFaultImpl doomSOAPFault
- = (org.apache.axiom.soap.impl.dom.SOAPFaultImpl)domNode;
+ } else if (domNode instanceof SOAPFault) {
javax.xml.soap.SOAPFault saajSOAPFault
- = new org.apache.axis2.saaj.SOAPFaultImpl(doomSOAPFault);
- doomSOAPFault.setUserData(SAAJ_NODE, saajSOAPFault, null);
+ = new org.apache.axis2.saaj.SOAPFaultImpl((SOAPFault)domNode);
+ domNode.setUserData(SAAJ_NODE, saajSOAPFault, null);
return saajSOAPFault;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPHeaderBlockImpl) {
- org.apache.axiom.soap.impl.dom.SOAPHeaderBlockImpl doomSOAPHeaderBlock
- = (org.apache.axiom.soap.impl.dom.SOAPHeaderBlockImpl)domNode;
+ } else if (domNode instanceof SOAPHeaderBlock) {
javax.xml.soap.SOAPHeaderElement saajSOAPHeaderEle
- = new org.apache.axis2.saaj.SOAPHeaderElementImpl(doomSOAPHeaderBlock);
- doomSOAPHeaderBlock.setUserData(SAAJ_NODE, saajSOAPHeaderEle, null);
+ = new org.apache.axis2.saaj.SOAPHeaderElementImpl((SOAPHeaderBlock)domNode);
+ domNode.setUserData(SAAJ_NODE, saajSOAPHeaderEle, null);
return saajSOAPHeaderEle;
- } else if (domNode instanceof org.apache.axiom.soap.impl.dom.SOAPHeaderImpl) {
- org.apache.axiom.soap.impl.dom.SOAPHeaderImpl doomSOAPHeader
- = (org.apache.axiom.soap.impl.dom.SOAPHeaderImpl)domNode;
+ } else if (domNode instanceof SOAPHeader) {
javax.xml.soap.SOAPHeader saajSOAPHeader
- = new org.apache.axis2.saaj.SOAPHeaderImpl(doomSOAPHeader);
- doomSOAPHeader.setUserData(SAAJ_NODE, saajSOAPHeader, null);
+ = new org.apache.axis2.saaj.SOAPHeaderImpl((SOAPHeader)domNode);
+ domNode.setUserData(SAAJ_NODE, saajSOAPHeader, null);
return saajSOAPHeader;
- } else if (domNode instanceof org.apache.axiom.om.impl.dom.DocumentImpl) {
+ } else if (domNode instanceof Document) {
// Must be a SOAPEnvelope
if (!(parentNode instanceof org.apache.axis2.saaj.SOAPEnvelopeImpl)) {
return null;
}
- org.apache.axiom.om.impl.dom.DocumentImpl doomDocument
- = (org.apache.axiom.om.impl.dom.DocumentImpl)domNode;
org.apache.axis2.saaj.SOAPEnvelopeImpl saajEnv =
(org.apache.axis2.saaj.SOAPEnvelopeImpl) parentNode;
javax.xml.soap.SOAPPart saajSOAPPart = null;
@@ -278,9 +271,8 @@ public abstract class SAAJNode<T extends
domNode.setUserData(SAAJ_NODE, saajSOAPPart, null);
return saajSOAPPart;
} else { // instanceof org.apache.axis2.om.impl.dom.ElementImpl
- ElementImpl doomElement = (ElementImpl)domNode;
- SOAPElementImpl saajSOAPElement = new SOAPElementImpl(doomElement);
- doomElement.setUserData(SAAJ_NODE, saajSOAPElement, null);
+ SOAPElementImpl<OMElement> saajSOAPElement = new SOAPElementImpl<OMElement>((OMElement)domNode);
+ domNode.setUserData(SAAJ_NODE, saajSOAPElement, null);
return saajSOAPElement;
}
}
@@ -372,7 +364,7 @@ public abstract class SAAJNode<T extends
public final org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild) throws DOMException {
if (oldChild instanceof SAAJNode) {
- oldChild = ((SAAJNode<?>)oldChild).getTarget();
+ oldChild = ((SAAJNode<?,?>)oldChild).getTarget();
}
return target.removeChild(oldChild);
}
@@ -432,8 +424,8 @@ public abstract class SAAJNode<T extends
try {
if (child instanceof Text) {
return appendText((Text)child);
- } else if (child instanceof ElementImpl) {
- return appendElement((ElementImpl)child);
+ } else if (child instanceof Element) {
+ return appendElement((Element)child);
}
} catch (SOAPException e) {
DOMException ex =
@@ -442,32 +434,30 @@ public abstract class SAAJNode<T extends
throw ex;
}
throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR,
- DOMMessageFormatter.formatMessage(
- DOMMessageFormatter.DOM_DOMAIN,
- DOMException.HIERARCHY_REQUEST_ERR, null));
+ "An attempt was made to insert a node where it is not permitted.");
}
protected Text appendText(Text child) throws SOAPException {
String text = child.getData();
Text textNode = getOwnerDocument().createTextNode(text);
- NodeImpl node = ((NodeImpl)target.appendChild(textNode));
+ target.appendChild(textNode);
TextImplEx saajTextNode = new TextImplEx(text, (SOAPElement)this);
- node.setUserData(SAAJ_NODE, saajTextNode, null);
+ textNode.setUserData(SAAJ_NODE, saajTextNode, null);
return saajTextNode;
}
- protected Element appendElement(ElementImpl child) throws SOAPException {
+ protected Element appendElement(Element child) throws SOAPException {
String namespaceURI = child.getNamespaceURI();
String prefix = child.getPrefix();
- SOAPElementImpl childEle = new SOAPElementImpl(child);
+ SOAPElementImpl<OMElement> childEle = new SOAPElementImpl<OMElement>((OMElement)child);
childEle.target.setUserData(SAAJ_NODE, childEle, null);
if (namespaceURI != null && namespaceURI.trim().length() > 0) {
- childEle.target.setNamespace(childEle.target.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
}
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement((SOAPElement)this);
return childEle;
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java Sat Jun 9 09:18:25 2012
@@ -19,7 +19,7 @@
package org.apache.axis2.saaj;
-import org.apache.axiom.om.impl.dom.ElementImpl;
+import org.apache.axiom.om.OMElement;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPBody;
@@ -28,10 +28,10 @@ import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import java.util.Iterator;
-public class SOAPBodyElementImpl extends SOAPElementImpl implements SOAPBodyElement {
+public class SOAPBodyElementImpl<T extends OMElement> extends SOAPElementImpl<T> implements SOAPBodyElement {
/** @param element */
- public SOAPBodyElementImpl(ElementImpl element) {
+ public SOAPBodyElementImpl(T element) {
super(element);
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java Sat Jun 9 09:18:25 2012
@@ -19,17 +19,12 @@
package org.apache.axis2.saaj;
+import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.dom.DocumentImpl;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.impl.dom.NamespaceImpl;
-import org.apache.axiom.om.impl.dom.NodeImpl;
+import org.apache.axiom.soap.SOAP11Version;
+import org.apache.axiom.soap.SOAP12Version;
import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultImpl;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultImpl;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
@@ -52,29 +47,27 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.Locale;
-public class SOAPBodyImpl extends SOAPElementImpl implements SOAPBody {
+public class SOAPBodyImpl extends SOAPElementImpl<org.apache.axiom.soap.SOAPBody> implements SOAPBody {
- private org.apache.axiom.soap.SOAPBody omSOAPBody;
private boolean isBodyElementAdded;
/** @param omSOAPBody */
public SOAPBodyImpl(org.apache.axiom.soap.SOAPBody omSOAPBody) {
- super((ElementImpl)omSOAPBody);
- this.omSOAPBody = omSOAPBody;
+ super(omSOAPBody);
}
/* (non-Javadoc)
* @see javax.xml.soap.SOAPElement#addChildElement(java.lang.String)
*/
public SOAPElement addChildElement(String localName) throws SOAPException {
- if (omSOAPBody.hasFault()) {
+ if (omTarget.hasFault()) {
throw new SOAPException("A SOAPFault has been already added to this SOAPBody");
}
- SOAPBodyElementImpl childEle =
- new SOAPBodyElementImpl((ElementImpl)getOwnerDocument().createElement(localName));
+ SOAPBodyElementImpl<OMElement> childEle =
+ new SOAPBodyElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
childEle.target.setUserData(SAAJ_NODE, childEle, null);
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
isBodyElementAdded = true;
return childEle;
}
@@ -85,31 +78,31 @@ public class SOAPBodyImpl extends SOAPEl
if (namespaceURI == null) {
throw new SOAPException("Namespace not declared for the give prefix: " + prefix);
}
- SOAPBodyElementImpl childEle =
- new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElementNS(namespaceURI,
+ SOAPBodyElementImpl<OMElement> childEle =
+ new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElementNS(namespaceURI,
localName));
childEle.target.setUserData(SAAJ_NODE, childEle, null);
- childEle.target.setNamespace(childEle.target.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@Override
- protected Element appendElement(ElementImpl child) throws SOAPException {
+ protected Element appendElement(Element child) throws SOAPException {
String namespaceURI = child.getNamespaceURI();
String prefix = child.getPrefix();
- SOAPBodyElementImpl childEle = new SOAPBodyElementImpl(child);
+ SOAPBodyElementImpl<OMElement> childEle = new SOAPBodyElementImpl<OMElement>((OMElement)child);
childEle.target.setUserData(SAAJ_NODE, childEle, null);
if (namespaceURI != null && namespaceURI.trim().length() > 0) {
- childEle.target.setNamespace(childEle.target.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
}
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -119,16 +112,16 @@ public class SOAPBodyImpl extends SOAPEl
String prefix = soapElement.getPrefix();
String localName = soapElement.getLocalName();
- SOAPBodyElementImpl childEle;
+ SOAPBodyElementImpl<OMElement> childEle;
if (namespaceURI == null || namespaceURI.trim().length() == 0) {
childEle =
- new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElement(localName));
+ new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElement(localName));
} else {
- target.declareNamespace(namespaceURI, prefix);
+ omTarget.declareNamespace(namespaceURI, prefix);
childEle =
- new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElementNS(namespaceURI,
+ new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElementNS(namespaceURI,
localName));
}
@@ -148,10 +141,10 @@ public class SOAPBodyImpl extends SOAPEl
childEle.target.setUserData(SAAJ_NODE, childEle, null);
if (namespaceURI != null && namespaceURI.trim().length() > 0) {
- childEle.target.setNamespace(childEle.target.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
}
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -161,29 +154,29 @@ public class SOAPBodyImpl extends SOAPEl
*/
public SOAPElement addChildElement(String localName, String prefix, String uri)
throws SOAPException {
- if (omSOAPBody.hasFault()) {
+ if (omTarget.hasFault()) {
throw new SOAPException("A SOAPFault has been already added to this SOAPBody");
}
if (prefix == null) {
prefix = "";
}
- SOAPBodyElementImpl childEle;
+ SOAPBodyElementImpl<OMElement> childEle;
if (uri == null || "".equals(uri)) {
- childEle = new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElement(localName));
+ childEle = new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElement(localName));
} else if (prefix.length() == 0) {
- childEle = new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElementNS(uri,
+ childEle = new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElementNS(uri,
localName));
} else {
- childEle = new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElementNS(uri,
+ childEle = new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElementNS(uri,
prefix + ":" + localName));
}
childEle.target.setUserData(SAAJ_NODE, childEle, null);
- childEle.target.setNamespace(target.getOMFactory().createOMNamespace(uri, prefix));
+ childEle.omTarget.setNamespace(omTarget.getOMFactory().createOMNamespace(uri, prefix));
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
isBodyElementAdded = true;
childEle.setParentElement(this);
return childEle;
@@ -200,21 +193,12 @@ public class SOAPBodyImpl extends SOAPEl
if (isBodyElementAdded) {
throw new SOAPException("A SOAPBodyElement has been already added to this SOAPBody");
}
- SOAPFaultImpl saajSOAPFault = null;
-
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
- SOAP11FaultImpl fault =
- new SOAP11FaultImpl(omSOAPBody, (SOAPFactory)this.target.getOMFactory());
- saajSOAPFault = new SOAPFaultImpl(fault);
- } else if (this.target.getOMFactory() instanceof SOAP12Factory) {
- SOAP12FaultImpl fault =
- new SOAP12FaultImpl(omSOAPBody, (SOAPFactory)this.target.getOMFactory());
- saajSOAPFault = new SOAPFaultImpl(fault);
- }
+ org.apache.axiom.soap.SOAPFault fault = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPFault(omTarget);
+ SOAPFaultImpl saajSOAPFault = new SOAPFaultImpl(fault);
// set default fault code and string
saajSOAPFault.setDefaults();
- ((NodeImpl)omSOAPBody.getFault()).setUserData(SAAJ_NODE, saajSOAPFault, null);
+ ((Element)omTarget.getFault()).setUserData(SAAJ_NODE, saajSOAPFault, null);
return saajSOAPFault;
}
@@ -226,7 +210,7 @@ public class SOAPBodyImpl extends SOAPEl
* <code>SOAPBody</code> object; <code>false</code> otherwise
*/
public boolean hasFault() {
- return omSOAPBody.hasFault();
+ return omTarget.hasFault();
}
/**
@@ -235,8 +219,8 @@ public class SOAPBodyImpl extends SOAPEl
* @return the <code>SOAPFault</code> object in this <code>SOAPBody</code> object
*/
public SOAPFault getFault() {
- if (omSOAPBody.hasFault()) {
- return (SOAPFault)toSAAJNode((org.w3c.dom.Node)omSOAPBody.getFault());
+ if (omTarget.hasFault()) {
+ return (SOAPFault)toSAAJNode((org.w3c.dom.Node)omTarget.getFault());
}
return null;
}
@@ -270,14 +254,7 @@ public class SOAPBodyImpl extends SOAPEl
*/
public SOAPFault addFault(Name faultCode, String faultString, Locale locale)
throws SOAPException {
- org.apache.axiom.soap.SOAPFault fault;
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
- fault = new SOAP11FaultImpl(omSOAPBody, new Exception(
- faultString), (SOAPFactory)this.target.getOMFactory());
- } else {
- fault = new SOAP12FaultImpl(omSOAPBody, new Exception(
- faultString), (SOAPFactory)this.target.getOMFactory());
- }
+ org.apache.axiom.soap.SOAPFault fault = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPFault(omTarget);
SOAPFaultImpl faultImpl = new SOAPFaultImpl(fault);
faultImpl.setFaultCode(faultCode);
@@ -323,8 +300,8 @@ public class SOAPBodyImpl extends SOAPEl
Element docEle = document.getDocumentElement();
SOAPElement saajSOAPEle = (SOAPElement)toSAAJNode(docEle, this);
- SOAPBodyElementImpl bodyEle =
- new SOAPBodyElementImpl(((SOAPElementImpl)saajSOAPEle).target);
+ SOAPBodyElementImpl<OMElement> bodyEle =
+ new SOAPBodyElementImpl<OMElement>(((SOAPElementImpl<?>)saajSOAPEle).omTarget);
addChildElement(bodyEle);
return bodyEle;
}
@@ -362,17 +339,8 @@ public class SOAPBodyImpl extends SOAPEl
*/
public SOAPFault addFault(QName faultCode, String faultString, Locale locale)
throws SOAPException {
- SOAPFaultImpl faultImpl = null;
-
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
- SOAP11FaultImpl fault = new SOAP11FaultImpl(omSOAPBody, new Exception(
- faultString), (SOAPFactory)this.target.getOMFactory());
- faultImpl = new SOAPFaultImpl(fault);
- } else if (this.target.getOMFactory() instanceof SOAP12Factory) {
- SOAP12FaultImpl fault = new SOAP12FaultImpl(omSOAPBody, new Exception(
- faultString), (SOAPFactory)this.target.getOMFactory());
- faultImpl = new SOAPFaultImpl(fault);
- }
+ org.apache.axiom.soap.SOAPFault fault = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPFault(omTarget);
+ SOAPFaultImpl faultImpl = new SOAPFaultImpl(fault);
if (faultImpl != null) {
faultImpl.setFaultCode(faultCode);
@@ -439,11 +407,11 @@ public class SOAPBodyImpl extends SOAPEl
}
Element domEle = ((Element)node);
int indexOfColon = domEle.getTagName().indexOf(":");
- NamespaceImpl ns;
+ OMNamespace ns;
String localName;
if (indexOfColon != -1) {
localName = domEle.getTagName().substring(indexOfColon + 1);
- ns = new NamespaceImpl(domEle.getNamespaceURI(),
+ ns = omTarget.getOMFactory().createOMNamespace(domEle.getNamespaceURI(),
domEle.getTagName().substring(0, indexOfColon));
} else {
localName = domEle.getLocalName();
@@ -456,21 +424,20 @@ public class SOAPBodyImpl extends SOAPEl
prefix = "";
}
if (domEle.getNamespaceURI() != null) {
- ns = new NamespaceImpl(domEle.getNamespaceURI(), prefix);
+ ns = omTarget.getOMFactory().createOMNamespace(domEle.getNamespaceURI(), prefix);
} else {
if (prefix != null) {
- ns = new NamespaceImpl("", prefix);
+ ns = omTarget.getOMFactory().createOMNamespace("", prefix);
} else {
- ns = new NamespaceImpl("", "");
+ ns = omTarget.getOMFactory().createOMNamespace("", "");
}
}
}
- ElementImpl eleImpl =
- new ElementImpl((DocumentImpl)this.getOwnerDocument(),
- localName, ns, this.target.getOMFactory());
+ OMElement eleImpl = this.omTarget.getOMFactory().createOMElement(localName, ns);
+ getOwnerDocument().adoptNode((Element)eleImpl);
- SOAPElementImpl saajEle = new SOAPElementImpl(eleImpl);
+ SOAPElementImpl<OMElement> saajEle = new SOAPElementImpl<OMElement>(eleImpl);
saajEle.setParentElement(parent);
NamedNodeMap domAttrs = domEle.getAttributes();
@@ -508,61 +475,53 @@ public class SOAPBodyImpl extends SOAPEl
public OMNode detach() {
this.parentElement = null;
- return this.target.detach();
+ return this.omTarget.detach();
}
public Iterator getChildElements(Name name) {
QName qName = new QName(name.getURI(), name.getLocalName());
- return getChildren(target.getChildrenWithName(qName));
+ return getChildren(omTarget.getChildrenWithName(qName));
}
public SOAPElement addAttribute(QName qname, String value) throws SOAPException {
- OMNamespace omNamespace = null;
- SOAPFactory soapFactory;
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
- soapFactory = new SOAP11Factory();
- omNamespace = soapFactory.createOMNamespace(qname.getNamespaceURI(), qname.getPrefix());
- } else if (this.target.getOMFactory() instanceof SOAP12Factory) {
- soapFactory = new SOAP12Factory();
- omNamespace = soapFactory.createOMNamespace(qname.getNamespaceURI(), qname.getPrefix());
- }
- this.target.addAttribute(qname.getLocalPart(), value, omNamespace);
+ OMNamespace omNamespace = this.omTarget.getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix());
+ this.omTarget.addAttribute(qname.getLocalPart(), value, omNamespace);
return this;
}
public SOAPElement addChildElement(QName qname) throws SOAPException {
- if (omSOAPBody.hasFault()) {
+ if (omTarget.hasFault()) {
throw new SOAPException("A SOAPFault has been already added to this SOAPBody");
}
- SOAPBodyElementImpl childEle;
+ SOAPBodyElementImpl<OMElement> childEle;
if (qname.getNamespaceURI() == null || "".equals(qname.getNamespaceURI())) {
- childEle = new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElement(qname.getLocalPart()));
+ childEle = new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElement(qname.getLocalPart()));
}else if(null == qname.getPrefix() || "".equals(qname.getPrefix().trim())) {
- childEle = new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElementNS(qname.getNamespaceURI(),
+ childEle = new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElementNS(qname.getNamespaceURI(),
qname.getLocalPart()));
}else {
- childEle = new SOAPBodyElementImpl(
- (ElementImpl)getOwnerDocument().createElementNS(qname.getNamespaceURI(),
+ childEle = new SOAPBodyElementImpl<OMElement>(
+ (OMElement)getOwnerDocument().createElementNS(qname.getNamespaceURI(),
qname.getPrefix() + ":" +
qname.getLocalPart()));
}
childEle.target.setUserData(SAAJ_NODE, childEle, null);
- childEle.target.setNamespace(target.getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix()));
+ childEle.omTarget.setNamespace(omTarget.getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix()));
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
isBodyElementAdded = true;
childEle.setParentElement(this);
return childEle;
}
public QName createQName(String localName, String prefix) throws SOAPException {
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
return super.createQName(localName, prefix);
- } else if (this.target.getOMFactory() instanceof SOAP12Factory) {
- if (this.target.findNamespaceURI(prefix) == null) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+ if (this.omTarget.findNamespaceURI(prefix) == null) {
throw new SOAPException("Only Namespace Qualified elements are allowed");
} else {
return super.createQName(localName, prefix);
@@ -598,7 +557,7 @@ public class SOAPBodyImpl extends SOAPEl
}
public Iterator getChildElements() {
- return getChildren(target.getChildren());
+ return getChildren(omTarget.getChildren());
}
public SOAPElement addTextNode(String text) throws SOAPException {
@@ -614,23 +573,18 @@ public class SOAPBodyImpl extends SOAPEl
childElements.add(saajNode);
} else if (!(saajNode instanceof SOAPBodyElement)) {
// silently replace node, as per saaj 1.2 spec
- if (domNode instanceof ElementImpl) {
- if (omSOAPBody.hasFault()) {
+ if (domNode instanceof Element) {
+ if (omTarget.hasFault()) {
- SOAPFactory omFactory = (SOAPFactory)this.target.getOMFactory();
- org.apache.axiom.soap.SOAPFault fault;
- if (omFactory instanceof SOAP11Factory) {
- fault = new SOAP11FaultImpl(omSOAPBody, omFactory);
- } else {
- fault = new SOAP12FaultImpl(omSOAPBody, omFactory);
- }
+ SOAPFactory omFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ org.apache.axiom.soap.SOAPFault fault = omFactory.createSOAPFault(omTarget);
SOAPFaultImpl saajSOAPFault = new SOAPFaultImpl(fault);
- ((NodeImpl)omSOAPBody.getFault())
+ ((Element)omTarget.getFault())
.setUserData(SAAJ_NODE, saajSOAPFault, null);
childElements.add(saajSOAPFault);
} else {
- SOAPBodyElement saajBodyEle = new SOAPBodyElementImpl((ElementImpl)domNode);
- ((NodeImpl)domNode).setUserData(SAAJ_NODE, saajBodyEle, null);
+ SOAPBodyElement saajBodyEle = new SOAPBodyElementImpl<OMElement>((OMElement)domNode);
+ domNode.setUserData(SAAJ_NODE, saajBodyEle, null);
childElements.add(saajBodyEle);
}
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Sat Jun 9 09:18:25 2012
@@ -21,18 +21,17 @@ package org.apache.axis2.saaj;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMContainer;
+import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.dom.DOMMessageFormatter;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.impl.dom.NodeImpl;
-import org.apache.axiom.om.impl.dom.TextImpl;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
+import org.apache.axiom.om.OMText;
+import org.apache.axiom.om.impl.OMElementEx;
+import org.apache.axiom.soap.SOAP11Version;
+import org.apache.axiom.soap.SOAP12Version;
+import org.apache.axiom.soap.SOAPFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -57,23 +56,23 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
-public class SOAPElementImpl extends SAAJNode<ElementImpl> implements SOAPElement {
+public class SOAPElementImpl<T extends OMElement> extends SAAJNode<Element,T> implements SOAPElement {
private String encodingStyle;
- public SOAPElementImpl(ElementImpl element) {
- super(element);
+ public SOAPElementImpl(T element) {
+ super((Element)element, element);
}
/* (non-Javadoc)
* @see org.apache.axiom.om.OMNode#discard()
*/
public void discard() throws OMException {
- target.discard();
+ omTarget.discard();
}
public void internalSerialize(javax.xml.stream.XMLStreamWriter writer, boolean cache)
throws XMLStreamException {
- target.internalSerialize(writer, cache);
+ ((OMElementEx)omTarget).internalSerialize(writer, cache);
}
/**
@@ -112,13 +111,13 @@ public class SOAPElementImpl extends SAA
String prefix = soapElement.getPrefix();
String localName = soapElement.getLocalName();
- SOAPElementImpl childEle;
+ SOAPElementImpl<OMElement> childEle;
if (namespaceURI == null || namespaceURI.trim().length() == 0) {
- childEle = new SOAPElementImpl((ElementImpl)getOwnerDocument().createElement(localName));
+ childEle = new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
} else {
- target.declareNamespace(namespaceURI, prefix);
+ omTarget.declareNamespace(namespaceURI, prefix);
childEle =
- new SOAPElementImpl((ElementImpl)getOwnerDocument().createElementNS(namespaceURI,
+ new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElementNS(namespaceURI,
localName));
}
@@ -138,10 +137,10 @@ public class SOAPElementImpl extends SAA
childEle.target.setUserData(SAAJ_NODE, childEle, null);
if (namespaceURI != null && namespaceURI.trim().length() > 0) {
- childEle.target.setNamespace(childEle.target.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
}
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -154,16 +153,16 @@ public class SOAPElementImpl extends SAA
if (prefix == null) {
prefix = "";
}
- SOAPElementImpl childEle =
- new SOAPElementImpl((ElementImpl)getOwnerDocument().
+ SOAPElementImpl<OMElement> childEle =
+ new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().
createElementNS(namespaceURI, prefix.length() == 0 ? localName : prefix + ":" + localName));
childEle.target.setUserData(SAAJ_NODE, childEle, null);
- childEle.target.setNamespace(prefix.length() == 0
- ? childEle.target.declareDefaultNamespace(namespaceURI)
- : childEle.target.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(prefix.length() == 0
+ ? childEle.omTarget.declareDefaultNamespace(namespaceURI)
+ : childEle.omTarget.declareNamespace(namespaceURI, prefix));
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -185,11 +184,11 @@ public class SOAPElementImpl extends SAA
* @see javax.xml.soap.SOAPElement#addChildElement(java.lang.String)
*/
public SOAPElement addChildElement(String localName) throws SOAPException {
- SOAPElementImpl childEle =
- new SOAPElementImpl((ElementImpl)getOwnerDocument().createElement(localName));
+ SOAPElementImpl<OMElement> childEle =
+ new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
childEle.target.setUserData(SAAJ_NODE, childEle, null);
target.appendChild(childEle.target);
- ((NodeImpl)childEle.target.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -199,9 +198,9 @@ public class SOAPElementImpl extends SAA
*/
public SOAPElement addNamespaceDeclaration(String prefix, String uri) throws SOAPException {
if (prefix == null || prefix.length() == 0) {
- target.declareDefaultNamespace(uri);
+ omTarget.declareDefaultNamespace(uri);
} else {
- target.declareNamespace(uri, prefix);
+ omTarget.declareNamespace(uri, prefix);
}
return this;
}
@@ -220,9 +219,9 @@ public class SOAPElementImpl extends SAA
//Therefore create a text node and add it
//TODO: May need to address the situation where the prev sibling of the textnode itself is a textnode
Text textNode = getOwnerDocument().createTextNode(text);
- NodeImpl node = ((NodeImpl)target.appendChild(textNode));
- TextImplEx saajTextNode = new TextImplEx((TextImpl)textNode, this);
- node.setUserData(SAAJ_NODE, saajTextNode, null);
+ target.appendChild(textNode);
+ TextImplEx saajTextNode = new TextImplEx((OMText)textNode, this);
+ textNode.setUserData(SAAJ_NODE, saajTextNode, null);
return this;
}
@@ -234,7 +233,7 @@ public class SOAPElementImpl extends SAA
* @return an iterator over the names of the attributes
*/
public Iterator getAllAttributes() {
- final Iterator attribIter = target.getAllAttributes();
+ final Iterator attribIter = omTarget.getAllAttributes();
Collection attribName = new ArrayList();
Attr attr;
while (attribIter.hasNext()) {
@@ -260,7 +259,7 @@ public class SOAPElementImpl extends SAA
public String getAttributeValue(Name name) {
//This method is waiting on the finalization of the name for a method
//in OMElement that returns a OMAttribute from an input QName
- final OMAttribute attribute = target.getAttribute(new QName(name.getURI(),
+ final OMAttribute attribute = omTarget.getAttribute(new QName(name.getURI(),
name.getLocalName(),
name.getPrefix()));
if (attribute == null) {
@@ -277,7 +276,7 @@ public class SOAPElementImpl extends SAA
* <CODE>SOAPElement</CODE> object
*/
public Iterator getChildElements() {
- Iterator childIter = target.getChildren();
+ Iterator childIter = omTarget.getChildren();
Collection childElements = new ArrayList();
while (childIter.hasNext()) {
childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -290,7 +289,7 @@ public class SOAPElementImpl extends SAA
*/
public Iterator getChildElements(Name name) {
QName qName = new QName(name.getURI(), name.getLocalName());
- Iterator childIter = target.getChildrenWithName(qName);
+ Iterator childIter = omTarget.getChildrenWithName(qName);
Collection childElements = new ArrayList();
while (childIter.hasNext()) {
childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -302,7 +301,7 @@ public class SOAPElementImpl extends SAA
* @see javax.xml.soap.SOAPElement#getElementName()
*/
public Name getElementName() {
- QName qName = target.getQName();
+ QName qName = omTarget.getQName();
return new PrefixedQName(qName.getNamespaceURI(),
qName.getLocalPart(),
qName.getPrefix());
@@ -321,7 +320,7 @@ public class SOAPElementImpl extends SAA
public Iterator getNamespacePrefixes() {
//Get all declared namespace, make a list of their prefixes and return an iterator over that list
ArrayList prefixList = new ArrayList();
- Iterator nsIter = target.getAllDeclaredNamespaces();
+ Iterator nsIter = omTarget.getAllDeclaredNamespaces();
while (nsIter.hasNext()) {
Object o = nsIter.next();
if (o instanceof org.apache.axiom.om.OMNamespace) {
@@ -336,7 +335,8 @@ public class SOAPElementImpl extends SAA
* @see javax.xml.soap.SOAPElement#getNamespaceURI(java.lang.String)
*/
public String getNamespaceURI(String prefix) {
- return target.getNamespaceURI(prefix);
+ OMNamespace ns = omTarget.findNamespaceURI(prefix);
+ return ns != null ? ns.getNamespaceURI() : null;
}
/* (non-Javadoc)
@@ -344,7 +344,7 @@ public class SOAPElementImpl extends SAA
*/
public Iterator getVisibleNamespacePrefixes() {
//I'll recursively return all the declared namespaces till this node, including its parents etc.
- Iterator namespacesIter = target.getAllDeclaredNamespaces();
+ Iterator namespacesIter = omTarget.getAllDeclaredNamespaces();
ArrayList returnList = new ArrayList();
while (namespacesIter.hasNext()) {
Object o = namespacesIter.next();
@@ -358,7 +358,7 @@ public class SOAPElementImpl extends SAA
//taken care of adding namespaces of this node.
//now we have to take care of adding the namespaces that are in the scope till the level of
//this nodes' parent.
- org.apache.axiom.om.OMContainer parent = target.getParent();
+ org.apache.axiom.om.OMContainer parent = omTarget.getParent();
if (parent != null && parent instanceof org.apache.axiom.om.OMElement) {
Iterator parentScopeNamespacesIter =
((org.apache.axiom.om.OMElement)parent).getAllDeclaredNamespaces();
@@ -407,7 +407,7 @@ public class SOAPElementImpl extends SAA
* @since SAAJ 1.3
*/
public QName createQName(String localName, String prefix) throws SOAPException {
- String namespaceURI = target.getNamespaceURI(prefix);
+ String namespaceURI = getNamespaceURI(prefix);
if (namespaceURI == null) {
throw new SOAPException("Invalid prefix");
} else {
@@ -416,7 +416,7 @@ public class SOAPElementImpl extends SAA
}
public Iterator getAllAttributesAsQNames() {
- final Iterator attribIter = target.getAllAttributes();
+ final Iterator attribIter = omTarget.getAllAttributes();
Collection attributesAsQNames = new ArrayList();
Attr attr;
QName qname;
@@ -430,7 +430,7 @@ public class SOAPElementImpl extends SAA
}
public String getAttributeValue(QName qname) {
- final OMAttribute attribute = target.getAttribute(qname);
+ final OMAttribute attribute = omTarget.getAttribute(qname);
if (attribute == null) {
return null;
}
@@ -438,7 +438,7 @@ public class SOAPElementImpl extends SAA
}
public Iterator getChildElements(QName qname) {
- Iterator childIter = target.getChildrenWithName(qname);
+ Iterator childIter = omTarget.getChildrenWithName(qname);
Collection childElements = new ArrayList();
while (childIter.hasNext()) {
childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -447,13 +447,13 @@ public class SOAPElementImpl extends SAA
}
public QName getElementQName() {
- return target.getQName();
+ return omTarget.getQName();
}
public boolean removeAttribute(QName qname) {
- org.apache.axiom.om.OMAttribute attr = target.getAttribute(qname);
+ org.apache.axiom.om.OMAttribute attr = omTarget.getAttribute(qname);
if (attr != null) {
- target.removeAttribute(attr);
+ omTarget.removeAttribute(attr);
return true;
}
return false;
@@ -467,9 +467,9 @@ public class SOAPElementImpl extends SAA
throw new SOAPException("changing this element name is not allowed");
}
OMNamespace omNamespace =
- target.getOMFactory().createOMNamespace(newName.getNamespaceURI(), newName.getPrefix());
- this.target.setNamespace(omNamespace);
- this.target.setLocalName(newName.getLocalPart());
+ omTarget.getOMFactory().createOMNamespace(newName.getNamespaceURI(), newName.getPrefix());
+ this.omTarget.setNamespace(omNamespace);
+ this.omTarget.setLocalName(newName.getLocalPart());
return this;
}
@@ -477,11 +477,11 @@ public class SOAPElementImpl extends SAA
* @see javax.xml.soap.SOAPElement#removeAttribute(javax.xml.soap.Name)
*/
public boolean removeAttribute(Name name) {
- org.apache.axiom.om.OMAttribute attr = target.getAttribute(new QName(name.getURI(),
+ org.apache.axiom.om.OMAttribute attr = omTarget.getAttribute(new QName(name.getURI(),
name.getLocalName(),
name.getPrefix()));
if (attr != null) {
- target.removeAttribute(attr);
+ omTarget.removeAttribute(attr);
return true;
}
return false;
@@ -492,7 +492,7 @@ public class SOAPElementImpl extends SAA
*/
public void removeContents() {
//We will get all the children and iteratively call the detach() on all of 'em.
- Iterator childIter = target.getChildElements();
+ Iterator childIter = omTarget.getChildElements();
while (childIter.hasNext()) {
childIter.next();
childIter.remove();
@@ -503,7 +503,13 @@ public class SOAPElementImpl extends SAA
* @see javax.xml.soap.SOAPElement#removeNamespaceDeclaration(java.lang.String)
*/
public boolean removeNamespaceDeclaration(String prefix) {
- return target.removeNamespace(prefix);
+ for (Iterator<OMNamespace> it = omTarget.getAllDeclaredNamespaces(); it.hasNext(); ) {
+ if (it.next().getPrefix().equals(prefix)) {
+ it.remove();
+ return true;
+ }
+ }
+ return false;
}
@@ -516,7 +522,7 @@ public class SOAPElementImpl extends SAA
* the encodingStyle is invalid for this SOAPElement.
*/
public void setEncodingStyle(String encodingStyle) throws SOAPException {
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
try {
URI uri = new URI(encodingStyle);
if (!(this instanceof SOAPEnvelope)) {
@@ -530,7 +536,7 @@ public class SOAPElementImpl extends SAA
throw new IllegalArgumentException("Invalid Encoding style : "
+ encodingStyle + ":" + e);
}
- } else if (this.target.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
if (this instanceof SOAPHeader || this instanceof SOAPBody ||
this instanceof SOAPFault ||
this instanceof SOAPFaultElement || this instanceof SOAPEnvelope ||
@@ -544,7 +550,7 @@ public class SOAPElementImpl extends SAA
* @see org.apache.axiom.om.impl.OMNodeEx#setParent(org.apache.axiom.om.OMContainer)
*/
public void setParent(OMContainer parentElement) {
- target.setParent(parentElement);
+ ((OMElementEx)omTarget).setParent(parentElement);
}
/* (non-Javadoc)
@@ -681,7 +687,7 @@ public class SOAPElementImpl extends SAA
public void setParentElement(SOAPElement parent) throws SOAPException {
this.parentElement = parent;
- this.target.setParent(((SOAPElementImpl)parent).target);
+ ((OMElementEx)this.omTarget).setParent(((SOAPElementImpl<? extends OMElement>)parent).omTarget);
}
/**
@@ -693,14 +699,14 @@ public class SOAPElementImpl extends SAA
* <code>null</code> otherwise
*/
public String getValue() {
- if (target.getType() == OMNode.TEXT_NODE) {
- return target.getText();
- } else if (target.getType() == OMNode.ELEMENT_NODE) {
- final OMNode firstOMChild = target.getFirstOMChild();
- if (firstOMChild instanceof TextImpl) {
- return ((TextImpl)firstOMChild).getData();
+ if (omTarget.getType() == OMNode.TEXT_NODE) {
+ return omTarget.getText();
+ } else if (omTarget.getType() == OMNode.ELEMENT_NODE) {
+ final OMNode firstOMChild = omTarget.getFirstOMChild();
+ if (firstOMChild instanceof Text) {
+ return ((Text)firstOMChild).getData();
} else if (firstOMChild instanceof SOAPElementImpl) {
- return ((SOAPElementImpl)firstOMChild).getValue();
+ return ((SOAPElement)firstOMChild).getValue();
}
}
return null;
@@ -745,7 +751,7 @@ public class SOAPElementImpl extends SAA
* child node or has a child node that is not a Text node
*/
public void setValue(String value) {
- OMNode firstChild = target.getFirstOMChild();
+ OMNode firstChild = omTarget.getFirstOMChild();
if (firstChild == null) {
try {
this.addTextNode(value);
@@ -767,7 +773,7 @@ public class SOAPElementImpl extends SAA
}
public OMNode detach() {
- OMNode omNode = this.target.detach();
+ OMNode omNode = this.omTarget.detach();
this.parentElement = null;
return omNode;
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java Sat Jun 9 09:18:25 2012
@@ -20,14 +20,11 @@
package org.apache.axis2.saaj;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.dom.NodeImpl;
-import org.apache.axiom.om.impl.dom.TextImpl;
+import org.apache.axiom.soap.SOAP11Version;
+import org.apache.axiom.soap.SOAP12Version;
+import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11BodyImpl;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderImpl;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12HeaderImpl;
+import org.w3c.dom.Element;
import org.w3c.dom.Node;
import javax.xml.soap.Name;
@@ -39,18 +36,12 @@ import javax.xml.soap.SOAPHeader;
/**
*
*/
-public class SOAPEnvelopeImpl extends SOAPElementImpl implements javax.xml.soap.SOAPEnvelope {
+public class SOAPEnvelopeImpl extends SOAPElementImpl<SOAPEnvelope> implements javax.xml.soap.SOAPEnvelope {
- private org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl omSOAPEnvelope;
private SOAPPartImpl soapPart;
- public SOAPEnvelopeImpl(final org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl envelope) {
+ public SOAPEnvelopeImpl(SOAPEnvelope envelope) {
super(envelope);
- omSOAPEnvelope = envelope;
- }
-
- public org.apache.axiom.soap.SOAPEnvelope getOMEnvelope() {
- return omSOAPEnvelope;
}
/**
@@ -104,7 +95,7 @@ public class SOAPEnvelopeImpl extends SO
* object
*/
public SOAPHeader getHeader() throws SOAPException {
- return (SOAPHeader)toSAAJNode((org.w3c.dom.Node)omSOAPEnvelope.getHeader());
+ return (SOAPHeader)toSAAJNode((org.w3c.dom.Node)omTarget.getHeader());
}
/**
@@ -122,7 +113,7 @@ public class SOAPEnvelopeImpl extends SO
* object
*/
public SOAPBody getBody() throws SOAPException {
- return (SOAPBody)toSAAJNode((org.w3c.dom.Node)omSOAPEnvelope.getBody());
+ return (SOAPBody)toSAAJNode((org.w3c.dom.Node)omTarget.getBody());
}
/**
@@ -137,21 +128,13 @@ public class SOAPEnvelopeImpl extends SO
* contains a valid <CODE>SOAPHeader</CODE> object
*/
public SOAPHeader addHeader() throws SOAPException {
- org.apache.axiom.soap.SOAPHeader header = omSOAPEnvelope.getHeader();
+ org.apache.axiom.soap.SOAPHeader header = omTarget.getHeader();
if (header == null) {
SOAPHeaderImpl saajSOAPHeader;
- if (this.target.getOMFactory() instanceof SOAP11Factory) {
- header = new SOAP11HeaderImpl(omSOAPEnvelope,
- (SOAPFactory)this.target.getOMFactory());
- saajSOAPHeader = new SOAPHeaderImpl(header);
- saajSOAPHeader.setParentElement(this);
- } else {
- header = new SOAP12HeaderImpl(omSOAPEnvelope,
- (SOAPFactory)this.target.getOMFactory());
- saajSOAPHeader = new SOAPHeaderImpl(header);
- saajSOAPHeader.setParentElement(this);
- }
- ((NodeImpl)omSOAPEnvelope.getHeader()).setUserData(SAAJ_NODE, saajSOAPHeader, null);
+ header = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPHeader(omTarget);
+ saajSOAPHeader = new SOAPHeaderImpl(header);
+ saajSOAPHeader.setParentElement(this);
+ ((Element)omTarget.getHeader()).setUserData(SAAJ_NODE, saajSOAPHeader, null);
return saajSOAPHeader;
} else {
throw new SOAPException("Header already present, can't set header again without " +
@@ -172,12 +155,12 @@ public class SOAPEnvelopeImpl extends SO
* contains a valid <CODE>SOAPBody</CODE> object
*/
public SOAPBody addBody() throws SOAPException {
- org.apache.axiom.soap.SOAPBody body = omSOAPEnvelope.getBody();
+ org.apache.axiom.soap.SOAPBody body = omTarget.getBody();
if (body == null) {
- body = new SOAP11BodyImpl(omSOAPEnvelope, (SOAPFactory)this.target.getOMFactory());
+ body = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPBody(omTarget);
SOAPBodyImpl saajSOAPBody = new SOAPBodyImpl(body);
saajSOAPBody.setParentElement(this);
- ((NodeImpl)omSOAPEnvelope.getBody()).setUserData(SAAJ_NODE, saajSOAPBody, null);
+ ((Element)omTarget.getBody()).setUserData(SAAJ_NODE, saajSOAPBody, null);
return saajSOAPBody;
} else {
throw new SOAPException("Body already present, can't set body again without " +
@@ -191,11 +174,7 @@ public class SOAPEnvelopeImpl extends SO
((org.w3c.dom.Text)firstChild).setData(text);
} else {
// Else this is a header
- TextImpl doomText = new TextImpl(text, this.target.getOMFactory());
- doomText.setNextOMSibling((OMNode)firstChild);
- doomText.setPreviousOMSibling(null);
- target.setFirstChild(doomText);
- ((NodeImpl)firstChild).setPreviousOMSibling(doomText);
+ ((OMNode)firstChild).insertSiblingBefore(this.omTarget.getOMFactory().createOMText(text));
}
return this;
}
@@ -205,7 +184,7 @@ public class SOAPEnvelopeImpl extends SO
* on Envelop
*/
public SOAPElement addAttribute(Name name, String value) throws SOAPException {
- if (this.target.getOMFactory() instanceof SOAP12Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
if ("encodingStyle".equals(name.getLocalName())) {
throw new SOAPException(
"SOAP1.2 does not allow encodingStyle attribute to be set " +
@@ -220,9 +199,9 @@ public class SOAPEnvelopeImpl extends SO
* element
*/
public SOAPElement addChildElement(Name name) throws SOAPException {
- if (this.target.getOMFactory() instanceof SOAP12Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
throw new SOAPException("Cannot add elements after body element");
- } else if (this.target.getOMFactory() instanceof SOAP11Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
//Let elements to be added any where.
return super.addChildElement(name);
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java Sat Jun 9 09:18:25 2012
@@ -19,11 +19,11 @@
package org.apache.axis2.saaj;
+import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
import org.w3c.dom.Element;
import javax.xml.namespace.QName;
@@ -40,6 +40,7 @@ import java.util.Locale;
*
*/
public class SOAPFactoryImpl extends SOAPFactory {
+ private final DOMMetaFactory metaFactory = (DOMMetaFactory)OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
protected String soapVersion = SOAPConstants.SOAP_1_1_PROTOCOL;
@@ -58,14 +59,14 @@ public class SOAPFactoryImpl extends SOA
String uri = name.getURI();
OMElement omElement = null;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- omElement = DOOMAbstractFactory.getSOAP12Factory().createOMElement(localName
+ omElement = metaFactory.getSOAP12Factory().createOMElement(localName
, uri, prefix);
} else {
- omElement = DOOMAbstractFactory.getSOAP11Factory().createOMElement(localName
+ omElement = metaFactory.getSOAP11Factory().createOMElement(localName
, uri, prefix);
}
- DOOMAbstractFactory.getOMFactory().createOMElement(localName, uri, prefix);
- return new SOAPElementImpl((ElementImpl)omElement);
+ metaFactory.getOMFactory().createOMElement(localName, uri, prefix);
+ return new SOAPElementImpl<OMElement>(omElement);
}
/**
@@ -77,14 +78,14 @@ public class SOAPFactoryImpl extends SOA
* object
*/
public SOAPElement createElement(String localName) throws SOAPException {
- OMDOMFactory omdomFactory = null;
+ OMFactory omFactory = null;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- omdomFactory = (OMDOMFactory)DOOMAbstractFactory.getSOAP12Factory();
+ omFactory = metaFactory.getSOAP12Factory();
} else {
- omdomFactory = (OMDOMFactory)DOOMAbstractFactory.getSOAP11Factory();
+ omFactory = metaFactory.getSOAP11Factory();
}
- OMElement omElement = omdomFactory.createOMElement(new QName(localName));
- return new SOAPElementImpl((ElementImpl)omElement);
+ OMElement omElement = omFactory.createOMElement(new QName(localName));
+ return new SOAPElementImpl<OMElement>(omElement);
}
/**
@@ -102,13 +103,13 @@ public class SOAPFactoryImpl extends SOA
throws SOAPException {
OMElement omElement = null;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- omElement = DOOMAbstractFactory.getSOAP12Factory().createOMElement(localName
+ omElement = metaFactory.getSOAP12Factory().createOMElement(localName
, uri, prefix);
} else {
- omElement = DOOMAbstractFactory.getSOAP11Factory().createOMElement(localName
+ omElement = metaFactory.getSOAP11Factory().createOMElement(localName
, uri, prefix);
}
- return new SOAPElementImpl((ElementImpl)omElement);
+ return new SOAPElementImpl<OMElement>(omElement);
}
/**
@@ -123,9 +124,9 @@ public class SOAPFactoryImpl extends SOA
*/
public Detail createDetail() throws SOAPException {
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- return new DetailImpl(DOOMAbstractFactory.getSOAP12Factory().createSOAPFaultDetail());
+ return new DetailImpl(metaFactory.getSOAP12Factory().createSOAPFaultDetail());
} else {
- return new DetailImpl(DOOMAbstractFactory.getSOAP11Factory().createSOAPFaultDetail());
+ return new DetailImpl(metaFactory.getSOAP11Factory().createSOAPFaultDetail());
}
}
@@ -170,10 +171,10 @@ public class SOAPFactoryImpl extends SOA
public SOAPFault createFault() throws SOAPException {
org.apache.axiom.soap.SOAPFactory soapFactory;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- soapFactory = DOOMAbstractFactory.getSOAP12Factory();
+ soapFactory = metaFactory.getSOAP12Factory();
return new SOAPFaultImpl(soapFactory.createSOAPFault());
} else {
- soapFactory = DOOMAbstractFactory.getSOAP11Factory();
+ soapFactory = metaFactory.getSOAP11Factory();
return new SOAPFaultImpl(soapFactory.createSOAPFault());
}
}
@@ -189,10 +190,10 @@ public class SOAPFactoryImpl extends SOA
public SOAPFault createFault(String reasonText, QName faultCode) throws SOAPException {
SOAPFault soapFault;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- soapFault = new SOAPFaultImpl(DOOMAbstractFactory.getSOAP12Factory()
+ soapFault = new SOAPFaultImpl(metaFactory.getSOAP12Factory()
.createSOAPFault());
} else {
- soapFault = new SOAPFaultImpl(DOOMAbstractFactory.getSOAP11Factory()
+ soapFault = new SOAPFaultImpl(metaFactory.getSOAP11Factory()
.createSOAPFault());
}
soapFault.setFaultCode(faultCode);
@@ -214,25 +215,25 @@ public class SOAPFactoryImpl extends SOA
String localName = qname.getLocalPart();
String prefix = qname.getPrefix();
String uri = qname.getNamespaceURI();
- OMElement omElement = DOOMAbstractFactory.getOMFactory().createOMElement(localName
+ OMElement omElement = metaFactory.getOMFactory().createOMElement(localName
, uri, prefix);
- return new SOAPElementImpl((ElementImpl)omElement);
+ return new SOAPElementImpl<OMElement>(omElement);
}
public SOAPElement createElement(Element element) throws SOAPException {
- OMDOMFactory omdomFactory = null;
+ OMFactory omFactory = null;
if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
- omdomFactory = (OMDOMFactory)DOOMAbstractFactory.getSOAP12Factory();
+ omFactory = metaFactory.getSOAP12Factory();
} else {
- omdomFactory = (OMDOMFactory)DOOMAbstractFactory.getSOAP11Factory();
+ omFactory = metaFactory.getSOAP11Factory();
}
String prefix = element.getPrefix();
if (prefix == null) {
prefix = "";
}
- OMNamespace ns = omdomFactory.createOMNamespace(element.getNamespaceURI(), prefix);
- OMElement omElement = omdomFactory.createOMElement(element.getLocalName(), ns);
- return new SOAPElementImpl((ElementImpl)omElement);
+ OMNamespace ns = omFactory.createOMNamespace(element.getNamespaceURI(), prefix);
+ OMElement omElement = omFactory.createOMElement(element.getLocalName(), ns);
+ return new SOAPElementImpl<OMElement>(omElement);
}
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java?rev=1348340&r1=1348339&r2=1348340&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java Sat Jun 9 09:18:25 2012
@@ -19,15 +19,15 @@
package org.apache.axis2.saaj;
-import org.apache.axiom.om.impl.dom.ElementImpl;
+import org.apache.axiom.om.OMElement;
import javax.xml.soap.SOAPFaultElement;
-public class SOAPFaultElementImpl extends SOAPElementImpl implements
+public class SOAPFaultElementImpl<T extends OMElement> extends SOAPElementImpl<T> implements
SOAPFaultElement {
/** @param element */
- public SOAPFaultElementImpl(ElementImpl element) {
+ public SOAPFaultElementImpl(T element) {
super(element);
}