com.sun.xml.ws.encoding
Class MtomCodec.MtomStreamWriterImpl

java.lang.Object
  extended by com.sun.xml.ws.util.xml.XMLStreamWriterFilter
      extended by com.sun.xml.ws.encoding.MtomCodec.MtomStreamWriterImpl
All Implemented Interfaces:
XMLStreamWriterFactory.RecycleAware, HasEncoding, XMLStreamWriter, MtomStreamWriter, XMLStreamWriterEx
Enclosing class:
MtomCodec

public static class MtomCodec.MtomStreamWriterImpl
extends XMLStreamWriterFilter
implements XMLStreamWriterEx, MtomStreamWriter, HasEncoding


Field Summary
 
Fields inherited from class com.sun.xml.ws.util.xml.XMLStreamWriterFilter
writer
 
Constructor Summary
MtomCodec.MtomStreamWriterImpl(XMLStreamWriter w, List<MtomCodec.ByteArrayBuffer> mtomAttachments, String b, MTOMFeature myMtomFeature)
           
 
Method Summary
 AttachmentMarshaller getAttachmentMarshaller()
          JAXBMessage writes envelope directly to the OutputStream(for SJSXP, woodstox).
 String getEncoding()
           
 List<MtomCodec.ByteArrayBuffer> getMtomAttachments()
           
 NamespaceContextEx getNamespaceContext()
          
 Object getProperty(String name)
           
 void writeBinary(byte[] data, int start, int len, String contentType)
          Write the binary data.
 void writeBinary(DataHandler dataHandler)
          Writes the binary data.
 OutputStream writeBinary(String contentType)
          Writes the binary data.
 void writePCDATA(CharSequence data)
          Writes like XMLStreamWriter.writeCharacters(String) but hides actual data format.
 
Methods inherited from class com.sun.xml.ws.util.xml.XMLStreamWriterFilter
close, flush, getPrefix, onRecycled, setDefaultNamespace, setNamespaceContext, setPrefix, writeAttribute, writeAttribute, writeAttribute, writeCData, writeCharacters, writeCharacters, writeComment, writeDefaultNamespace, writeDTD, writeEmptyElement, writeEmptyElement, writeEmptyElement, writeEndDocument, writeEndElement, writeEntityRef, writeNamespace, writeProcessingInstruction, writeProcessingInstruction, writeStartDocument, writeStartDocument, writeStartDocument, writeStartElement, 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, setDefaultNamespace, setNamespaceContext, setPrefix, writeAttribute, writeAttribute, writeAttribute, writeCData, writeCharacters, writeCharacters, writeComment, writeDefaultNamespace, writeDTD, writeEmptyElement, writeEmptyElement, writeEmptyElement, writeEndDocument, writeEndElement, writeEntityRef, writeNamespace, writeProcessingInstruction, writeProcessingInstruction, writeStartDocument, writeStartDocument, writeStartDocument, writeStartElement, writeStartElement, writeStartElement
 

Constructor Detail

MtomCodec.MtomStreamWriterImpl

public MtomCodec.MtomStreamWriterImpl(XMLStreamWriter w,
                                      List<MtomCodec.ByteArrayBuffer> mtomAttachments,
                                      String b,
                                      MTOMFeature myMtomFeature)
Method Detail

writeBinary

public void writeBinary(byte[] data,
                        int start,
                        int len,
                        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

writeBinary

public void writeBinary(DataHandler dataHandler)
                 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:
dataHandler - always non-null. After this method call, the callee owns the data handler.
Throws:
XMLStreamException

writeBinary

public OutputStream writeBinary(String contentType)
                         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:
contentType - 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

writePCDATA

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

Specified by:
writePCDATA in interface XMLStreamWriterEx
Parameters:
data - 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

getProperty

public Object getProperty(String name)
                   throws IllegalArgumentException
Specified by:
getProperty in interface XMLStreamWriter
Overrides:
getProperty in class XMLStreamWriterFilter
Throws:
IllegalArgumentException

getAttachmentMarshaller

public AttachmentMarshaller getAttachmentMarshaller()
JAXBMessage writes envelope directly to the OutputStream(for SJSXP, woodstox). While writing, it calls the AttachmentMarshaller methods for adding attachments. JAXB writes xop:Include in this case.

Specified by:
getAttachmentMarshaller in interface MtomStreamWriter

getMtomAttachments

public List<MtomCodec.ByteArrayBuffer> getMtomAttachments()

getEncoding

public String getEncoding()
Specified by:
getEncoding in interface HasEncoding

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 XMLStreamWriterFilter


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