abstract class RFC1522Codec
extends java.lang.Object
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.
Modifier and Type | Field and Description |
---|---|
protected static java.lang.String |
POSTFIX
Prefix.
|
protected static java.lang.String |
PREFIX
Postfix.
|
protected static char |
SEP
Separator.
|
Constructor and Description |
---|
RFC1522Codec() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.String |
decodeText(java.lang.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 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.
|
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 abstract java.lang.String |
getEncoding()
Returns the codec name (referred to as encoding in the RFC 1522).
|
protected static final char SEP
protected static final java.lang.String POSTFIX
protected static final java.lang.String PREFIX
protected java.lang.String encodeText(java.lang.String text, java.nio.charset.Charset charset) throws EncoderException
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.
text
- a string to encodecharset
- a charset to be usedEncoderException
- thrown if there is an error condition during the Encoding process.protected java.lang.String encodeText(java.lang.String text, java.lang.String charsetName) throws EncoderException, java.io.UnsupportedEncodingException
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.
text
- a string to encodecharsetName
- the charset to useEncoderException
- thrown if there is an error condition during the Encoding process.java.io.UnsupportedEncodingException
- if charset is not availableprotected java.lang.String decodeText(java.lang.String text) throws DecoderException, java.io.UnsupportedEncodingException
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.
text
- a string to decodenull
if the input is null
.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 supportedprotected abstract java.lang.String getEncoding()
protected abstract byte[] doEncoding(byte[] bytes) throws EncoderException
bytes
- Data to be encodedEncoderException
- thrown if the Encoder encounters a failure condition during the encoding process.protected abstract byte[] doDecoding(byte[] bytes) throws DecoderException
bytes
- Data to be decodedDecoderException
- A decoder exception is thrown if a Decoder encounters a failure condition during the decode process.