org.apache.commons.codec.net
Class QCodec

java.lang.Object
  extended by org.apache.commons.codec.net.RFC1522Codec
      extended by org.apache.commons.codec.net.QCodec
All 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.

This class is conditionally thread-safe. The instance field encodeBlanks is mutable setEncodeBlanks(boolean) but is not volatile, and accesses are not synchronised. If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronisation is used to ensure safe publication of the value between threads, and must not invoke setEncodeBlanks(boolean) after initial setup.

Since:
1.3
Version:
$Id: QCodec.java 1429868 2013-01-07 16:08:05Z ggregory $
See Also:
MIME (Multipurpose Internet Mail Extensions) Part Two: Message Header Extensions for Non-ASCII Text

Field Summary
private static byte BLANK
           
private  java.nio.charset.Charset charset
          The default charset used for string decoding and encoding.
private  boolean encodeBlanks
           
private static java.util.BitSet PRINTABLE_CHARS
          BitSet of printable characters as defined in RFC 1522.
private static byte UNDERSCORE
           
 
Fields inherited from class org.apache.commons.codec.net.RFC1522Codec
POSTFIX, PREFIX, SEP
 
Constructor Summary
QCodec()
          Default constructor.
QCodec(java.nio.charset.Charset charset)
          Constructor which allows for the selection of a default charset.
QCodec(java.lang.String charsetName)
          Constructor which allows for the selection of a default charset.
 
Method Summary
 java.lang.Object decode(java.lang.Object obj)
          Decodes a quoted-printable object into its original form.
 java.lang.String decode(java.lang.String str)
          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.
 java.lang.Object encode(java.lang.Object obj)
          Encodes an object into its quoted-printable form using the default charset.
 java.lang.String encode(java.lang.String str)
          Encodes a string into its quoted-printable form using the default charset.
 java.lang.String encode(java.lang.String str, java.nio.charset.Charset charset)
          Encodes a string into its quoted-printable form using the specified charset.
 java.lang.String encode(java.lang.String str, java.lang.String charset)
          Encodes a string into its quoted-printable form using the specified charset.
 java.nio.charset.Charset getCharset()
          Gets the default charset name used for string decoding and encoding.
 java.lang.String getDefaultCharset()
          Gets the default charset name used for string decoding and encoding.
protected  java.lang.String getEncoding()
          Returns the codec name (referred to as encoding in the RFC 1522).
 boolean isEncodeBlanks()
          Tests if optional transformation of SPACE characters is to be used
 void setEncodeBlanks(boolean b)
          Defines whether optional transformation of SPACE characters is to be used
 
Methods inherited from class org.apache.commons.codec.net.RFC1522Codec
decodeText, encodeText, encodeText
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

charset

private final java.nio.charset.Charset charset
The default charset used for string decoding and encoding.


PRINTABLE_CHARS

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


BLANK

private static final byte BLANK
See Also:
Constant Field Values

UNDERSCORE

private static final byte UNDERSCORE
See Also:
Constant Field Values

encodeBlanks

private boolean encodeBlanks
Constructor Detail

QCodec

public QCodec()
Default constructor.


QCodec

public QCodec(java.nio.charset.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

QCodec

public QCodec(java.lang.String charsetName)
Constructor which allows for the selection of a default charset.

Parameters:
charsetName - the charset to use.
Throws:
java.nio.charset.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 java.lang.String getEncoding()
Description copied from class: RFC1522Codec
Returns the codec name (referred to as encoding in the RFC 1522).

Specified by:
getEncoding in class RFC1522Codec
Returns:
name of the codec

doEncoding

protected byte[] doEncoding(byte[] bytes)
Description copied from class: RFC1522Codec
Encodes an array of bytes using the defined encoding scheme.

Specified by:
doEncoding in class RFC1522Codec
Parameters:
bytes - Data to be encoded
Returns:
A byte array containing the encoded data

doDecoding

protected byte[] doDecoding(byte[] bytes)
                     throws DecoderException
Description copied from class: RFC1522Codec
Decodes an array of bytes using the defined encoding scheme.

Specified by:
doDecoding in class 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.

encode

public java.lang.String encode(java.lang.String str,
                               java.nio.charset.Charset charset)
                        throws EncoderException
Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.

Parameters:
str - string to convert to quoted-printable form
charset - the charset for str
Returns:
quoted-printable string
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.
Since:
1.7

encode

public java.lang.String encode(java.lang.String str,
                               java.lang.String charset)
                        throws EncoderException
Encodes a string into its quoted-printable form using the specified charset. Unsafe characters are escaped.

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

encode

public java.lang.String encode(java.lang.String str)
                        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:
str - string to convert to quoted-printable form
Returns:
quoted-printable string
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.

decode

public java.lang.String decode(java.lang.String str)
                        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:
str - 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.

encode

public java.lang.Object encode(java.lang.Object obj)
                        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:
obj - object to convert to quoted-printable form
Returns:
quoted-printable object
Throws:
EncoderException - thrown if a failure condition is encountered during the encoding process.

decode

public java.lang.Object decode(java.lang.Object obj)
                        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:
obj - quoted-printable 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 java.nio.charset.Charset getCharset()
Gets the default charset name used for string decoding and encoding.

Returns:
the default charset name
Since:
1.7

getDefaultCharset

public java.lang.String getDefaultCharset()
Gets the default charset name used for string decoding and encoding.

Returns:
the default charset name

isEncodeBlanks

public boolean isEncodeBlanks()
Tests if optional transformation 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 transformation of SPACE characters is to be used

Parameters:
b - true if SPACE characters are to be transformed, false otherwise


commons-codec version 1.8 - Copyright © 2002-2013 - Apache Software Foundation