Package internal.org.jvnet.staxex
Class Base64Data
- java.lang.Object
-
- internal.org.jvnet.staxex.Base64Data
-
- All Implemented Interfaces:
CharSequence,Cloneable
public class Base64Data extends Object implements CharSequence, Cloneable
Binary data represented as base64-encoded string in XML.Used in conjunction with
XMLStreamReaderExandXMLStreamWriterEx.- Author:
- Kohsuke Kawaguchi, Martin Grebac
-
-
Constructor Summary
Constructors Constructor Description Base64Data()Default constructorBase64Data(Base64Data that)Clone constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description charcharAt(int index)Encode this binary data in the base64 encoding and returns the character at the specified position.Base64Dataclone()byte[]get()Gets the raw data.DataHandlergetDataHandler()Gets the raw data.intgetDataLen()Gets the length of the binary data counted in bytes.byte[]getExact()Gets the byte[] of the exact length.StringgetHrefCid()InputStreamgetInputStream()Gets the data as anInputStream.StringgetMimeType()booleanhasData()Returns false if this object only hasDataHandlerand thereforeget()operation is likely going to be expensive.intlength()Gets the number of characters needed to represent this binary data in the base64 encoding.voidset(byte[] data, int len, String mimeType)Fills in the data object by a portion of the byte[].voidset(byte[] data, int len, String mimeType, boolean cloneByRef)Fills in the data object by a portion of the byte[].voidset(byte[] data, String mimeType)Fills in the data object by the byte[] of the exact length.voidset(DataHandler data)Fills in the data object by aDataHandler.voidsetHrefCid(String cid)CharSequencesubSequence(int start, int end)Internally this is only used to split a text to a list, which doesn't happen that much for base64.StringtoString()Returns the base64 encoded string of this data.voidwriteTo(char[] buf, int start)voidwriteTo(XMLStreamWriter output)-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.CharSequence
chars, codePoints
-
-
-
-
Constructor Detail
-
Base64Data
public Base64Data()
Default constructor
-
Base64Data
public Base64Data(Base64Data that)
Clone constructor- Parameters:
that- needs to be cloned
-
-
Method Detail
-
set
public void set(byte[] data, int len, String mimeType, boolean cloneByRef)Fills in the data object by a portion of the byte[].- Parameters:
data- actual datalen- data[0] to data[len-1] are treated as the data.mimeType- MIME typecloneByRef- true if data[] can be cloned by reference
-
set
public void set(byte[] data, int len, String mimeType)Fills in the data object by a portion of the byte[].- Parameters:
data- actual data byteslen- data[0] to data[len-1] are treated as the data.mimeType- MIME type
-
set
public void set(byte[] data, 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.mimeType- MIME type
-
set
public void set(DataHandler data)
Fills in the data object by aDataHandler.- Parameters:
data- DataHandler for the data
-
getDataHandler
public DataHandler getDataHandler()
Gets the raw data. If the returned DataHandler isStreamingDataHandler, callees may need to downcast to take advantage of its capabilities.- Returns:
- DataHandler for the data
- See Also:
StreamingDataHandler
-
getExact
public byte[] getExact()
Gets the byte[] of the exact length.- Returns:
- byte[] for data
-
getInputStream
public InputStream getInputStream() throws IOException
Gets the data as anInputStream.- Returns:
- data as InputStream
- Throws:
IOException- if i/o error occurs
-
hasData
public boolean hasData()
Returns false if this object only hasDataHandlerand thereforeget()operation is likely going to be expensive.- Returns:
- false if it has only DataHandler
-
get
public byte[] get()
Gets the raw data. The size of the byte array maybe larger than the actual length.- Returns:
- data as byte[], the array may be larger
-
getDataLen
public int getDataLen()
Gets the length of the binary data counted in bytes. Note that if this object encapsulatesDataHandler, this method would have to read the whole thing intobyte[]just to count the length, becauseDataHandlerdoesn't easily expose the length.- Returns:
- no of bytes
-
getMimeType
public String getMimeType()
-
length
public int length()
Gets the number of characters needed to represent this binary data in the base64 encoding.- Specified by:
lengthin interfaceCharSequence
-
charAt
public char charAt(int index)
Encode this binary data in the base64 encoding and returns the character at the specified position.- Specified by:
charAtin interfaceCharSequence
-
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.- Specified by:
subSequencein interfaceCharSequence
-
toString
public String toString()
Returns the base64 encoded string of this data.- Specified by:
toStringin interfaceCharSequence- Overrides:
toStringin classObject
-
writeTo
public void writeTo(char[] buf, int start)
-
writeTo
public void writeTo(XMLStreamWriter output) throws IOException, XMLStreamException
- Throws:
IOExceptionXMLStreamException
-
clone
public Base64Data clone()
-
getHrefCid
public String getHrefCid()
-
setHrefCid
public void setHrefCid(String cid)
-
-