org.apache.commons.codec.net
Class BCodec

java.lang.Object
  extended by 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
Version:
$Id: BCodec.html 889935 2013-12-11 05:05:13Z ggregory $
See Also:
MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text

Field Summary
protected static String POSTFIX
          Prefix.
protected static String PREFIX
          Postfix.
protected static char SEP
          Separator.
 
Constructor Summary
BCodec()
          Default constructor.
BCodec(Charset charset)
          Constructor which allows for the selection of a default charset
BCodec(String charsetName)
          Constructor which allows for the selection of a default charset
 
Method Summary
 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 value)
          Encodes a string into its Base64 form using the default charset.
 String encode(String value, Charset charset)
          Encodes a string into its Base64 form using the specified charset.
 String encode(String value, String charset)
          Encodes a string into its Base64 form using the specified 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.
protected  String encodeText(String text, String charsetName)
          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).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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

BCodec

public BCodec()
Default constructor.


BCodec

public BCodec(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(String charsetName)
Constructor which allows 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:
Standard charsets
Method Detail

getEncoding

protected 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 String encode(String value,
                     Charset charset)
              throws EncoderException
Encodes a string into its Base64 form using the specified charset. Unsafe characters are escaped.

Parameters:
value - string to convert to Base64 form
charset - 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 value,
                     String charset)
              throws EncoderException
Encodes a string into its Base64 form using the specified charset. Unsafe characters are escaped.

Parameters:
value - string to convert to Base64 form
charset - the charset for value
Returns:
Base64 string
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.

encode

public String encode(String value)
              throws EncoderException
Encodes a string into its Base64 form using the default charset. Unsafe characters are escaped.

Specified by:
encode in interface StringEncoder
Parameters:
value - string to convert to Base64 form
Returns:
Base64 string
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding 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.

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.

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.

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

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:
Standard charsets

encodeText

protected String encodeText(String text,
                            String charsetName)
                     throws EncoderException,
                            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.
UnsupportedEncodingException - if charset is not available
See Also:
Standard charsets

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 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.
UnsupportedEncodingException - thrown if charset specified in the "encoded-word" header is not supported


Copyright © 2002-2013 The Apache Software Foundation. All Rights Reserved.