com.sun.xml.messaging.saaj.util.stax
Class SaajStaxWriterEx

java.lang.Object
  extended by com.sun.xml.messaging.saaj.util.stax.SaajStaxWriter
      extended by com.sun.xml.messaging.saaj.util.stax.SaajStaxWriterEx
All Implemented Interfaces:
XMLStreamWriter, MtomStreamWriter, XMLStreamWriterEx

public class SaajStaxWriterEx
extends SaajStaxWriter
implements XMLStreamWriterEx, MtomStreamWriter

SaajStaxWriterEx converts XMLStreamWriterEx calls to build an orasaaj SOAPMessage with BinaryTextImpl.

Author:
shih-chang.chen@oracle.com

Field Summary
protected static String href
           
protected static String Include
           
protected static String xopNS
           
 
Fields inherited from class com.sun.xml.messaging.saaj.util.stax.SaajStaxWriter
Body, currentElement, Envelope, envURI, Header, soap, xmlns
 
Constructor Summary
SaajStaxWriterEx(SOAPMessage msg, String uri)
           
 
Method Summary
 AttachmentMarshaller getAttachmentMarshaller()
           
 NamespaceContextEx getNamespaceContext()
          
 void writeAttribute(String prefix, String ns, String ln, String value)
           
 void writeBinary(byte[] data, int offset, int length, String contentType)
          Write the binary data.
 void writeBinary(DataHandler data)
          Writes the binary data.
 OutputStream writeBinary(String arg0)
          Writes the binary data.
 void writeEndElement()
           
 void writePCDATA(CharSequence arg0)
          Writes like XMLStreamWriter.writeCharacters(String) but hides actual data format.
 void writeStartElement(String prefix, String ln, String ns)
           
 
Methods inherited from class com.sun.xml.messaging.saaj.util.stax.SaajStaxWriter
close, flush, getEnvelope, getPrefix, getProperty, getSOAPMessage, setDefaultNamespace, setNamespaceContext, setPrefix, writeAttribute, writeAttribute, writeCData, writeCharacters, writeCharacters, writeComment, writeDefaultNamespace, writeDTD, writeEmptyElement, writeEmptyElement, writeEmptyElement, writeEndDocument, writeEntityRef, writeNamespace, writeProcessingInstruction, writeProcessingInstruction, writeStartDocument, writeStartDocument, writeStartDocument, writeStartElement, writeStartElement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.xml.stream.XMLStreamWriter
close, flush, getPrefix, getProperty, setDefaultNamespace, setNamespaceContext, setPrefix, writeAttribute, writeAttribute, writeCData, writeCharacters, writeCharacters, writeComment, writeDefaultNamespace, writeDTD, writeEmptyElement, writeEmptyElement, writeEmptyElement, writeEndDocument, writeEntityRef, writeNamespace, writeProcessingInstruction, writeProcessingInstruction, writeStartDocument, writeStartDocument, writeStartDocument, writeStartElement, writeStartElement
 

Field Detail

xopNS

protected static final String xopNS
See Also:
Constant Field Values

Include

protected static final String Include
See Also:
Constant Field Values

href

protected static final String href
See Also:
Constant Field Values
Constructor Detail

SaajStaxWriterEx

public SaajStaxWriterEx(SOAPMessage msg,
                        String uri)
                 throws SOAPException
Throws:
SOAPException
Method Detail

writeStartElement

public void writeStartElement(String prefix,
                              String ln,
                              String ns)
                       throws XMLStreamException
Specified by:
writeStartElement in interface XMLStreamWriter
Overrides:
writeStartElement in class SaajStaxWriter
Throws:
XMLStreamException

writeEndElement

public void writeEndElement()
                     throws XMLStreamException
Specified by:
writeEndElement in interface XMLStreamWriter
Overrides:
writeEndElement in class SaajStaxWriter
Throws:
XMLStreamException

writeAttribute

public void writeAttribute(String prefix,
                           String ns,
                           String ln,
                           String value)
                    throws XMLStreamException
Specified by:
writeAttribute in interface XMLStreamWriter
Overrides:
writeAttribute in class SaajStaxWriter
Throws:
XMLStreamException

getNamespaceContext

public NamespaceContextEx getNamespaceContext()
Description copied from interface: XMLStreamWriterEx

Specified by:
getNamespaceContext in interface XMLStreamWriter
Specified by:
getNamespaceContext in interface XMLStreamWriterEx
Overrides:
getNamespaceContext in class SaajStaxWriter

writeBinary

public void writeBinary(DataHandler data)
                 throws XMLStreamException
Description copied from interface: XMLStreamWriterEx
Writes the binary data.

This method works like the XMLStreamWriterEx.writeBinary(byte[], int, int, String) method, except that it takes the binary data in the form of DataHandler, which contains a MIME type (DataHandler.getContentType() as well as the payload DataHandler.getInputStream().

Specified by:
writeBinary in interface XMLStreamWriterEx
Parameters:
data - always non-null. After this method call, the callee owns the data handler.
Throws:
XMLStreamException

writeBinary

public OutputStream writeBinary(String arg0)
                         throws XMLStreamException
Description copied from interface: XMLStreamWriterEx
Writes the binary data.

This version of the writeBinary method allows the caller to produce the binary data by writing it to OutputStream.

It is the caller's responsibility to write and close a stream before it invokes any other methods on XMLStreamWriter. TODO: experimental. appreciate feedback

Specified by:
writeBinary in interface XMLStreamWriterEx
Parameters:
arg0 - See the content-type parameter of XMLStreamWriterEx.writeBinary(byte[], int, int, String). Must not be null.
Returns:
always return a non-null OutputStream.
Throws:
XMLStreamException

writeBinary

public void writeBinary(byte[] data,
                        int offset,
                        int length,
                        String contentType)
                 throws XMLStreamException
Description copied from interface: XMLStreamWriterEx
Write the binary data.

Conceptually (infoset-wise), this produces the base64-encoded binary data on the output. But this allows implementations like FastInfoset or XOP to do the smart thing.

The use of this method has some restriction to support XOP. Namely, this method must be invoked as a sole content of an element.

(data,start,len) triplet identifies the binary data to be written. After the method invocation, the callee owns the buffer.

Specified by:
writeBinary in interface XMLStreamWriterEx
contentType - this mandatory parameter identifies the MIME type of the binary data. If the MIME type isn't known by the caller, "application/octet-stream" can be always used to indicate "I don't know." Never null.
Throws:
XMLStreamException

writePCDATA

public void writePCDATA(CharSequence arg0)
                 throws XMLStreamException
Description copied from interface: XMLStreamWriterEx
Writes like XMLStreamWriter.writeCharacters(String) but hides actual data format.

Specified by:
writePCDATA in interface XMLStreamWriterEx
Parameters:
arg0 - The CharSequence that represents the character infoset items to be written.

The CharSequence is normally a String, but can be any other CharSequence implementation. For binary data, however, use of Base64Data is recommended (so that the consumer interested in seeing it as binary data may take advantage of mor efficient data representation.)

Throws:
XMLStreamException

getAttachmentMarshaller

public AttachmentMarshaller getAttachmentMarshaller()
Specified by:
getAttachmentMarshaller in interface MtomStreamWriter


Copyright © 2005-2015 Oracle Corporation. All Rights Reserved.