14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.xml.internal.messaging.saaj.soap.impl; 27 28 import java.util.Iterator; 29 import java.util.NoSuchElementException; 30 31 import javax.xml.namespace.QName; 32 import javax.xml.soap.*; 33 34 import org.w3c.dom.Element; 35 36 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl; 37 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl; 38 39 public abstract class DetailImpl extends FaultElementImpl implements Detail { 40 public DetailImpl(SOAPDocumentImpl ownerDoc, NameImpl detailName) { 41 super(ownerDoc, detailName); 42 } 43 44 protected abstract DetailEntry createDetailEntry(Name name); 45 protected abstract DetailEntry createDetailEntry(QName name); 46 47 public DetailEntry addDetailEntry(Name name) throws SOAPException { 48 DetailEntry entry = createDetailEntry(name); 49 addNode(entry); 50 return entry; 51 } 52 53 public DetailEntry addDetailEntry(QName qname) throws SOAPException { 54 DetailEntry entry = createDetailEntry(qname); 55 addNode(entry); 56 return entry; 57 } 58 59 protected SOAPElement addElement(Name name) throws SOAPException { 60 return addDetailEntry(name); 61 } 62 63 protected SOAPElement addElement(QName name) throws SOAPException { 64 return addDetailEntry(name); 65 } 66 67 protected SOAPElement convertToSoapElement(Element element) { 68 if (element instanceof DetailEntry) { 69 return (SOAPElement) element; 70 } else { 71 DetailEntry detailEntry = 72 createDetailEntry(NameImpl.copyElementName(element)); 73 return replaceElementWithSOAPElement( 74 element, 75 (ElementImpl) detailEntry); 76 } 77 } 78 79 public Iterator getDetailEntries() { 80 return new Iterator<SOAPElement>() { 81 Iterator<org.w3c.dom.Node> eachNode = getChildElementNodes(); 82 SOAPElement next = null; 83 SOAPElement last = null; 84 85 public boolean hasNext() { 86 if (next == null) { 87 while (eachNode.hasNext()) { 88 next = (SOAPElement) eachNode.next(); 89 if (next instanceof DetailEntry) { | 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.xml.internal.messaging.saaj.soap.impl; 27 28 import java.util.Iterator; 29 import java.util.NoSuchElementException; 30 31 import javax.xml.namespace.QName; 32 import javax.xml.soap.*; 33 34 import com.sun.xml.internal.messaging.saaj.util.SAAJUtil; 35 import org.w3c.dom.Element; 36 37 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl; 38 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl; 39 40 public abstract class DetailImpl extends FaultElementImpl implements Detail { 41 public DetailImpl(SOAPDocumentImpl ownerDoc, NameImpl detailName) { 42 super(ownerDoc, detailName); 43 } 44 45 public DetailImpl(SOAPDocumentImpl ownerDoc, Element domElement) { 46 super(ownerDoc, domElement); 47 } 48 49 protected abstract DetailEntry createDetailEntry(Name name); 50 protected abstract DetailEntry createDetailEntry(QName name); 51 52 public DetailEntry addDetailEntry(Name name) throws SOAPException { 53 DetailEntry entry = createDetailEntry(name); 54 addNode(entry); 55 return entry; 56 } 57 58 public DetailEntry addDetailEntry(QName qname) throws SOAPException { 59 DetailEntry entry = createDetailEntry(qname); 60 addNode(entry); 61 return entry; 62 } 63 64 protected SOAPElement addElement(Name name) throws SOAPException { 65 return addDetailEntry(name); 66 } 67 68 protected SOAPElement addElement(QName name) throws SOAPException { 69 return addDetailEntry(name); 70 } 71 72 protected SOAPElement convertToSoapElement(Element element) { 73 final javax.xml.soap.Node soapNode = getSoapDocument().find(element); 74 if (soapNode instanceof DetailEntry) { 75 return (SOAPElement) soapNode; 76 } else { 77 DetailEntry detailEntry = 78 createDetailEntry(NameImpl.copyElementName(element)); 79 return replaceElementWithSOAPElement( 80 element, 81 (ElementImpl) detailEntry); 82 } 83 } 84 85 public Iterator getDetailEntries() { 86 return new Iterator<SOAPElement>() { 87 Iterator<org.w3c.dom.Node> eachNode = getChildElementNodes(); 88 SOAPElement next = null; 89 SOAPElement last = null; 90 91 public boolean hasNext() { 92 if (next == null) { 93 while (eachNode.hasNext()) { 94 next = (SOAPElement) eachNode.next(); 95 if (next instanceof DetailEntry) { |