Class RFC1522Codec

java.lang.Object
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
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final String
    Prefix.
    protected static final String
    Postfix.
    protected static final char
    Separator.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
    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, 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.
    protected abstract String
    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 Details

  • Constructor Details

    • RFC1522Codec

      RFC1522Codec()
  • Method Details

    • 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:
    • 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:
    • 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
    • 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.