Package org.apache.commons.codec.net
Class QCodec
- java.lang.Object
-
- org.apache.commons.codec.net.RFC1522Codec
-
- 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 for encoding blanks is mutable
setEncodeBlanks(boolean)but is not volatile, and accesses are not synchronized. If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronization is used to ensure safe publication of the value between threads, and must not invokesetEncodeBlanks(boolean)after initial setup.
-
-
Field Summary
Fields Modifier and Type Field Description private booleanencodeBlanksprivate static java.util.BitSetPRINTABLE_CHARSBitSet of printable characters as defined in RFC 1522.private static byteSPACEprivate static byteUNDERSCORE-
Fields inherited from class org.apache.commons.codec.net.RFC1522Codec
charset, POSTFIX, PREFIX, SEP
-
-
Constructor Summary
Constructors Constructor Description QCodec()Constructs a new instance.QCodec(java.lang.String charsetName)Constructs a new instance for the selection of a default Charset.QCodec(java.nio.charset.Charset charset)Constructs a new instance for the selection of a default Charset.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectdecode(java.lang.Object obj)Decodes a quoted-printable object into its original form.java.lang.Stringdecode(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.Objectencode(java.lang.Object obj)Encodes an object into its quoted-printable form using the default Charset.java.lang.Stringencode(java.lang.String sourceStr)Encodes a string into its quoted-printable form using the default Charset.java.lang.Stringencode(java.lang.String sourceStr, java.lang.String sourceCharset)Encodes a string into its quoted-printable form using the specified Charset.java.lang.Stringencode(java.lang.String sourceStr, java.nio.charset.Charset sourceCharset)Encodes a string into its quoted-printable form using the specified Charset.protected java.lang.StringgetEncoding()Returns the codec name (referred to as encoding in the RFC 1522).booleanisEncodeBlanks()Tests if optional transformation of SPACE characters is to be usedvoidsetEncodeBlanks(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, getCharset, getDefaultCharset
-
-
-
-
Field Detail
-
PRINTABLE_CHARS
private static final java.util.BitSet PRINTABLE_CHARS
BitSet of printable characters as defined in RFC 1522.
-
SPACE
private static final byte SPACE
- 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()
Constructs a new instance.
-
QCodec
public QCodec(java.nio.charset.Charset charset)
Constructs a new instance for the selection of a default Charset.- Parameters:
charset- the default string Charset to use.- Since:
- 1.7
- See Also:
Charset
-
QCodec
public QCodec(java.lang.String charsetName)
Constructs a new instance 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:
Charset
-
-
Method Detail
-
decode
public java.lang.Object decode(java.lang.Object obj) throws DecoderExceptionDecodes a quoted-printable object into its original form. Escaped characters are converted back to their original representation.- Specified by:
decodein interfaceDecoder- Parameters:
obj- quoted-printable object to convert into its original form.- Returns:
- original object.
- Throws:
DecoderException- Thrown if the argument is not aString. Thrown if a failure condition is encountered during the decode process.
-
decode
public java.lang.String decode(java.lang.String str) throws DecoderExceptionDecodes a quoted-printable string into its original form. Escaped characters are converted back to their original representation.- Specified by:
decodein interfaceStringDecoder- 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.
-
doDecoding
protected byte[] doDecoding(byte[] bytes) throws DecoderExceptionDescription copied from class:RFC1522CodecDecodes an array of bytes using the defined encoding scheme.- Specified by:
doDecodingin classRFC1522Codec- 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)
Description copied from class:RFC1522CodecEncodes an array of bytes using the defined encoding scheme.- Specified by:
doEncodingin classRFC1522Codec- Parameters:
bytes- Data to be encoded.- Returns:
- A byte array containing the encoded data.
-
encode
public java.lang.Object encode(java.lang.Object obj) throws EncoderExceptionEncodes an object into its quoted-printable form using the default Charset. Unsafe characters are escaped.- Specified by:
encodein interfaceEncoder- 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.
-
encode
public java.lang.String encode(java.lang.String sourceStr) throws EncoderExceptionEncodes a string into its quoted-printable form using the default Charset. Unsafe characters are escaped.- Specified by:
encodein interfaceStringEncoder- Parameters:
sourceStr- 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 java.lang.String encode(java.lang.String sourceStr, java.nio.charset.Charset sourceCharset) throws EncoderExceptionEncodes a string into its quoted-printable form using the specified Charset. Unsafe characters are escaped.- Parameters:
sourceStr- string to convert to quoted-printable form.sourceCharset- the Charset for sourceStr.- 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 sourceStr, java.lang.String sourceCharset) throws EncoderExceptionEncodes a string into its quoted-printable form using the specified Charset. Unsafe characters are escaped.- Parameters:
sourceStr- string to convert to quoted-printable form.sourceCharset- the Charset for sourceStr.- Returns:
- quoted-printable string.
- Throws:
EncoderException- thrown if a failure condition is encountered during the encoding process.
-
getEncoding
protected java.lang.String getEncoding()
Description copied from class:RFC1522CodecReturns the codec name (referred to as encoding in the RFC 1522).- Specified by:
getEncodingin classRFC1522Codec- Returns:
- name of the codec.
-
isEncodeBlanks
public boolean isEncodeBlanks()
Tests if optional transformation of SPACE characters is to be used- Returns:
trueif SPACE characters are to be transformed,falseotherwise.
-
setEncodeBlanks
public void setEncodeBlanks(boolean b)
Defines whether optional transformation of SPACE characters is to be used- Parameters:
b-trueif SPACE characters are to be transformed,falseotherwise.
-
-