org.apache.commons.codec.net
Class RFC1522Codec

java.lang.Object
  extended by org.apache.commons.codec.net.RFC1522Codec
Direct Known Subclasses:
BCodec, QCodec

abstract class RFC1522Codec
extends Object

Implements methods common to all codecs defined in RFC 1522.

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: RFC1522Codec.java 1379145 2012-08-30 21:02:52Z tn $
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
RFC1522Codec()
           
 
Method Summary
protected  String decodeText(String text)
          Applies an RFC 1522 compliant decoding scheme to the given string of text.
protected abstract  byte[] doDecoding(byte[] bytes)
          Decodes an array of bytes using the defined encoding scheme.
protected abstract  byte[] doEncoding(byte[] bytes)
          Encodes an array of bytes using the defined encoding scheme.
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.
protected abstract  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

RFC1522Codec

RFC1522Codec()
Method Detail

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

getEncoding

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

Returns:
name of the codec

doEncoding

protected abstract byte[] doEncoding(byte[] bytes)
                              throws EncoderException
Encodes an array of bytes using the defined encoding scheme.

Parameters:
bytes - Data to be encoded
Returns:
A byte array containing the encoded data
Throws:
EncoderException - thrown if the Encoder encounters a failure condition during the encoding process.

doDecoding

protected abstract byte[] doDecoding(byte[] bytes)
                              throws DecoderException
Decodes an array of bytes using the defined encoding scheme.

Parameters:
bytes - Data to be decoded
Returns:
a byte array that contains decoded data
Throws:
DecoderException - A decoder exception is thrown if a Decoder encounters a failure condition during the decode process.


commons-codec version 1.7-SNAPSHOT - Copyright © 2002-2013 - Apache Software Foundation