Class 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 Detail

      • Base64Data

        public Base64Data()
    • 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.
      • getDataHandler

        public DataHandler getDataHandler()
        Gets the raw data.
      • getExact

        public byte[] getExact()
        Gets the byte[] of the exact length.
      • hasData

        public boolean hasData()
        Returns false if this object only has DataHandler and therefore get() 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.
      • 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.

        Overrides:
        writeTo in class Pcdata