Author: veithen Date: Fri Jul 11 23:51:40 2014 New Revision: 1609866 URL: http://svn.apache.org/r1609866 Log: More SAAJ fixes and cleanups.
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.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/SOAPHeaderImpl.java Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java?rev=1609866&r1=1609865&r2=1609866&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java (original) +++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java Fri Jul 11 23:51:40 2014 @@ -19,6 +19,8 @@ package org.apache.axis2.saaj; import javax.xml.soap.Node; +import javax.xml.soap.SOAPElement; +import javax.xml.soap.SOAPException; import org.apache.axiom.om.OMNode; @@ -26,4 +28,16 @@ public abstract class NodeImpl<T extends public NodeImpl(T target, S omTarget) { super(target, omTarget); } + + public final void detachNode() { + omTarget.detach(); + } + + public final SOAPElement getParentElement() { + return (SOAPElement)getParentNode(); + } + + public void setParentElement(SOAPElement parent) throws SOAPException { + (((SOAPElementImpl<?>)parent).omTarget).addChild(this.omTarget); + } } Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java?rev=1609866&r1=1609865&r2=1609866&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java (original) +++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java Fri Jul 11 23:51:40 2014 @@ -20,12 +20,10 @@ package org.apache.axis2.saaj; import org.apache.axiom.om.OMComment; -import org.apache.axiom.om.OMContainer; import org.apache.axiom.om.OMDocument; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMException; import org.apache.axiom.om.OMInformationItem; -import org.apache.axiom.om.OMNode; import org.apache.axiom.om.OMText; import org.apache.axiom.soap.SOAPBody; import org.apache.axiom.soap.SOAPEnvelope; @@ -55,7 +53,6 @@ import javax.xml.soap.SOAPException; public abstract class ProxyNode<T extends org.w3c.dom.Node, S extends OMInformationItem> implements Node { protected final T target; protected final S omTarget; - protected SOAPElement parentElement; static final String SAAJ_NODE = "saaj.node"; public ProxyNode(T target, S omTarget) { @@ -73,35 +70,6 @@ public abstract class ProxyNode<T extend } /** - * 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. - */ - public void detachNode() { - this.detach(); - } - - public OMNode detach() { - parentElement = null; - return null; - } - - /** - * 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. - */ - public SOAPElement getParentElement() { - return this.parentElement; - } - - public OMContainer getParent() { - return (OMContainer)this.parentElement; - } - - /* public OMNode getOMNode() { - return omNode; - }*/ - - /** * Notifies the implementation that this <code>Node</code> object is no longer being used by the * application and that the implementation is free to reuse this object for nodes that may be * created later. @@ -114,19 +82,6 @@ public abstract class ProxyNode<T extend // There is no implementation in Axis 1.2 also } - /** - * Sets the parent of this <code>Node</code> object to the given <code>SOAPElement</code> - * object. - * - * @param parent the <code>SOAPElement</code> object to be set as the parent of this - * <code>Node</code> object - * @throws SOAPException if there is a problem in setting the parent to the given element - * @see #getParentElement() getParentElement() - */ - public void setParentElement(SOAPElement parent) throws SOAPException { - this.parentElement = parent; - } - public void setType(int nodeType) throws OMException { throw new UnsupportedOperationException("TODO"); } @@ -235,21 +190,20 @@ public abstract class ProxyNode<T extend } } - // TODO: the existence of this method probably indicates a problem in TextImplEx public org.w3c.dom.Node getParentNode() { - return null; + return toSAAJNode(target.getParentNode()); } public final boolean hasAttributes() { - return parentElement.hasAttributes(); + return target.hasAttributes(); } public final boolean isSupported(String feature, String version) { - return parentElement.isSupported(feature, version); + return target.isSupported(feature, version); } public final String getBaseURI() { - return parentElement.getBaseURI(); + return target.getBaseURI(); } public final String getNodeValue() throws DOMException { 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=1609866&r1=1609865&r2=1609866&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 Fri Jul 11 23:51:40 2014 @@ -39,7 +39,7 @@ public class SOAPBodyElementImpl<T exten if (!(parent instanceof SOAPBody)) { throw new IllegalArgumentException("Parent is not a SOAPBody"); } - this.parentElement = parent; + super.setParentElement(parent); } public SOAPElement addAttribute(QName qname, String value) throws SOAPException { 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=1609866&r1=1609865&r2=1609866&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 Fri Jul 11 23:51:40 2014 @@ -21,7 +21,6 @@ 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.soap.SOAP11Version; import org.apache.axiom.soap.SOAP12Version; import org.apache.axiom.soap.SOAPFactory; @@ -124,12 +123,12 @@ public class SOAPBodyImpl extends SOAPEl if (namespaceURI == null || namespaceURI.trim().length() == 0) { childEle = new SOAPBodyElementImpl<OMElement>( - (OMElement)getOwnerDocument().createElement(localName)); + (OMElement)target.getOwnerDocument().createElement(localName)); } else { omTarget.declareNamespace(namespaceURI, prefix); childEle = new SOAPBodyElementImpl<OMElement>( - (OMElement)getOwnerDocument().createElementNS(namespaceURI, + (OMElement)target.getOwnerDocument().createElementNS(namespaceURI, localName)); } @@ -477,15 +476,6 @@ public class SOAPBodyImpl extends SOAPEl return saajEle; } - public void detachNode() { - this.detach(); - } - - public OMNode detach() { - this.parentElement = null; - return this.omTarget.detach(); - } - public Iterator getChildElements(Name name) { QName qName = new QName(name.getURI(), name.getLocalName()); return getChildren(omTarget.getChildrenWithName(qName)); 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=1609866&r1=1609865&r2=1609866&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 Fri Jul 11 23:51:40 2014 @@ -640,30 +640,6 @@ public class SOAPElementImpl<T extends O } /** - * Returns the parent element of this <code>Node</code> object. This method can throw an - * <code>UnsupportedOperationException</code> if the tree is not kept in memory. - * - * @return the <code>SOAPElement</code> object that is the parent of this <code>Node</code> - * object or <code>null</code> if this <code>Node</code> object is root - * @throws UnsupportedOperationException if the whole tree is not kept in memory - * @see #setParentElement(javax.xml.soap.SOAPElement) setParentElement(javax.xml.soap.SOAPElement) - */ - public SOAPElement getParentElement() { - if (this.parentElement == null) { - Node parentNode = toSAAJNode(target.getParentNode()); - if (parentNode instanceof SOAPElement) { - this.parentElement = (SOAPElement) parentNode; - } - } - return this.parentElement; - } - - public void setParentElement(SOAPElement parent) throws SOAPException { - this.parentElement = parent; - (((SOAPElementImpl<? extends OMElement>)parent).omTarget).addChild(this.omTarget); - } - - /** * Returns the the value of the immediate child of this <code>Node</code> object if a child * exists and its value is text. * @@ -691,19 +667,6 @@ public class SOAPElementImpl<T extends O return super.clone(); } - public Node getParentNode() { - Node parentNode = null; - if (this.parentElement == null) { - parentNode = toSAAJNode(target.getParentNode()); - if (parentNode instanceof SOAPElement) { - this.parentElement = (SOAPElement) parentNode; - } - } else { - parentNode = this.parentElement; - } - return parentNode; - } - /** * If this is a Text node then this method will set its value, otherwise it sets the value of * the immediate (Text) child of this node. The value of the immediate child of this node can be @@ -732,16 +695,6 @@ public class SOAPElementImpl<T extends O } } - public void detachNode() { - this.detach(); - } - - public OMNode detach() { - OMNode omNode = this.omTarget.detach(); - this.parentElement = null; - return omNode; - } - public String toString() { return target.toString(); } Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java?rev=1609866&r1=1609865&r2=1609866&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java (original) +++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java Fri Jul 11 23:51:40 2014 @@ -21,7 +21,6 @@ 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.soap.SOAP11Version; import org.apache.axiom.soap.SOAP12Version; import org.apache.axiom.soap.SOAPFactory; @@ -31,7 +30,6 @@ import org.w3c.dom.Element; import javax.xml.namespace.QName; import javax.xml.soap.Name; -import javax.xml.soap.Node; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPHeader; @@ -363,14 +361,4 @@ public class SOAPHeaderImpl extends SOAP } return childElements.iterator(); } - - public void detachNode() { - this.detach(); - } - - public OMNode detach() { - OMNode omNode = omTarget.detach(); - parentElement = null; - return omNode; - } }