Class BCodec

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String POSTFIX
      Prefix.
      protected static java.lang.String PREFIX
      Postfix.
      protected static char SEP
      Separator.
    • Constructor Summary

      Constructors 
      Constructor Description
      BCodec()
      Default constructor.
      BCodec​(java.lang.String charsetName)
      Constructor which allows for the selection of a default Charset
      BCodec​(java.nio.charset.Charset charset)
      Constructor which allows for the selection of a default Charset
      BCodec​(java.nio.charset.Charset charset, CodecPolicy decodingPolicy)
      Constructor which allows for the selection of a default Charset.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object decode​(java.lang.Object value)
      Decodes a Base64 object into its original form.
      java.lang.String decode​(java.lang.String value)
      Decodes a Base64 string into its original form.
      protected java.lang.String decodeText​(java.lang.String text)
      Applies an RFC 1522 compliant decoding scheme to the given string of text.
      protected byte[] doDecoding​(byte[] bytes)
      Decodes an array of bytes using the defined encoding scheme.
      protected byte[] doEncoding​(byte[] bytes)
      Encodes an array of bytes using the defined encoding scheme.
      java.lang.Object encode​(java.lang.Object value)
      Encodes an object into its Base64 form using the default Charset.
      java.lang.String encode​(java.lang.String strSource)
      Encodes a string into its Base64 form using the default Charset.
      java.lang.String encode​(java.lang.String strSource, java.lang.String sourceCharset)
      Encodes a string into its Base64 form using the specified Charset.
      java.lang.String encode​(java.lang.String strSource, java.nio.charset.Charset sourceCharset)
      Encodes a string into its Base64 form using the specified Charset.
      protected java.lang.String encodeText​(java.lang.String text, java.lang.String charsetName)
      Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
      protected java.lang.String encodeText​(java.lang.String text, java.nio.charset.Charset charset)
      Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
      java.nio.charset.Charset getCharset()
      Gets the default Charset name used for string decoding and encoding.
      java.lang.String getDefaultCharset()
      Gets the default Charset name used for string decoding and encoding.
      protected java.lang.String getEncoding()
      Returns the codec name (referred to as encoding in the RFC 1522).
      boolean isStrictDecoding()
      Returns true if decoding behavior is strict.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BCodec

        public BCodec()
        Default constructor.
      • BCodec

        public BCodec​(java.nio.charset.Charset charset)
        Constructor which allows for the selection of a default Charset
        Parameters:
        charset - the default string Charset to use.
        Since:
        1.7
        See Also:
        Standard charsets
      • BCodec

        public BCodec​(java.nio.charset.Charset charset,
                      CodecPolicy decodingPolicy)
        Constructor which allows for the selection of a default Charset.
        Parameters:
        charset - the default string Charset to use.
        decodingPolicy - The decoding policy.
        Since:
        1.15
        See Also:
        Standard charsets
      • BCodec

        public BCodec​(java.lang.String charsetName)
        Constructor which allows for the selection of a default Charset
        Parameters:
        charsetName - the default Charset to use.
        Throws:
        java.nio.charset.UnsupportedCharsetException - If the named Charset is unavailable
        Since:
        1.7 throws UnsupportedCharsetException if the named Charset is unavailable
        See Also:
        Standard charsets
    • Method Detail

      • isStrictDecoding

        public boolean isStrictDecoding()
        Returns true if decoding behavior is strict. Decoding will raise a DecoderException if trailing bits are not part of a valid Base64 encoding.

        The default is false for lenient encoding. Decoding will compose trailing bits into 8-bit bytes and discard the remainder.

        Returns:
        true if using strict decoding
        Since:
        1.15
      • getEncoding

        protected java.lang.String getEncoding()
        Returns the codec name (referred to as encoding in the RFC 1522).
        Returns:
        name of the codec
      • doEncoding

        protected byte[] doEncoding​(byte[] bytes)
        Encodes an array of bytes using the defined encoding scheme.
        Parameters:
        bytes - Data to be encoded
        Returns:
        A byte array containing the encoded data
      • doDecoding

        protected byte[] doDecoding​(byte[] bytes)
        Decodes an array of bytes using the defined encoding scheme.
        Parameters:
        bytes - Data to be decoded
        Returns:
        a byte array that contains decoded data
      • encode

        public java.lang.String encode​(java.lang.String strSource,
                                       java.nio.charset.Charset sourceCharset)
                                throws EncoderException
        Encodes a string into its Base64 form using the specified Charset. Unsafe characters are escaped.
        Parameters:
        strSource - string to convert to Base64 form
        sourceCharset - the Charset for value
        Returns:
        Base64 string
        Throws:
        EncoderException - thrown if a failure condition is encountered during the encoding process.
        Since:
        1.7
      • encode

        public java.lang.String encode​(java.lang.String strSource,
                                       java.lang.String sourceCharset)
                                throws EncoderException
        Encodes a string into its Base64 form using the specified Charset. Unsafe characters are escaped.
        Parameters:
        strSource - string to convert to Base64 form
        sourceCharset - the Charset for value
        Returns:
        Base64 string
        Throws:
        EncoderException - thrown if a failure condition is encountered during the encoding process.
      • encode

        public java.lang.String encode​(java.lang.String strSource)
                                throws EncoderException
        Encodes a string into its Base64 form using the default Charset. Unsafe characters are escaped.
        Specified by:
        encode in interface StringEncoder
        Parameters:
        strSource - string to convert to Base64 form
        Returns:
        Base64 string
        Throws:
        EncoderException - thrown if a failure condition is encountered during the encoding process.
      • decode

        public java.lang.String decode​(java.lang.String value)
                                throws DecoderException
        Decodes a Base64 string into its original form. Escaped characters are converted back to their original representation.
        Specified by:
        decode in interface StringDecoder
        Parameters:
        value - Base64 string to convert into its original form
        Returns:
        original string
        Throws:
        DecoderException - A decoder exception is thrown if a failure condition is encountered during the decode process.
      • encode

        public java.lang.Object encode​(java.lang.Object value)
                                throws EncoderException
        Encodes an object into its Base64 form using the default Charset. Unsafe characters are escaped.
        Specified by:
        encode in interface Encoder
        Parameters:
        value - object to convert to Base64 form
        Returns:
        Base64 object
        Throws:
        EncoderException - thrown if a failure condition is encountered during the encoding process.
      • decode

        public java.lang.Object decode​(java.lang.Object value)
                                throws DecoderException
        Decodes a Base64 object into its original form. Escaped characters are converted back to their original representation.
        Specified by:
        decode in interface Decoder
        Parameters:
        value - Base64 object to convert into its original form
        Returns:
        original object
        Throws:
        DecoderException - Thrown if the argument is not a String. Thrown if a failure condition is encountered during the decode process.
      • getCharset

        public java.nio.charset.Charset getCharset()
        Gets the default Charset name used for string decoding and encoding.
        Returns:
        the default Charset name
        Since:
        1.7
      • getDefaultCharset

        public java.lang.String getDefaultCharset()
        Gets the default Charset name used for string decoding and encoding.
        Returns:
        the default Charset name
      • encodeText

        protected java.lang.String encodeText​(java.lang.String text,
                                              java.nio.charset.Charset charset)
                                       throws EncoderException
        Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.

        This method constructs the "encoded-word" header common to all the RFC 1522 codecs and then invokes doEncoding(byte []) method of a concrete class to perform the specific encoding.

        Parameters:
        text - a string to encode
        charset - a charset to be used
        Returns:
        RFC 1522 compliant "encoded-word"
        Throws:
        EncoderException - thrown if there is an error condition during the Encoding process.
        See Also:
        Standard charsets
      • encodeText

        protected java.lang.String encodeText​(java.lang.String text,
                                              java.lang.String charsetName)
                                       throws EncoderException,
                                              java.io.UnsupportedEncodingException
        Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.

        This method constructs the "encoded-word" header common to all the RFC 1522 codecs and then invokes doEncoding(byte []) method of a concrete class to perform the specific encoding.

        Parameters:
        text - a string to encode
        charsetName - the charset to use
        Returns:
        RFC 1522 compliant "encoded-word"
        Throws:
        EncoderException - thrown if there is an error condition during the Encoding process.
        java.io.UnsupportedEncodingException - if charset is not available
        See Also:
        Standard charsets
      • decodeText

        protected java.lang.String decodeText​(java.lang.String text)
                                       throws DecoderException,
                                              java.io.UnsupportedEncodingException
        Applies an RFC 1522 compliant decoding scheme to the given string of text.

        This method processes the "encoded-word" header common to all the RFC 1522 codecs and then invokes doEncoding(byte []) method of a concrete class to perform the specific decoding.

        Parameters:
        text - a string to decode
        Returns:
        A new decoded String or null if the input is null.
        Throws:
        DecoderException - thrown if there is an error condition during the decoding process.
        java.io.UnsupportedEncodingException - thrown if charset specified in the "encoded-word" header is not supported