protected SOAPPartImpl doCloneNode() { handleNewSource(); SOAPPartImpl newSoapPart = duplicateType(); newSoapPart.headers = MimeHeadersUtil.copy(this.headers); newSoapPart.source = this.source; return newSoapPart; }
@Override public InputStream getInputStream() throws IOException { return getContentAsStream(); } };
@Override public String getName() { return getContentId(); }
@Override public org.w3c.dom.Node removeChild(org.w3c.dom.Node arg0) throws DOMException { handleNewSource(); return document.removeChild(arg0); }
public StaxReaderBridge(XMLStreamReader reader, SOAPPartImpl soapPart) throws SOAPException { super(soapPart); in = reader; final String soapEnvNS = soapPart.getSOAPNamespace(); breakpoint = new XMLStreamReaderToXMLStreamWriter.Breakpoint(reader, saajWriter) { boolean seenBody = false; boolean stopedAtBody = false; @Override public boolean proceedBeforeStartElement() { if (stopedAtBody) return true; if (seenBody) { stopedAtBody = true; return false; } if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){ seenBody = true; } return true; } }; }
@Override public String getContentType() { return getContentTypeString(); }
@Override public SOAPEnvelope getEnvelope() throws SOAPException { // If there is no SOAP envelope already created, then create // one from a source if one exists. If there is a newer source // then use that source. if (sourceWasSet) sourceWasSet = false; lookForEnvelope(); if (envelope != null) { if (source != null) { // there's a newer source, use it document.removeChild(envelope); envelope = createEnvelopeFromSource(); } } else if (source != null) { envelope = createEnvelopeFromSource(); } else { envelope = createEmptyEnvelope(null); document.insertBefore(((EnvelopeImpl) envelope).getDomElement(), null); } return envelope; }
MimeBodyPart getMimePart() throws SOAPException { try { MimeBodyPart headerEnvelope = new MimeBodyPart(); headerEnvelope.setDataHandler(getDataHandler()); AttachmentPartImpl.copyMimeHeaders(headers, headerEnvelope); return headerEnvelope; } catch (SOAPException ex) { throw ex; } catch (Exception ex) { log.severe("SAAJ0548.soap.cannot.externalize.hdr"); throw new SOAPExceptionImpl("Unable to externalize header", ex); } }
private static Envelope parseEnvelopeStax(Source src, SOAPPartImpl soapPart) throws SOAPException { XMLStreamReader streamReader = null; if (src instanceof StAXSource) { streamReader = ((StAXSource) src).getXMLStreamReader(); } try { if (streamReader == null) { if (xmlInputFactory == null) xmlInputFactory = XMLInputFactory.newInstance(); streamReader = xmlInputFactory.createXMLStreamReader(src); } // SaajStaxWriter saajWriter = new SaajStaxWriter(soapPart.message, soapPart.document); // XMLStreamReaderToXMLStreamWriter readerWriterBridge = new XMLStreamReaderToXMLStreamWriter( // streamReader, saajWriter, soapPart.getSOAPNamespace()); StaxBridge readerWriterBridge = new StaxReaderBridge(streamReader, soapPart); //bridge will stop reading at body element, and parse upon request, so save it //on the envelope readerWriterBridge.bridgeEnvelopeAndHeaders(); Envelope env = (Envelope) soapPart.getEnvelope(); env.setStaxBridge(readerWriterBridge); return env; } catch (Exception e) { throw new SOAPException(e); } } private static Envelope parseEnvelopeSax(Source src, SOAPPartImpl soapPart)
headerAndBody.addBodyPart( ((AttachmentPartImpl) eachAttachment.next()) .getMimePart());
protected void doGetDocumentElement() { handleNewSource(); try { lookForEnvelope(); } catch (SOAPException e) { } }
public StaxBridge(SOAPPartImpl soapPart) throws SOAPException { readerToWriter = new XMLStreamReaderToXMLStreamWriter(); saajWriter = new SaajStaxWriter(soapPart.message, soapPart.getSOAPNamespace()); }
@Override public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild) throws DOMException { handleNewSource(); return document.appendChild(newChild); }
public StaxLazySourceBridge(LazyEnvelopeSource src, SOAPPartImpl soapPart) throws SOAPException { super(soapPart); lazySource = src; final String soapEnvNS = soapPart.getSOAPNamespace(); try { breakpoint = new XMLStreamReaderToXMLStreamWriter.Breakpoint(src.readToBodyStarTag(), saajWriter) { @Override public boolean proceedAfterStartElement() { if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){ return false; } else return true; } }; } catch (XMLStreamException e) { throw new SOAPException(e); } }
private final InputStream getHeaderBytes() throws IOException { SOAPPartImpl sp = (SOAPPartImpl) getSOAPPart(); return sp.getContentAsStream(); }
@Override public org.w3c.dom.Node replaceChild( org.w3c.dom.Node arg0, org.w3c.dom.Node arg1) throws DOMException { handleNewSource(); return document.replaceChild(arg0, arg1); }
@Override public NodeList getElementsByTagNameNS( String namespaceURI, String localName) { handleNewSource(); return document.getElementsByTagNameNS(namespaceURI, localName); }
@Override public Element getElementById(String elementId) { handleNewSource(); return document.getElementById(elementId); } @Override
@Override public org.w3c.dom.Node cloneNode(boolean deep) { handleNewSource(); return document.cloneNode(deep); }
@Override public NodeList getChildNodes() { handleNewSource(); return document.getChildNodes(); }