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/08/26 23:42:36 UTC
svn commit: r1377526 [2/3] - in /axis/axis2/java/core/branches/1_6: ./
modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/ modules/saaj/
modules/saaj/src/org/apache/axis2/saaj/
modules/saaj/src/org/apache/axis2/saaj/util/ modules/saaj/test/org/...
Modified: axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?rev=1377526&r1=1377525&r2=1377526&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Sun Aug 26 21:42:35 2012
@@ -21,20 +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.OMNamespaceImpl;
-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.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
-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;
@@ -59,30 +56,23 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
-public class SOAPElementImpl extends NodeImplEx implements SOAPElement {
-
- /**
- * Using a delegate because we can't extend from org.apache.axiom.om.impl.dom.ElementImpl since
- * this class must extend SNodeImpl
- */
- protected ElementImpl element;
+public class SOAPElementImpl<T extends OMElement> extends SAAJNode<Element,T> implements SOAPElement {
private String encodingStyle;
- public SOAPElementImpl(ElementImpl element) {
- super(element.getOMFactory());
- this.element = element;
+ public SOAPElementImpl(T element) {
+ super((Element)element, element);
}
/* (non-Javadoc)
* @see org.apache.axiom.om.OMNode#discard()
*/
public void discard() throws OMException {
- element.discard();
+ omTarget.discard();
}
public void internalSerialize(javax.xml.stream.XMLStreamWriter writer, boolean cache)
throws XMLStreamException {
- element.internalSerialize(writer, cache);
+ ((OMElementEx)omTarget).internalSerialize(writer, cache);
}
/**
@@ -96,9 +86,9 @@ public class SOAPElementImpl extends Nod
*/
public SOAPElement addAttribute(Name name, String value) throws SOAPException {
if (name.getURI() == null || name.getURI().trim().length() == 0) {
- element.setAttribute(name.getLocalName(), value);
+ target.setAttribute(name.getLocalName(), value);
} else {
- element.setAttributeNS(name.getURI(), name.getPrefix() + ":" + name.getLocalName(),
+ target.setAttributeNS(name.getURI(), name.getPrefix() + ":" + name.getLocalName(),
value);
}
return this;
@@ -121,13 +111,13 @@ public class SOAPElementImpl extends Nod
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 {
- element.declareNamespace(namespaceURI, prefix);
+ omTarget.declareNamespace(namespaceURI, prefix);
childEle =
- new SOAPElementImpl((ElementImpl)getOwnerDocument().createElementNS(namespaceURI,
+ new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElementNS(namespaceURI,
localName));
}
@@ -145,31 +135,16 @@ public class SOAPElementImpl extends Nod
}
}
- childEle.element.setUserData(SAAJ_NODE, childEle, null);
+ childEle.target.setUserData(SAAJ_NODE, childEle, null);
if (namespaceURI != null && namespaceURI.trim().length() > 0) {
- childEle.element.setNamespace(childEle.element.declareNamespace(namespaceURI, prefix));
+ childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
}
- element.appendChild(childEle.element);
- ((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ target.appendChild(childEle.target);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
- public String getLocalName() {
- return element.getLocalName();
- }
-
- public String getNamespaceURI() {
- return element.getNamespaceURI();
- }
-
- /*
- * Overidden in ElementImpl and AttrImpl.
- */
- public String getPrefix() {
- return element.getPrefix();
- }
-
/* (non-Javadoc)
* @see javax.xml.soap.SOAPElement#addChildElement(java.lang.String, java.lang.String, java.lang.String)
*/
@@ -178,16 +153,16 @@ public class SOAPElementImpl extends Nod
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.element.setUserData(SAAJ_NODE, childEle, null);
- childEle.element.setNamespace(prefix.length() == 0
- ? childEle.element.declareDefaultNamespace(namespaceURI)
- : childEle.element.declareNamespace(namespaceURI, prefix));
- element.appendChild(childEle.element);
- ((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ childEle.target.setUserData(SAAJ_NODE, childEle, null);
+ childEle.omTarget.setNamespace(prefix.length() == 0
+ ? childEle.omTarget.declareDefaultNamespace(namespaceURI)
+ : childEle.omTarget.declareNamespace(namespaceURI, prefix));
+ target.appendChild(childEle.target);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -209,11 +184,11 @@ public class SOAPElementImpl extends Nod
* @see javax.xml.soap.SOAPElement#addChildElement(java.lang.String)
*/
public SOAPElement addChildElement(String localName) throws SOAPException {
- SOAPElementImpl childEle =
- new SOAPElementImpl((ElementImpl)getOwnerDocument().createElement(localName));
- childEle.element.setUserData(SAAJ_NODE, childEle, null);
- element.appendChild(childEle.element);
- ((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
+ SOAPElementImpl<OMElement> childEle =
+ new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
+ childEle.target.setUserData(SAAJ_NODE, childEle, null);
+ target.appendChild(childEle.target);
+ childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
childEle.setParentElement(this);
return childEle;
}
@@ -223,9 +198,9 @@ public class SOAPElementImpl extends Nod
*/
public SOAPElement addNamespaceDeclaration(String prefix, String uri) throws SOAPException {
if (prefix == null || prefix.length() == 0) {
- element.declareDefaultNamespace(uri);
+ omTarget.declareDefaultNamespace(uri);
} else {
- element.declareNamespace(uri, prefix);
+ omTarget.declareNamespace(uri, prefix);
}
return this;
}
@@ -244,9 +219,9 @@ public class SOAPElementImpl extends Nod
//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)element.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;
}
@@ -258,7 +233,7 @@ public class SOAPElementImpl extends Nod
* @return an iterator over the names of the attributes
*/
public Iterator getAllAttributes() {
- final Iterator attribIter = element.getAllAttributes();
+ final Iterator attribIter = omTarget.getAllAttributes();
Collection attribName = new ArrayList();
Attr attr;
while (attribIter.hasNext()) {
@@ -284,7 +259,7 @@ public class SOAPElementImpl extends Nod
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 = element.getAttribute(new QName(name.getURI(),
+ final OMAttribute attribute = omTarget.getAttribute(new QName(name.getURI(),
name.getLocalName(),
name.getPrefix()));
if (attribute == null) {
@@ -301,7 +276,7 @@ public class SOAPElementImpl extends Nod
* <CODE>SOAPElement</CODE> object
*/
public Iterator getChildElements() {
- Iterator childIter = element.getChildren();
+ Iterator childIter = omTarget.getChildren();
Collection childElements = new ArrayList();
while (childIter.hasNext()) {
childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -314,7 +289,7 @@ public class SOAPElementImpl extends Nod
*/
public Iterator getChildElements(Name name) {
QName qName = new QName(name.getURI(), name.getLocalName());
- Iterator childIter = element.getChildrenWithName(qName);
+ Iterator childIter = omTarget.getChildrenWithName(qName);
Collection childElements = new ArrayList();
while (childIter.hasNext()) {
childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -326,7 +301,7 @@ public class SOAPElementImpl extends Nod
* @see javax.xml.soap.SOAPElement#getElementName()
*/
public Name getElementName() {
- QName qName = element.getQName();
+ QName qName = omTarget.getQName();
return new PrefixedQName(qName.getNamespaceURI(),
qName.getLocalPart(),
qName.getPrefix());
@@ -345,7 +320,7 @@ public class SOAPElementImpl extends Nod
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 = element.getAllDeclaredNamespaces();
+ Iterator nsIter = omTarget.getAllDeclaredNamespaces();
while (nsIter.hasNext()) {
Object o = nsIter.next();
if (o instanceof org.apache.axiom.om.OMNamespace) {
@@ -360,7 +335,8 @@ public class SOAPElementImpl extends Nod
* @see javax.xml.soap.SOAPElement#getNamespaceURI(java.lang.String)
*/
public String getNamespaceURI(String prefix) {
- return element.getNamespaceURI(prefix);
+ OMNamespace ns = omTarget.findNamespaceURI(prefix);
+ return ns != null ? ns.getNamespaceURI() : null;
}
/* (non-Javadoc)
@@ -368,7 +344,7 @@ public class SOAPElementImpl extends Nod
*/
public Iterator getVisibleNamespacePrefixes() {
//I'll recursively return all the declared namespaces till this node, including its parents etc.
- Iterator namespacesIter = element.getAllDeclaredNamespaces();
+ Iterator namespacesIter = omTarget.getAllDeclaredNamespaces();
ArrayList returnList = new ArrayList();
while (namespacesIter.hasNext()) {
Object o = namespacesIter.next();
@@ -382,7 +358,7 @@ public class SOAPElementImpl extends Nod
//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 = element.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();
@@ -402,9 +378,9 @@ public class SOAPElementImpl extends Nod
public SOAPElement addAttribute(QName qname, String value) throws SOAPException {
if (qname.getNamespaceURI() == null || qname.getNamespaceURI().trim().length() == 0) {
- element.setAttribute(qname.getLocalPart(), value);
+ target.setAttribute(qname.getLocalPart(), value);
} else {
- element.setAttributeNS(qname.getNamespaceURI(), qname.getPrefix() + ":" +
+ target.setAttributeNS(qname.getNamespaceURI(), qname.getPrefix() + ":" +
qname.getLocalPart(), value);
}
return this;
@@ -431,7 +407,7 @@ public class SOAPElementImpl extends Nod
* @since SAAJ 1.3
*/
public QName createQName(String localName, String prefix) throws SOAPException {
- String namespaceURI = element.getNamespaceURI(prefix);
+ String namespaceURI = getNamespaceURI(prefix);
if (namespaceURI == null) {
throw new SOAPException("Invalid prefix");
} else {
@@ -440,7 +416,7 @@ public class SOAPElementImpl extends Nod
}
public Iterator getAllAttributesAsQNames() {
- final Iterator attribIter = element.getAllAttributes();
+ final Iterator attribIter = omTarget.getAllAttributes();
Collection attributesAsQNames = new ArrayList();
Attr attr;
QName qname;
@@ -454,7 +430,7 @@ public class SOAPElementImpl extends Nod
}
public String getAttributeValue(QName qname) {
- final OMAttribute attribute = element.getAttribute(qname);
+ final OMAttribute attribute = omTarget.getAttribute(qname);
if (attribute == null) {
return null;
}
@@ -462,7 +438,7 @@ public class SOAPElementImpl extends Nod
}
public Iterator getChildElements(QName qname) {
- Iterator childIter = element.getChildrenWithName(qname);
+ Iterator childIter = omTarget.getChildrenWithName(qname);
Collection childElements = new ArrayList();
while (childIter.hasNext()) {
childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -471,29 +447,29 @@ public class SOAPElementImpl extends Nod
}
public QName getElementQName() {
- return element.getQName();
+ return omTarget.getQName();
}
public boolean removeAttribute(QName qname) {
- org.apache.axiom.om.OMAttribute attr = element.getAttribute(qname);
+ org.apache.axiom.om.OMAttribute attr = omTarget.getAttribute(qname);
if (attr != null) {
- element.removeAttribute(attr);
+ omTarget.removeAttribute(attr);
return true;
}
return false;
}
public SOAPElement setElementQName(QName newName) throws SOAPException {
- String localName = this.element.getLocalName();
+ String localName = this.target.getLocalName();
if (org.apache.axiom.soap.SOAPConstants.BODY_LOCAL_NAME.equals(localName)
|| org.apache.axiom.soap.SOAPConstants.HEADER_LOCAL_NAME.equals(localName)
|| org.apache.axiom.soap.SOAPConstants.SOAPENVELOPE_LOCAL_NAME .equals(localName)) {
throw new SOAPException("changing this element name is not allowed");
}
OMNamespace omNamespace =
- new OMNamespaceImpl(newName.getNamespaceURI(), newName.getPrefix());
- this.element.setNamespace(omNamespace);
- this.element.setLocalName(newName.getLocalPart());
+ omTarget.getOMFactory().createOMNamespace(newName.getNamespaceURI(), newName.getPrefix());
+ this.omTarget.setNamespace(omNamespace);
+ this.omTarget.setLocalName(newName.getLocalPart());
return this;
}
@@ -501,11 +477,11 @@ public class SOAPElementImpl extends Nod
* @see javax.xml.soap.SOAPElement#removeAttribute(javax.xml.soap.Name)
*/
public boolean removeAttribute(Name name) {
- org.apache.axiom.om.OMAttribute attr = element.getAttribute(new QName(name.getURI(),
+ org.apache.axiom.om.OMAttribute attr = omTarget.getAttribute(new QName(name.getURI(),
name.getLocalName(),
name.getPrefix()));
if (attr != null) {
- element.removeAttribute(attr);
+ omTarget.removeAttribute(attr);
return true;
}
return false;
@@ -516,7 +492,7 @@ public class SOAPElementImpl extends Nod
*/
public void removeContents() {
//We will get all the children and iteratively call the detach() on all of 'em.
- Iterator childIter = element.getChildElements();
+ Iterator childIter = omTarget.getChildElements();
while (childIter.hasNext()) {
childIter.next();
childIter.remove();
@@ -527,7 +503,13 @@ public class SOAPElementImpl extends Nod
* @see javax.xml.soap.SOAPElement#removeNamespaceDeclaration(java.lang.String)
*/
public boolean removeNamespaceDeclaration(String prefix) {
- return element.removeNamespace(prefix);
+ for (Iterator<OMNamespace> it = omTarget.getAllDeclaredNamespaces(); it.hasNext(); ) {
+ if (it.next().getPrefix().equals(prefix)) {
+ it.remove();
+ return true;
+ }
+ }
+ return false;
}
@@ -540,7 +522,7 @@ public class SOAPElementImpl extends Nod
* the encodingStyle is invalid for this SOAPElement.
*/
public void setEncodingStyle(String encodingStyle) throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
try {
URI uri = new URI(encodingStyle);
if (!(this instanceof SOAPEnvelope)) {
@@ -554,7 +536,7 @@ public class SOAPElementImpl extends Nod
throw new IllegalArgumentException("Invalid Encoding style : "
+ encodingStyle + ":" + e);
}
- } else if (this.element.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 ||
@@ -568,112 +550,112 @@ public class SOAPElementImpl extends Nod
* @see org.apache.axiom.om.impl.OMNodeEx#setParent(org.apache.axiom.om.OMContainer)
*/
public void setParent(OMContainer parentElement) {
- element.setParent(parentElement);
+ ((OMElementEx)omTarget).setParent(parentElement);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getAttribute(java.lang.String)
*/
public String getAttribute(String name) {
- return element.getAttribute(name);
+ return target.getAttribute(name);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getAttributeNode(java.lang.String)
*/
public Attr getAttributeNode(String name) {
- return element.getAttributeNode(name);
+ return target.getAttributeNode(name);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getAttributeNodeNS(java.lang.String, java.lang.String)
*/
public Attr getAttributeNodeNS(String namespaceURI, String localName) {
- return element.getAttributeNodeNS(namespaceURI, localName);
+ return target.getAttributeNodeNS(namespaceURI, localName);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getAttributeNS(java.lang.String, java.lang.String)
*/
public String getAttributeNS(String namespaceURI, String localName) {
- return element.getAttributeNS(namespaceURI, localName);
+ return target.getAttributeNS(namespaceURI, localName);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getElementsByTagName(java.lang.String)
*/
public NodeList getElementsByTagName(String name) {
- return toSAAJNodeList(element.getElementsByTagName(name));
+ return toSAAJNodeList(target.getElementsByTagName(name));
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getElementsByTagNameNS(java.lang.String, java.lang.String)
*/
public NodeList getElementsByTagNameNS(String namespaceURI, String localName) {
- return toSAAJNodeList(element.getElementsByTagNameNS(namespaceURI, localName));
+ return toSAAJNodeList(target.getElementsByTagNameNS(namespaceURI, localName));
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#getTagName()
*/
public String getTagName() {
- return element.getTagName();
+ return target.getTagName();
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#hasAttribute(java.lang.String)
*/
public boolean hasAttribute(String name) {
- return element.hasAttribute(name);
+ return target.hasAttribute(name);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#hasAttributeNS(java.lang.String, java.lang.String)
*/
public boolean hasAttributeNS(String namespaceURI, String localName) {
- return element.hasAttributeNS(namespaceURI, localName);
+ return target.hasAttributeNS(namespaceURI, localName);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#removeAttribute(java.lang.String)
*/
public void removeAttribute(String name) throws DOMException {
- element.removeAttribute(name);
+ target.removeAttribute(name);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#removeAttributeNode(org.w3c.dom.Attr)
*/
public Attr removeAttributeNode(Attr attr) throws DOMException {
- return element.removeAttributeNode(attr);
+ return target.removeAttributeNode(attr);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#removeAttributeNS(java.lang.String, java.lang.String)
*/
public void removeAttributeNS(String namespaceURI, String localName) throws DOMException {
- element.removeAttributeNS(namespaceURI, localName);
+ target.removeAttributeNS(namespaceURI, localName);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String)
*/
public void setAttribute(String name, String value) throws DOMException {
- element.setAttribute(name, value);
+ target.setAttribute(name, value);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr)
*/
public Attr setAttributeNode(Attr attr) throws DOMException {
- return element.setAttributeNode(attr);
+ return target.setAttributeNode(attr);
}
/* (non-Javadoc)
* @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr)
*/
public Attr setAttributeNodeNS(Attr attr) throws DOMException {
- return element.setAttributeNodeNS(attr);
+ return target.setAttributeNodeNS(attr);
}
/* (non-Javadoc)
@@ -681,25 +663,7 @@ public class SOAPElementImpl extends Nod
*/
public void setAttributeNS(String namespaceURI,
String qualifiedName, String value) throws DOMException {
- element.setAttributeNS(namespaceURI, qualifiedName, value);
- }
-
- /* (non-Javadoc)
- * @see org.w3c.dom.Node#getNodeName()
- */
- public String getNodeName() {
- return element.getNodeName();
- }
-
- /* (non-Javadoc)
- * @see org.w3c.dom.Node#getNodeType()
- */
- public short getNodeType() {
- return Node.ELEMENT_NODE;
- }
-
- public ElementImpl getElement() {
- return element;
+ target.setAttributeNS(namespaceURI, qualifiedName, value);
}
/**
@@ -713,7 +677,7 @@ public class SOAPElementImpl extends Nod
*/
public SOAPElement getParentElement() {
if (this.parentElement == null) {
- javax.xml.soap.Node parentNode = toSAAJNode(element.getParentNode());
+ javax.xml.soap.Node parentNode = toSAAJNode(target.getParentNode());
if (parentNode instanceof SOAPElement) {
this.parentElement = (SOAPElement) parentNode;
}
@@ -723,15 +687,7 @@ public class SOAPElementImpl extends Nod
public void setParentElement(SOAPElement parent) throws SOAPException {
this.parentElement = parent;
- this.element.setParent(((SOAPElementImpl)parent).element);
- }
-
- /**
- * Find the Document that this Node belongs to (the document in whose context the Node was
- * created). The Node may or may not
- */
- public Document getOwnerDocument() {
- return element.getOwnerDocument();
+ ((OMElementEx)this.omTarget).setParent(((SOAPElementImpl<? extends OMElement>)parent).omTarget);
}
/**
@@ -743,46 +699,29 @@ public class SOAPElementImpl extends Nod
* <code>null</code> otherwise
*/
public String getValue() {
- if (element.getType() == OMNode.TEXT_NODE) {
- return element.getText();
- } else if (element.getType() == OMNode.ELEMENT_NODE) {
- final OMNode firstOMChild = element.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;
}
- public String getTextContent() throws DOMException {
- return element.getTextContent();
- }
-
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
- public org.w3c.dom.Node getFirstChild() {
- return toSAAJNode(element.getFirstChild());
- }
-
- /**
- * Method getLastChild
- *
- * @see org.w3c.dom.Node#getLastChild()
- */
- public org.w3c.dom.Node getLastChild() {
- return toSAAJNode(element.getLastChild());
- }
-
public Node getParentNode() {
Node parentNode = null;
if (this.parentElement == null) {
- parentNode = toSAAJNode(element.getParentNode());
+ parentNode = toSAAJNode(target.getParentNode());
if (parentNode instanceof SOAPElement) {
this.parentElement = (SOAPElement) parentNode;
}
@@ -794,27 +733,11 @@ public class SOAPElementImpl extends Nod
/** dom Node method */
public org.w3c.dom.Node getNextSibling() {
- return toSAAJNode(element.getNextSibling());
+ return toSAAJNode(target.getNextSibling());
}
public Node getPreviousSibling() {
- return toSAAJNode(element.getPreviousSibling());
- }
-
- private NodeList toSAAJNodeList(NodeList nodes) {
- NodeListImpl result = new NodeListImpl();
- for (int i = 0; i < nodes.getLength(); i++) {
- result.addNode(toSAAJNode(nodes.item(i)));
- }
- return result;
- }
-
- public NodeList getChildNodes() {
- return toSAAJNodeList(element.getChildNodes());
- }
-
- public boolean hasChildNodes() {
- return element.hasChildNodes();
+ return toSAAJNode(target.getPreviousSibling());
}
/**
@@ -828,7 +751,7 @@ public class SOAPElementImpl extends Nod
* child node or has a child node that is not a Text node
*/
public void setValue(String value) {
- OMNode firstChild = element.getFirstOMChild();
+ OMNode firstChild = omTarget.getFirstOMChild();
if (firstChild == null) {
try {
this.addTextNode(value);
@@ -850,79 +773,15 @@ public class SOAPElementImpl extends Nod
}
public OMNode detach() {
- OMNode omNode = this.element.detach();
+ OMNode omNode = this.omTarget.detach();
this.parentElement = null;
return omNode;
}
- /**
- * Returns the collection of attributes associated with this node, or null if none. At this
- * writing, Element is the only type of node which will ever have attributes.
- *
- * @see org.apache.axiom.om.impl.dom.ElementImpl
- */
- public NamedNodeMap getAttributes() {
- return element.getAttributes();
- }
-
public String toString() {
- return element.toString();
+ return target.toString();
}
- public Node removeChild(Node oldChild) throws DOMException {
- if (oldChild instanceof SOAPElementImpl) {
- oldChild = ((SOAPElementImpl)oldChild).getElement();
- } else if (oldChild instanceof TextImplEx) {
- oldChild = ((TextImplEx)oldChild).getTextNode();
- }
- return element.removeChild(oldChild);
- }
-
- public Node appendChild(Node child) throws DOMException {
- if (getOwnerDocument() != child.getOwnerDocument()) {
- throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, "Wrong document");
- }
- try {
- if (child instanceof Text) {
- return appendText((Text)child);
- } else if (child instanceof ElementImpl) {
- return appendElement((ElementImpl)child);
- }
- } catch (SOAPException e) {
- DOMException ex =
- new DOMException(DOMException.HIERARCHY_REQUEST_ERR, e.getMessage());
- ex.initCause(e);
- throw ex;
- }
-
- return super.appendChild(child);
- }
-
- protected Text appendText(Text child) throws SOAPException {
- String text = child.getData();
- Text textNode = getOwnerDocument().createTextNode(text);
- NodeImpl node = ((NodeImpl)element.appendChild(textNode));
- TextImplEx saajTextNode = new TextImplEx(text, this);
- node.setUserData(SAAJ_NODE, saajTextNode, null);
- return saajTextNode;
- }
-
- protected Element appendElement(ElementImpl child) throws SOAPException {
- String namespaceURI = child.getNamespaceURI();
- String prefix = child.getPrefix();
-
- SOAPElementImpl childEle = new SOAPElementImpl(child);
-
- childEle.element.setUserData(SAAJ_NODE, childEle, null);
- if (namespaceURI != null && namespaceURI.trim().length() > 0) {
- childEle.element.setNamespace(childEle.element.declareNamespace(namespaceURI, prefix));
- }
- element.appendChild(childEle.element);
- ((NodeImpl)childEle.element.getParentNode()).setUserData(SAAJ_NODE, this, null);
- childEle.setParentElement(this);
- return childEle;
- }
-
protected void copyContents(SOAPElementImpl childEle, Node child) throws SOAPException {
NamedNodeMap attributes = child.getAttributes();
for (int i = 0; i < attributes.getLength(); i++) {
Modified: axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java?rev=1377526&r1=1377525&r2=1377526&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java Sun Aug 26 21:42:35 2012
@@ -20,15 +20,11 @@
package org.apache.axis2.saaj;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.dom.ChildNode;
-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;
@@ -40,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;
}
/**
@@ -105,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());
}
/**
@@ -123,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());
}
/**
@@ -138,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.element.getOMFactory() instanceof SOAP11Factory) {
- header = new SOAP11HeaderImpl(omSOAPEnvelope,
- (SOAPFactory)this.element.getOMFactory());
- saajSOAPHeader = new SOAPHeaderImpl(header);
- saajSOAPHeader.setParentElement(this);
- } else {
- header = new SOAP12HeaderImpl(omSOAPEnvelope,
- (SOAPFactory)this.element.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 " +
@@ -173,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.element.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 " +
@@ -187,16 +169,12 @@ public class SOAPEnvelopeImpl extends SO
}
public SOAPElement addTextNode(String text) throws SOAPException {
- Node firstChild = element.getFirstChild();
+ Node firstChild = target.getFirstChild();
if (firstChild instanceof org.w3c.dom.Text) {
((org.w3c.dom.Text)firstChild).setData(text);
} else {
// Else this is a header
- TextImpl doomText = new TextImpl(text, this.element.getOMFactory());
- doomText.setNextOMSibling((OMNode)firstChild);
- doomText.setPreviousOMSibling(null);
- element.setFirstChild(doomText);
- ((ChildNode)firstChild).setPreviousOMSibling(doomText);
+ ((OMNode)firstChild).insertSiblingBefore(this.omTarget.getOMFactory().createOMText(text));
}
return this;
}
@@ -206,7 +184,7 @@ public class SOAPEnvelopeImpl extends SO
* on Envelop
*/
public SOAPElement addAttribute(Name name, String value) throws SOAPException {
- if (this.element.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 " +
@@ -221,9 +199,9 @@ public class SOAPEnvelopeImpl extends SO
* element
*/
public SOAPElement addChildElement(Name name) throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
throw new SOAPException("Cannot add elements after body element");
- } else if (this.element.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/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java?rev=1377526&r1=1377525&r2=1377526&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java Sun Aug 26 21:42:35 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/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java?rev=1377526&r1=1377525&r2=1377526&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultElementImpl.java Sun Aug 26 21:42:35 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);
}
Modified: axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java?rev=1377526&r1=1377525&r2=1377526&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java Sun Aug 26 21:42:35 2012
@@ -19,13 +19,13 @@
package org.apache.axis2.saaj;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.OMNamespaceImpl;
-import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.impl.dom.NodeImpl;
import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP11Version;
import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.soap.SOAP12Version;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPFaultCode;
import org.apache.axiom.soap.SOAPFaultDetail;
@@ -35,15 +35,7 @@ import org.apache.axiom.soap.SOAPFaultRo
import org.apache.axiom.soap.SOAPFaultSubCode;
import org.apache.axiom.soap.SOAPFaultText;
import org.apache.axiom.soap.SOAPFaultValue;
-import org.apache.axiom.soap.impl.dom.SOAPFaultValueImpl;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultDetailImpl;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultReasonImpl;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultRoleImpl;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultDetailImpl;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultRoleImpl;
-import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultValueImpl;
+import org.w3c.dom.Element;
import javax.xml.namespace.QName;
import javax.xml.soap.Detail;
@@ -59,21 +51,19 @@ import java.util.Iterator;
import java.util.List;
import java.util.Locale;
-public class SOAPFaultImpl extends SOAPBodyElementImpl implements SOAPFault {
+public class SOAPFaultImpl extends SOAPBodyElementImpl<org.apache.axiom.soap.SOAPFault> implements SOAPFault {
- protected org.apache.axiom.soap.SOAPFault fault;
private boolean isDetailAdded;
private Locale faultReasonLocale;
private boolean defaultsSet;
/** @param fault */
public SOAPFaultImpl(org.apache.axiom.soap.SOAPFault fault) {
- super((ElementImpl)fault);
- this.fault = fault;
+ super(fault);
}
void setDefaults() throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
setFaultCode(SOAP11Constants.QNAME_SENDER_FAULTCODE);
} else {
setFaultCode(SOAP12Constants.QNAME_SENDER_FAULTCODE);
@@ -84,7 +74,7 @@ public class SOAPFaultImpl extends SOAPB
void removeDefaults() {
if (defaultsSet) {
- SOAPFaultReason reason = this.fault.getReason();
+ SOAPFaultReason reason = this.omTarget.getReason();
if (reason != null) {
reason.detach();
}
@@ -121,19 +111,19 @@ public class SOAPFaultImpl extends SOAPB
// localName = faultCode.substring(faultCode.indexOf(":")+1);
// }
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
- soapFactory = (SOAP11Factory)this.element.getOMFactory();
- soapFaultCode = soapFactory.createSOAPFaultCode(fault);
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+ soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ soapFaultCode = soapFactory.createSOAPFaultCode(omTarget);
soapFaultCode.setText(faultCode);
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
- soapFactory = (SOAP12Factory)this.element.getOMFactory();
- soapFaultCode = soapFactory.createSOAPFaultCode(fault);
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+ soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ soapFaultCode = soapFactory.createSOAPFaultCode(omTarget);
SOAPFaultValue soapFaultValue = soapFactory.createSOAPFaultValue(soapFaultCode);
soapFaultCode.setValue(soapFaultValue);
soapFaultValue.setText(faultCode);
}
- this.fault.setCode(soapFaultCode);
+ this.omTarget.setCode(soapFaultCode);
}
/**
@@ -143,11 +133,11 @@ public class SOAPFaultImpl extends SOAPB
* @see #setFaultCode(String) setFaultCode(java.lang.String)
*/
public String getFaultCode() {
- if (fault != null && fault.getCode() != null) {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
- return fault.getCode().getText();
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
- return fault.getCode().getValue().getText();
+ if (omTarget != null && omTarget.getCode() != null) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+ return omTarget.getCode().getText();
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+ return omTarget.getCode().getValue().getText();
} else {
return null;
}
@@ -167,29 +157,15 @@ public class SOAPFaultImpl extends SOAPB
* tree.
*/
public void setFaultActor(String faultActor) throws SOAPException {
+ if (this.omTarget.getRole() == null) {
+ SOAPFaultRole faultRoleImpl = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPFaultRole(
+ this.omTarget);
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
- if (this.fault.getRole() == null) {
- SOAP11FaultRoleImpl faultRoleImpl = new SOAP11FaultRoleImpl(
- this.fault, (SOAPFactory)this.element.getOMFactory());
-
- faultRoleImpl.setRoleValue(faultActor);
- this.fault.setRole(faultRoleImpl);
- } else {
- SOAPFaultRole role = this.fault.getRole();
- role.setRoleValue(faultActor);
- }
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
- if (this.fault.getRole() == null) {
- SOAP12FaultRoleImpl faultRoleImpl = new SOAP12FaultRoleImpl(
- this.fault, (SOAPFactory)this.element.getOMFactory());
-
- faultRoleImpl.setRoleValue(faultActor);
- this.fault.setRole(faultRoleImpl);
- } else {
- SOAPFaultRole role = this.fault.getRole();
- role.setRoleValue(faultActor);
- }
+ faultRoleImpl.setRoleValue(faultActor);
+ this.omTarget.setRole(faultRoleImpl);
+ } else {
+ SOAPFaultRole role = this.omTarget.getRole();
+ role.setRoleValue(faultActor);
}
}
@@ -197,8 +173,8 @@ public class SOAPFaultImpl extends SOAPB
* @see javax.xml.soap.SOAPFault#getFaultActor()
*/
public String getFaultActor() {
- if (this.fault.getRole() != null) {
- return this.fault.getRole().getRoleValue();
+ if (this.omTarget.getRole() != null) {
+ return this.omTarget.getRole().getRoleValue();
}
return null;
}
@@ -212,9 +188,9 @@ public class SOAPFaultImpl extends SOAPB
* @see #getFaultString() getFaultString()
*/
public void setFaultString(String faultString) throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
setFaultString(faultString, null);
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
setFaultString(faultString, Locale.getDefault());
}
}
@@ -224,13 +200,13 @@ public class SOAPFaultImpl extends SOAPB
*/
public String getFaultString() {
- if (this.fault.getNamespace().getNamespaceURI().equals(
+ if (this.omTarget.getNamespace().getNamespaceURI().equals(
SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
- return this.fault.getReason().getText();
+ return this.omTarget.getReason().getText();
} else {
- if (this.fault.getReason() != null && this.fault.getReason().getFirstSOAPText() != null)
+ if (this.omTarget.getReason() != null && this.omTarget.getReason().getFirstSOAPText() != null)
{
- return this.fault.getReason().getFirstSOAPText().getText();
+ return this.omTarget.getReason().getFirstSOAPText().getText();
}
}
return null;
@@ -240,7 +216,7 @@ public class SOAPFaultImpl extends SOAPB
* @see javax.xml.soap.SOAPFault#getDetail()
*/
public Detail getDetail() {
- return (Detail)toSAAJNode((org.w3c.dom.Node)fault.getDetail());
+ return (Detail)toSAAJNode((org.w3c.dom.Node)omTarget.getDetail());
}
@@ -282,16 +258,10 @@ public class SOAPFaultImpl extends SOAPB
}
SOAPFaultDetail omDetail;
- SOAPFactory factory = (SOAPFactory)this.element.getOMFactory();
- if (factory instanceof SOAP11Factory) {
- omDetail = new SOAP11FaultDetailImpl(this.fault,
- factory);
- } else {
- omDetail = new SOAP12FaultDetailImpl(this.fault,
- factory);
- }
+ SOAPFactory factory = (SOAPFactory)this.omTarget.getOMFactory();
+ omDetail = factory.createSOAPFaultDetail(this.omTarget);
Detail saajDetail = new DetailImpl(omDetail);
- ((NodeImpl)fault.getDetail()).setUserData(SAAJ_NODE, saajDetail, null);
+ ((Element)omTarget.getDetail()).setUserData(SAAJ_NODE, saajDetail, null);
isDetailAdded = true;
return saajDetail;
}
@@ -316,20 +286,19 @@ public class SOAPFaultImpl extends SOAPB
*/
public void setFaultString(String faultString, Locale locale) throws SOAPException {
- if (this.fault.getReason() != null) {
- SOAPFaultReason reason = this.fault.getReason();
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (this.omTarget.getReason() != null) {
+ SOAPFaultReason reason = this.omTarget.getReason();
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
reason.setText(faultString);
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
addFaultReasonText(faultString, locale);
}
} else {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
- SOAPFaultReason reason = new SOAP11FaultReasonImpl(this.fault,
- (SOAPFactory)this.element
- .getOMFactory());
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+ SOAPFaultReason reason = ((SOAPFactory)this.omTarget
+ .getOMFactory()).createSOAPFaultReason(this.omTarget);
reason.setText(faultString);
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
addFaultReasonText(faultString, locale);
}
}
@@ -349,9 +318,9 @@ public class SOAPFaultImpl extends SOAPB
* @since SAAJ 1.2
*/
public Locale getFaultStringLocale() {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
return this.faultReasonLocale;
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
Locale locale = null;
try {
if (getFaultReasonLocales().hasNext()) {
@@ -384,26 +353,26 @@ public class SOAPFaultImpl extends SOAPB
if (locale == null) {
throw new SOAPException("Received null for locale");
}
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("Not supported in SOAP 1.1");
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
removeDefaults();
String existingReasonText = getFaultReasonText(locale);
if (existingReasonText == null) {
org.apache.axiom.soap.SOAPFactory soapFactory = null;
- soapFactory = (SOAP12Factory)this.element.getOMFactory();
- if (this.fault.getReason() == null) {
- SOAPFaultReason soapFaultReason = soapFactory.createSOAPFaultReason(this.fault);
- this.fault.setReason(soapFaultReason);
+ soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ if (this.omTarget.getReason() == null) {
+ SOAPFaultReason soapFaultReason = soapFactory.createSOAPFaultReason(this.omTarget);
+ this.omTarget.setReason(soapFaultReason);
}
SOAPFaultText soapFaultText =
- soapFactory.createSOAPFaultText(this.fault.getReason());
+ soapFactory.createSOAPFaultText(this.omTarget.getReason());
soapFaultText.setText(text);
soapFaultText.setLang(locale.toString());
} else {
//update the text
- Iterator soapTextsItr = this.fault.getReason().getAllSoapTexts().iterator();
+ Iterator soapTextsItr = this.omTarget.getReason().getAllSoapTexts().iterator();
while (soapTextsItr.hasNext()) {
SOAPFaultText soapFaultText = (SOAPFaultText)soapTextsItr.next();
if (soapFaultText.getLang().equals(locale.toString())) {
@@ -430,36 +399,34 @@ public class SOAPFaultImpl extends SOAPB
*/
public void appendFaultSubcode(QName subcode) throws SOAPException {
- org.apache.axiom.soap.SOAPFactory soapFactory = null;
+ SOAPFactory soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
SOAPFaultSubCode soapFaultSubCode = null;
if (subcode.getNamespaceURI() == null || subcode.getNamespaceURI().trim().length() == 0) {
throw new SOAPException("Unqualified QName object : " + subcode);
}
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
- soapFactory = DOOMAbstractFactory.getSOAP12Factory();
}
- if (this.fault.getCode() == null) {
- soapFactory.createSOAPFaultCode(this.fault);
+ if (this.omTarget.getCode() == null) {
+ soapFactory.createSOAPFaultCode(this.omTarget);
//if SOAPFault is null, there cannot be a subcode.
//Hence should create one
- soapFaultSubCode = soapFactory.createSOAPFaultSubCode(this.fault.getCode());
- } else if (this.fault.getCode().getSubCode() != null) {
+ soapFaultSubCode = soapFactory.createSOAPFaultSubCode(this.omTarget.getCode());
+ } else if (this.omTarget.getCode().getSubCode() != null) {
//find the last subcode.parent of the new subcode should be the this last subcode
soapFaultSubCode = soapFactory.createSOAPFaultSubCode(
- getLastSubCode(this.fault.getCode().getSubCode()));
+ getLastSubCode(this.omTarget.getCode().getSubCode()));
} else {
//FaultCode is there, but no FaultSubCode
- soapFaultSubCode = soapFactory.createSOAPFaultSubCode(this.fault.getCode());
+ soapFaultSubCode = soapFactory.createSOAPFaultSubCode(this.omTarget.getCode());
}
if (soapFaultSubCode != null) {
- SOAPFaultValueImpl soapFaultValueimpl =
- new SOAP12FaultValueImpl(soapFaultSubCode, soapFactory);
+ SOAPFaultValue soapFaultValueimpl =
+ soapFactory.createSOAPFaultValue(soapFaultSubCode);
soapFaultValueimpl.setText(subcode.getPrefix() + ":" + subcode.getLocalPart());
soapFaultValueimpl.declareNamespace(subcode.getNamespaceURI(), subcode.getPrefix());
}
@@ -478,9 +445,9 @@ public class SOAPFaultImpl extends SOAPB
* <p/>
*/
public QName getFaultCodeAsQName() {
- SOAPFaultCode soapFaultCode = this.fault.getCode();
+ SOAPFaultCode soapFaultCode = this.omTarget.getCode();
if (soapFaultCode != null) {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
return soapFaultCode.getTextAsQName();
} else {
return soapFaultCode.getValue().getTextAsQName();
@@ -498,12 +465,12 @@ public class SOAPFaultImpl extends SOAPB
* - if this message does not support the SOAP 1.2 concept of Fault Node.
*/
public String getFaultNode() {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("Message does not support the " +
"SOAP 1.2 concept of Fault Node");
} else {
- if (fault != null && fault.getNode() != null && fault.getNode().getText() != null) {
- return fault.getNode().getText();
+ if (omTarget != null && omTarget.getNode() != null && omTarget.getNode().getText() != null) {
+ return omTarget.getNode().getText();
}
}
return null;
@@ -523,12 +490,12 @@ public class SOAPFaultImpl extends SOAPB
* @since SAAJ 1.3
*/
public Iterator getFaultReasonLocales() throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("Message does not support the " +
"SOAP 1.2 concept of Fault Reason");
} else {
ArrayList faultReasonLocales = new ArrayList();
- List soapTextList = this.fault.getReason().getAllSoapTexts();
+ List soapTextList = this.omTarget.getReason().getAllSoapTexts();
if (soapTextList != null) {
Iterator faultReasons = soapTextList.iterator();
while (faultReasons.hasNext()) {
@@ -563,12 +530,12 @@ public class SOAPFaultImpl extends SOAPB
* @since SAAJ 1.3
*/
public String getFaultReasonText(Locale locale) throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("Message does not support the " +
"SOAP 1.2 concept of Fault Reason");
} else {
Iterator soapTextsItr = null;
- SOAPFaultReason soapFaultReason = this.fault.getReason();
+ SOAPFaultReason soapFaultReason = this.omTarget.getReason();
if (soapFaultReason != null) {
List soapTexts = soapFaultReason.getAllSoapTexts();
if (soapTexts != null) {
@@ -595,11 +562,11 @@ public class SOAPFaultImpl extends SOAPB
*/
public Iterator getFaultReasonTexts() throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
}
- Iterator soapTextsItr = this.fault.getReason().getAllSoapTexts().iterator();
+ Iterator soapTextsItr = this.omTarget.getReason().getAllSoapTexts().iterator();
ArrayList reasonTexts = new ArrayList();
while (soapTextsItr.hasNext()) {
SOAPFaultText soapFaultText = (SOAPFaultText)soapTextsItr.next();
@@ -618,12 +585,12 @@ public class SOAPFaultImpl extends SOAPB
* @since SAAJ 1.3
*/
public String getFaultRole() {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("Message does not support the " +
"SOAP 1.2 concept of Fault Reason");
} else {
- if (this.fault.getRole() != null) {
- return this.fault.getRole().getText();
+ if (this.omTarget.getRole() != null) {
+ return this.omTarget.getRole().getText();
} else {
return null;
}
@@ -640,11 +607,11 @@ public class SOAPFaultImpl extends SOAPB
* - if this message does not support the SOAP 1.2 concept of Subcode.
*/
public Iterator getFaultSubcodes() {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
}
ArrayList faultSubcodes = new ArrayList();
- SOAPFaultSubCode subCodeElement = this.fault.getCode().getSubCode();
+ SOAPFaultSubCode subCodeElement = this.omTarget.getCode().getSubCode();
while (subCodeElement != null) {
QName qname = subCodeElement.getValue().getTextAsQName();
faultSubcodes.add(qname);
@@ -655,7 +622,7 @@ public class SOAPFaultImpl extends SOAPB
/** Returns true if this SOAPFault has a Detail subelement and false otherwise. */
public boolean hasDetail() {
- if (this.fault.getDetail() != null) {
+ if (this.omTarget.getDetail() != null) {
return true;
} else {
return false;
@@ -671,10 +638,10 @@ public class SOAPFaultImpl extends SOAPB
* - if this message does not support the SOAP 1.2 concept of Subcode.
*/
public void removeAllFaultSubcodes() {
- if (factory instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
} else {
- fault.getCode().getSubCode().detach();
+ omTarget.getCode().getSubCode().detach();
}
}
@@ -697,40 +664,41 @@ public class SOAPFaultImpl extends SOAPB
}
org.apache.axiom.soap.SOAPFactory soapFactory = null;
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
- soapFactory = (SOAPFactory)this.element.getOMFactory();
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+ soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
if (!(qname.getNamespaceURI()
.equals(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE))) {
throw new SOAPException("Incorrect URI"
+ qname.getNamespaceURI());
}
- soapFactory = (SOAPFactory)this.element.getOMFactory();
+ soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
} else {
throw new SOAPException("Invalid SOAP version");
}
- SOAPFaultCode soapFaultCode = soapFactory.createSOAPFaultCode(this.fault);
+ SOAPFaultCode soapFaultCode = soapFactory.createSOAPFaultCode(this.omTarget);
String prefix = ((qname.getPrefix() != null) && !qname.getPrefix()
- .equals("")) ? qname.getPrefix() : this.fault.getQName()
+ .equals("")) ? qname.getPrefix() : this.omTarget.getQName()
.getPrefix();
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ OMFactory factory = omTarget.getOMFactory();
+ if (((SOAPFactory)factory).getSOAPVersion() == SOAP11Version.getSingleton()) {
soapFaultCode.setText(prefix + ":" + qname.getLocalPart());
- OMNamespace omNamespace = new OMNamespaceImpl(qname.getNamespaceURI(),
+ OMNamespace omNamespace = factory.createOMNamespace(qname.getNamespaceURI(),
qname.getPrefix());
soapFaultCode.declareNamespace(omNamespace);
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
+ } else if (((SOAPFactory)factory).getSOAPVersion() == SOAP12Version.getSingleton()) {
SOAPFaultValue soapFaultValue = soapFactory.createSOAPFaultValue(soapFaultCode);
// don't just use the default prefix, use the passed one or the parent's
soapFaultValue.setText(prefix + ":" + qname.getLocalPart());
- OMNamespace omNamespace = new OMNamespaceImpl(qname.getNamespaceURI(),
+ OMNamespace omNamespace = factory.createOMNamespace(qname.getNamespaceURI(),
qname.getPrefix());
soapFaultValue.declareNamespace(omNamespace);
soapFaultCode.setValue(soapFaultValue);
}
- this.fault.setCode(soapFaultCode);
+ this.omTarget.setCode(soapFaultCode);
}
/**
@@ -744,16 +712,14 @@ public class SOAPFaultImpl extends SOAPB
*/
public void setFaultNode(String s) throws SOAPException {
- org.apache.axiom.soap.SOAPFactory soapFactory = null;
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ SOAPFactory soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("message does not support " +
"the SOAP 1.2 concept of Fault Node");
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
- soapFactory = DOOMAbstractFactory.getSOAP12Factory();
}
- SOAPFaultNode soapFaultNode = soapFactory.createSOAPFaultNode(this.fault);
+ SOAPFaultNode soapFaultNode = soapFactory.createSOAPFaultNode(this.omTarget);
soapFaultNode.setText(s);
- this.fault.setNode(soapFaultNode);
+ this.omTarget.setNode(soapFaultNode);
}
/**
@@ -766,25 +732,23 @@ public class SOAPFaultImpl extends SOAPB
* support the SOAP 1.2 concept of Fault Role.
*/
public void setFaultRole(String uri) throws SOAPException {
- org.apache.axiom.soap.SOAPFactory soapFactory = null;
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ SOAPFactory soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException("message does not support the " +
"SOAP 1.2 concept of Fault Role");
- } else if (this.element.getOMFactory() instanceof SOAP12Factory) {
- soapFactory = DOOMAbstractFactory.getSOAP12Factory();
}
- SOAPFaultRole soapFaultRole = soapFactory.createSOAPFaultRole(this.fault);
+ SOAPFaultRole soapFaultRole = soapFactory.createSOAPFaultRole(this.omTarget);
soapFaultRole.setRoleValue(uri);
- this.fault.setRole(soapFaultRole);
+ this.omTarget.setRole(soapFaultRole);
}
public Iterator getChildElements(Name name) {
QName qName = new QName(name.getURI(), name.getLocalName());
- return getChildren(element.getChildrenWithName(qName));
+ return getChildren(omTarget.getChildrenWithName(qName));
}
public Iterator getChildElements() {
- return getChildren(element.getChildren());
+ return getChildren(omTarget.getChildren());
}
private Iterator getChildren(Iterator childIter) {
@@ -794,8 +758,8 @@ public class SOAPFaultImpl extends SOAPB
Node saajNode = toSAAJNode(domNode);
if (!(saajNode instanceof SOAPFaultElement)) {
// silently replace node, as per saaj 1.2 spec
- SOAPFaultElement bodyEle = new SOAPFaultElementImpl((ElementImpl)domNode);
- ((NodeImpl)domNode).setUserData(SAAJ_NODE, bodyEle, null);
+ SOAPFaultElement bodyEle = new SOAPFaultElementImpl<OMElement>((OMElement)domNode);
+ domNode.setUserData(SAAJ_NODE, bodyEle, null);
childElements.add(bodyEle);
} else {
childElements.add(saajNode);
Modified: axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java?rev=1377526&r1=1377525&r2=1377526&view=diff
==============================================================================
--- axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java (original)
+++ axis/axis2/java/core/branches/1_6/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java Sun Aug 26 21:42:35 2012
@@ -19,23 +19,20 @@
package org.apache.axis2.saaj;
-import org.apache.axiom.om.impl.dom.ElementImpl;
+import org.apache.axiom.soap.SOAP11Version;
+import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
-public class SOAPHeaderElementImpl extends SOAPElementImpl implements SOAPHeaderElement {
-
- private SOAPHeaderBlock headerElem;
+public class SOAPHeaderElementImpl extends SOAPElementImpl<SOAPHeaderBlock> implements SOAPHeaderElement {
/** @param element */
public SOAPHeaderElementImpl(SOAPHeaderBlock element) {
- super((ElementImpl)element);
- this.headerElem = element;
+ super(element);
}
/**
@@ -48,7 +45,7 @@ public class SOAPHeaderElementImpl exten
* @see #getActor() getActor()
*/
public void setActor(String actorURI) {
- this.headerElem.setRole(actorURI);
+ this.omTarget.setRole(actorURI);
}
/**
@@ -58,7 +55,7 @@ public class SOAPHeaderElementImpl exten
* @see #setActor(String) setActor(java.lang.String)
*/
public String getActor() {
- return this.headerElem.getRole();
+ return this.omTarget.getRole();
}
/**
@@ -77,7 +74,7 @@ public class SOAPHeaderElementImpl exten
* @see #getMustUnderstand() getMustUnderstand()
*/
public void setMustUnderstand(boolean mustUnderstand) {
- this.headerElem.setMustUnderstand(mustUnderstand);
+ this.omTarget.setMustUnderstand(mustUnderstand);
}
/**
@@ -88,7 +85,7 @@ public class SOAPHeaderElementImpl exten
* <CODE>SOAPHeaderElement</CODE> object is turned on; <CODE>false</CODE> otherwise
*/
public boolean getMustUnderstand() {
- return this.headerElem.getMustUnderstand();
+ return this.omTarget.getMustUnderstand();
}
/**
@@ -99,18 +96,18 @@ public class SOAPHeaderElementImpl exten
* - if this message does not support the SOAP 1.2 concept of Fault Role.
*/
public void setRole(String uri) throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
} else {
- this.headerElem.setRole(uri);
+ this.omTarget.setRole(uri);
}
}
public String getRole() {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
} else {
- return this.headerElem.getRole();
+ return this.omTarget.getRole();
}
}
@@ -128,18 +125,18 @@ public class SOAPHeaderElementImpl exten
* support the SOAP 1.2 concept of Relay attribute.
*/
public void setRelay(boolean flag) throws SOAPException {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
} else {
- this.headerElem.setRelay(flag);
+ this.omTarget.setRelay(flag);
}
}
public boolean getRelay() {
- if (this.element.getOMFactory() instanceof SOAP11Factory) {
+ if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
throw new UnsupportedOperationException();
} else {
- return this.headerElem.getRelay();
+ return this.omTarget.getRelay();
}
}