Class Base64Data
- java.lang.Object
-
- com.sun.xml.bind.v2.runtime.output.Pcdata
-
- com.sun.xml.bind.v2.runtime.unmarshaller.Base64Data
-
- All Implemented Interfaces:
CharSequence
public final class Base64Data extends Pcdata
Fed to unmarshaller when the 'text' data is actually a virtual image of base64 encoding of the binary data transferred on the wire. Used for the MTOM support. This object is mutable and the owner of this object can reuse it with new data. Also used by the marshaller to write out the binary data that could be possibly attached.- Author:
- Kohsuke Kawaguchi, Martin Grebac
- See Also:
XmlVisitor.text(CharSequence)
,XMLSerializer.text(Pcdata,String)
-
-
Constructor Summary
Constructors Constructor Description Base64Data()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description char
charAt(int index)
Encode this binary data in the base64 encoding and returns the character at the specified position.byte[]
get()
Gets the raw data.DataHandler
getDataHandler()
Gets the raw data.int
getDataLen()
byte[]
getExact()
Gets the byte[] of the exact length.InputStream
getInputStream()
Gets the data as anInputStream
.String
getMimeType()
boolean
hasData()
Returns false if this object only hasDataHandler
and thereforeget()
operation is likely going to be expensive.int
length()
Gets the number of characters needed to represent this binary data in the base64 encoding.void
set(byte[] data, int len, String mimeType)
Fills in the data object by a portion of the byte[].void
set(byte[] data, String mimeType)
Fills in the data object by the byte[] of the exact length.void
set(DataHandler data)
Fills in the data object by aDataHandler
.CharSequence
subSequence(int start, int end)
Internally this is only used to split a text to a list, which doesn't happen that much for base64.String
toString()
Returns the base64 encoded string of this data.void
writeTo(char[] buf, int start)
Writes itself to the character array.void
writeTo(UTF8XmlOutput output)
Writes itself toUTF8XmlOutput
.void
writeTo(XMLStreamWriter output)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.CharSequence
chars, codePoints
-
-
-
-
Method Detail
-
set
public void set(byte[] data, int len, @Nullable String mimeType)
Fills in the data object by a portion of the byte[].- Parameters:
len
- data[0] to data[len-1] are treated as the data.
-
set
public void set(byte[] data, @Nullable String mimeType)
Fills in the data object by the byte[] of the exact length.- Parameters:
data
- this buffer may be owned directly by the unmarshaleld JAXB object.
-
set
public void set(DataHandler data)
Fills in the data object by aDataHandler
.
-
getDataHandler
public DataHandler getDataHandler()
Gets the raw data.
-
getExact
public byte[] getExact()
Gets the byte[] of the exact length.
-
getInputStream
public InputStream getInputStream() throws IOException
Gets the data as anInputStream
.- Throws:
IOException
-
hasData
public boolean hasData()
Returns false if this object only hasDataHandler
and thereforeget()
operation is likely going to be expensive.
-
get
public byte[] get()
Gets the raw data. The size of the byte array maybe larger than the actual length.
-
getDataLen
public int getDataLen()
-
getMimeType
public String getMimeType()
-
length
public int length()
Gets the number of characters needed to represent this binary data in the base64 encoding.
-
charAt
public char charAt(int index)
Encode this binary data in the base64 encoding and returns the character at the specified position.
-
subSequence
public CharSequence subSequence(int start, int end)
Internally this is only used to split a text to a list, which doesn't happen that much for base64. So this method should be smaller than faster.
-
toString
public String toString()
Returns the base64 encoded string of this data.- Specified by:
toString
in interfaceCharSequence
- Specified by:
toString
in classPcdata
-
writeTo
public void writeTo(char[] buf, int start)
Description copied from class:Pcdata
Writes itself to the character array.This method is used by most other
XmlOutput
. The default implementation involves in one extra char[] copying.The caller must provide a big enough buffer that can hold enough characters returned by the
CharSequence.length()
method.
-
writeTo
public void writeTo(UTF8XmlOutput output) throws IOException
Description copied from class:Pcdata
Writes itself toUTF8XmlOutput
.This is the most performance critical path for the marshaller, so it warrants its own method.
- Specified by:
writeTo
in classPcdata
- Throws:
IOException
-
writeTo
public void writeTo(XMLStreamWriter output) throws IOException, XMLStreamException
- Throws:
IOException
XMLStreamException
-
-