BCodec (Apache Commons Codec 1.22.1 API)
Description: declaration: package: org.apache.commons.codec.net, class: BCodec

Package org.apache.commons.codec.net

# Class BCodec

java.lang.Object
org.apache.commons.codec.net.BCodec

All Implemented Interfaces:
  `Decoder`, `Encoder`, `StringDecoder`, `StringEncoder`

public class BCodec extends Object implements StringEncoder, StringDecoder
Identical to the Base64 encoding defined by RFC 1521 and allows a character set to be specified.

RFC 1522 describes techniques to allow the encoding of non-ASCII text in various portions of a RFC 822 [2] message header, in a manner which is unlikely to confuse existing message handling software.

This class is immutable and thread-safe.

Since:
  1.3
See Also:
  - MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final Charset`
  `charset`
  The default Charset used for string decoding and encoding.
  `protected static final String`
  `POSTFIX`
  Prefix.
  `protected static final String`
  `PREFIX`
  Postfix.
  `protected static final char`
  `SEP`
  Separator.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BCodec()`
  Constructs a new instance.
  `BCodec(String charsetName)`
  Constructs a new instance for the selection of a default Charset.
  `BCodec(Charset charset)`
  Constructs a new instance for the selection of a default Charset.
  `BCodec(Charset charset, CodecPolicy decodingPolicy)`
  Constructs a new instance for the selection of a default Charset.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `decode(Object value)`
  Decodes a Base64 object into its original form.
  `String`
  `decode(String value)`
  Decodes a Base64 string into its original form.
  `protected String`
  `decodeText(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.
  `Object`
  `encode(Object value)`
  Encodes an object into its Base64 form using the default Charset.
  `String`
  `encode(String strSource)`
  Encodes a string into its Base64 form using the default Charset.
  `String`
  `encode(String strSource, String sourceCharset)`
  Encodes a string into its Base64 form using the specified Charset.
  `String`
  `encode(String strSource, Charset sourceCharset)`
  Encodes a string into its Base64 form using the specified Charset.
  `protected String`
  `encodeText(String text, String charsetName)`
  Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
  `protected String`
  `encodeText(String text, Charset charset)`
  Applies an RFC 1522 compliant encoding scheme to the given string of text with the given charset.
  `Charset`
  `getCharset()`
  Gets the default Charset name used for string decoding and encoding.
  `String`
  `getDefaultCharset()`
  Gets the default Charset name used for string decoding and encoding.
  `protected 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`

- ## Field Details

  - ### SEP

    protected static final char SEP
    Separator.
    See Also:
      - Constant Field Values

  - ### POSTFIX

    protected static final String POSTFIX
    Prefix.
    See Also:
      - Constant Field Values

  - ### PREFIX

    protected static final String PREFIX
    Postfix.
    See Also:
      - Constant Field Values

  - ### charset

    protected final Charset charset
    The default Charset used for string decoding and encoding.

- ## Constructor Details

  - ### BCodec

    public BCodec()
    Constructs a new instance.

  - ### BCodec

    public BCodec(Charset charset)
    Constructs a new instance for the selection of a default Charset.
    Parameters:
      `charset` - the default string Charset to use.
    Since:
      1.7
    See Also:
      - `Charset`

  - ### BCodec

    public BCodec(Charset charset, CodecPolicy decodingPolicy)
    Constructs a new instance for the selection of a default Charset.
    Parameters:
      `charset` - the default string Charset to use.
      `decodingPolicy` - The decoding policy.
    Since:
      1.15
    See Also:
      - `Charset`

  - ### BCodec

    public BCodec(String charsetName)
    Constructs a new instance for the selection of a default Charset.
    Parameters:
      `charsetName` - the default Charset to use.
    Throws:
      `UnsupportedCharsetException` - If the named Charset is unavailable.
    Since:
      1.7 throws UnsupportedCharsetException if the named Charset is unavailable
    See Also:
      - `Charset`

- ## Method Details

  - ### decode

    public Object decode(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.

  - ### decode

    public String decode(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.

  - ### 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.

  - ### 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.

  - ### encode

    public Object encode(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.

  - ### encode

    public String encode(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.

  - ### encode

    public String encode(String strSource, 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 String encode(String strSource, 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.

  - ### getEncoding

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

  - ### 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

  - ### decodeText

    protected String decodeText(String text) throws DecoderException, 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 `doDecoding(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.
      `UnsupportedEncodingException` - Thrown if charset specified in the "encoded-word" header is not supported.

  - ### encodeText

    protected String encodeText(String text, 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:
      - `Charset`

  - ### encodeText

    protected String encodeText(String text, String charsetName) 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.
      `charsetName` - The charset to use.
    Returns:
      RFC 1522 compliant "encoded-word".
    Throws:
      `EncoderException` - Thrown if there is an error condition during the Encoding process.
      `UnsupportedCharsetException` - Thrown if charset is not available.
    See Also:
      - `Charset`

  - ### getCharset

    public Charset getCharset()
    Gets the default Charset name used for string decoding and encoding.
    Returns:
      The default Charset name.
    Since:
      1.7

  - ### getDefaultCharset

    public String getDefaultCharset()
    Gets the default Charset name used for string decoding and encoding.
    Returns:
      The default Charset name.