org.apache.commons.codec.net

Class QCodec

Implemented Interfaces:
Decoder, Encoder, StringDecoder, StringEncoder

public class QCodec
extends RFC1522Codec
implements StringEncoder, StringDecoder

Similar to the Quoted-Printable content-transfer-encoding defined in RFC 1521 and designed to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding.

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.

Version:
$Id: QCodec.java,v 1.6 2004/05/24 00:24:32 ggregory Exp $
Author:
Apache Software Foundation
Since:
1.3
See Also:
MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text

Field Summary

private static byte
BLANK
private static BitSet
PRINTABLE_CHARS
BitSet of printable characters as defined in RFC 1522.
private static byte
UNDERSCORE
private String
charset
The default charset used for string decoding and encoding.
private boolean
encodeBlanks

Constructor Summary

QCodec()
Default constructor.
QCodec(String charset)
Constructor which allows for the selection of a default charset

Method Summary

Object
decode(Object pObject)
Decodes a quoted-printable object into its original form.
String
decode(String pString)
Decodes a quoted-printable string into its original form.
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 pObject)
Encodes an object into its quoted-printable form using the default charset.
String
encode(String pString)
Encodes a string into its quoted-printable form using the default charset.
String
encode(String pString, String charset)
Encodes a string into its quoted-printable form using the specified charset.
String
getDefaultCharset()
The default charset used for string decoding and encoding.
protected String
getEncoding()
Returns the codec name (referred to as encoding in the RFC 1522)
boolean
isEncodeBlanks()
Tests if optional tranformation of SPACE characters is to be used
void
setEncodeBlanks(boolean b)
Defines whether optional tranformation of SPACE characters is to be used

Methods inherited from class org.apache.commons.codec.net.RFC1522Codec

decodeText, doDecoding, doEncoding, encodeText, getEncoding

Field Details

BLANK

private static byte BLANK

PRINTABLE_CHARS

private static final BitSet PRINTABLE_CHARS
BitSet of printable characters as defined in RFC 1522.

UNDERSCORE

private static byte UNDERSCORE

charset

private String charset
The default charset used for string decoding and encoding.

encodeBlanks

private boolean encodeBlanks

Constructor Details

QCodec

public QCodec()
Default constructor.

QCodec

public QCodec(String charset)
Constructor which allows for the selection of a default charset
Parameters:
charset - the default string charset to use.

Method Details

decode

public Object decode(Object pObject)
            throws DecoderException
Decodes a quoted-printable object into its original form. Escaped characters are converted back to their original representation.
Specified by:
decode in interface Decoder
Parameters:
pObject - quoted-printable object to convert into its original form
Returns:
original object
Throws:
DecoderException - A decoder exception is thrown if a failure condition is encountered during the decode process.

decode

public String decode(String pString)
            throws DecoderException
Decodes a quoted-printable string into its original form. Escaped characters are converted back to their original representation.
Specified by:
decode in interface StringDecoder
Parameters:
pString - quoted-printable 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)
            throws DecoderException
Decodes an array of bytes using the defined encoding scheme
Overrides:
doDecoding in interface RFC1522Codec
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.

doEncoding

protected byte[] doEncoding(byte[] bytes)
            throws EncoderException
Encodes an array of bytes using the defined encoding scheme
Overrides:
doEncoding in interface RFC1522Codec
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.

encode

public Object encode(Object pObject)
            throws EncoderException
Encodes an object into its quoted-printable form using the default charset. Unsafe characters are escaped.
Specified by:
encode in interface Encoder
Parameters:
pObject - object to convert to quoted-printable form
Returns:
quoted-printable object
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.

encode

public String encode(String pString)
            throws EncoderException
Encodes a string into its quoted-printable form using the default charset. Unsafe characters are escaped.
Specified by:
encode in interface StringEncoder
Parameters:
pString - string to convert to quoted-printable form
Returns:
quoted-printable string
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.

encode

public String encode(String pString,
                     String charset)
            throws EncoderException
Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.
Parameters:
pString - string to convert to quoted-printable form
charset - the charset for pString
Returns:
quoted-printable string
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.

getDefaultCharset

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

getEncoding

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

isEncodeBlanks

public boolean isEncodeBlanks()
Tests if optional tranformation of SPACE characters is to be used
Returns:
true if SPACE characters are to be transformed, false otherwise

setEncodeBlanks

public void setEncodeBlanks(boolean b)
Defines whether optional tranformation of SPACE characters is to be used
Parameters:
b - true if SPACE characters are to be transformed, false otherwise

commons-codec version 1.3 - Copyright © 2002-2004 - Apache Software Foundation