org.apache.commons.codec.binary
Class Hex

java.lang.Object
  extended by org.apache.commons.codec.binary.Hex
All Implemented Interfaces:
BinaryDecoder, BinaryEncoder, Decoder, Encoder

public class Hex
extends Object
implements BinaryEncoder, BinaryDecoder

Hex encoder and decoder. The charset used for certain operation can be set, the default is set in DEFAULT_CHARSET_NAME

Since:
1.1
Version:
$Id: Hex.java 801639 2009-08-06 13:15:10Z niallp $
Author:
Apache Software Foundation

Field Summary
static String DEFAULT_CHARSET_NAME
          Default charset name is CharEncoding.UTF_8
 
Constructor Summary
Hex()
          Creates a new codec with the default charset name DEFAULT_CHARSET_NAME
Hex(String csName)
          Creates a new codec with the given charset name.
 
Method Summary
 byte[] decode(byte[] array)
          Converts an array of character bytes representing hexadecimal values into an array of bytes of those same values.
 Object decode(Object object)
          Converts a String or an array of character bytes representing hexadecimal values into an array of bytes of those same values.
static byte[] decodeHex(char[] data)
          Converts an array of characters representing hexadecimal values into an array of bytes of those same values.
 byte[] encode(byte[] array)
          Converts an array of bytes into an array of bytes for the characters representing the hexadecimal values of each byte in order.
 Object encode(Object object)
          Converts a String or an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
static char[] encodeHex(byte[] data)
          Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
static char[] encodeHex(byte[] data, boolean toLowerCase)
          Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
protected static char[] encodeHex(byte[] data, char[] toDigits)
          Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order.
static String encodeHexString(byte[] data)
          Converts an array of bytes into a String representing the hexadecimal values of each byte in order.
 String getCharsetName()
          Gets the charset name.
protected static int toDigit(char ch, int index)
          Converts a hexadecimal character to an integer.
 String toString()
          Returns a string representation of the object, which includes the charset name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_CHARSET_NAME

public static final String DEFAULT_CHARSET_NAME
Default charset name is CharEncoding.UTF_8

See Also:
Constant Field Values
Constructor Detail

Hex

public Hex()
Creates a new codec with the default charset name DEFAULT_CHARSET_NAME


Hex

public Hex(String csName)
Creates a new codec with the given charset name.

Parameters:
csName - the charset name.
Since:
1.4
Method Detail

decodeHex

public static byte[] decodeHex(char[] data)
                        throws DecoderException
Converts an array of characters representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.

Parameters:
data - An array of characters containing hexadecimal digits
Returns:
A byte array containing binary data decoded from the supplied char array.
Throws:
DecoderException - Thrown if an odd number or illegal of characters is supplied

encodeHex

public static char[] encodeHex(byte[] data)
Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.

Parameters:
data - a byte[] to convert to Hex characters
Returns:
A char[] containing hexadecimal characters

encodeHex

public static char[] encodeHex(byte[] data,
                               boolean toLowerCase)
Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.

Parameters:
data - a byte[] to convert to Hex characters
toLowerCase - true converts to lowercase, false to uppercase
Returns:
A char[] containing hexadecimal characters
Since:
1.4

encodeHex

protected static char[] encodeHex(byte[] data,
                                  char[] toDigits)
Converts an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.

Parameters:
data - a byte[] to convert to Hex characters
toDigits - the output alphabet
Returns:
A char[] containing hexadecimal characters
Since:
1.4

encodeHexString

public static String encodeHexString(byte[] data)
Converts an array of bytes into a String representing the hexadecimal values of each byte in order. The returned String will be double the length of the passed array, as it takes two characters to represent any given byte.

Parameters:
data - a byte[] to convert to Hex characters
Returns:
A String containing hexadecimal characters
Since:
1.4

toDigit

protected static int toDigit(char ch,
                             int index)
                      throws DecoderException
Converts a hexadecimal character to an integer.

Parameters:
ch - A character to convert to an integer digit
index - The index of the character in the source
Returns:
An integer
Throws:
DecoderException - Thrown if ch is an illegal hex character

decode

public byte[] decode(byte[] array)
              throws DecoderException
Converts an array of character bytes representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.

Specified by:
decode in interface BinaryDecoder
Parameters:
array - An array of character bytes containing hexadecimal digits
Returns:
A byte array containing binary data decoded from the supplied byte array (representing characters).
Throws:
DecoderException - Thrown if an odd number of characters is supplied to this function
See Also:
decodeHex(char[])

decode

public Object decode(Object object)
              throws DecoderException
Converts a String or an array of character bytes representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed String or array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.

Specified by:
decode in interface Decoder
Parameters:
object - A String or, an array of character bytes containing hexadecimal digits
Returns:
A byte array containing binary data decoded from the supplied byte array (representing characters).
Throws:
DecoderException - Thrown if an odd number of characters is supplied to this function or the object is not a String or char[]
See Also:
decodeHex(char[])

encode

public byte[] encode(byte[] array)
Converts an array of bytes into an array of bytes for the characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed array, as it takes two characters to represent any given byte.

The conversion from hexadecimal characters to the returned bytes is performed with the charset named by getCharsetName().

Specified by:
encode in interface BinaryEncoder
Parameters:
array - a byte[] to convert to Hex characters
Returns:
A byte[] containing the bytes of the hexadecimal characters
Throws:
IllegalStateException - if the charsetName is invalid. This API throws IllegalStateException instead of UnsupportedEncodingException for backward compatibility.
See Also:
encodeHex(byte[])

encode

public Object encode(Object object)
              throws EncoderException
Converts a String or an array of bytes into an array of characters representing the hexadecimal values of each byte in order. The returned array will be double the length of the passed String or array, as it takes two characters to represent any given byte.

The conversion from hexadecimal characters to bytes to be encoded to performed with the charset named by getCharsetName().

Specified by:
encode in interface Encoder
Parameters:
object - a String, or byte[] to convert to Hex characters
Returns:
A char[] containing hexadecimal characters
Throws:
EncoderException - Thrown if the given object is not a String or byte[]
See Also:
encodeHex(byte[])

getCharsetName

public String getCharsetName()
Gets the charset name.

Returns:
the charset name.
Since:
1.4

toString

public String toString()
Returns a string representation of the object, which includes the charset name.

Overrides:
toString in class Object
Returns:
a string representation of the object.


Copyright © 2002-2009 The Apache Software Foundation. All Rights Reserved.