Author: jim.ma
Date: 2011-03-25 01:05:57 -0400 (Fri, 25 Mar 2011)
New Revision: 13936
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java
Log:
[JBWS-3251]:directly use element's owner document to create child
Modified:
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java
===================================================================
---
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java 2011-03-25
04:49:52 UTC (rev 13935)
+++
stack/native/trunk/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java 2011-03-25
05:05:57 UTC (rev 13936)
@@ -75,7 +75,7 @@
public SOAPElementImpl(String localPart, String prefix, String nsURI)
{
super(DOMUtils.createElement(localPart, prefix, nsURI));
- this.element = (Element)domNode;
+ this.element = (Element)domNode;
}
/** Called by SOAPFactory */
@@ -83,6 +83,13 @@
{
this(name.getLocalName(), name.getPrefix(), name.getURI());
}
+
+ /** Called by addChild */
+ private SOAPElementImpl(Element element)
+ {
+ super(element);
+ this.element = element;
+ }
/** Called by SOAPFactory */
public SOAPElementImpl(QName qname)
@@ -180,9 +187,8 @@
*/
public SOAPElement addChildElement(String name) throws SOAPException
{
- SOAPElement soapElement = new SOAPElementImpl(name);
- soapElement = addChildElement(soapElement);
- return soapElement;
+ Name nameImp = new NameImpl(name);
+ return addChildElement(nameImp);
}
/**
@@ -199,9 +205,8 @@
if (nsURI == null)
throw new IllegalArgumentException("Cannot obtain namespace URI for prefix:
" + prefix);
- SOAPElement soapElement = new SOAPElementImpl(localName, prefix, nsURI);
- soapElement = addChildElement(soapElement);
- return soapElement;
+ Name nameImp = new NameImpl(localName, prefix, nsURI);
+ return addChildElement(nameImp);
}
/**
@@ -215,9 +220,8 @@
*/
public SOAPElement addChildElement(String localName, String prefix, String uri) throws
SOAPException
{
- SOAPElement soapElement = new SOAPElementImpl(localName, prefix, uri);
- soapElement = addChildElement(soapElement);
- return soapElement;
+ Name nameImpl = new NameImpl(localName, prefix, uri);
+ return addChildElement(nameImpl);
}
/**
@@ -229,9 +233,19 @@
*/
public SOAPElement addChildElement(Name name) throws SOAPException
{
- SOAPElement soapElement = new SOAPElementImpl(name);
- soapElement = addChildElement(soapElement);
- return soapElement;
+ Document doc = this.element.getOwnerDocument();
+ Element childEle = null;
+ if (name.getPrefix() == null || name.getPrefix().length() == 0)
+ {
+ childEle = doc.createElementNS(name.getURI(), name.getLocalName());
+ }
+ else
+ {
+ childEle = doc.createElementNS(name.getURI(), name.getPrefix() + ":" +
name.getLocalName());
+ }
+
+ SOAPElement child = new SOAPElementImpl(childEle);
+ return addChildElement(child);
}
public SOAPElement addChildElement(QName qname) throws SOAPException
Show replies by date