Class Hex
- java.lang.Object
-
- com.braintreegateway.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 inDEFAULT_CHARSET_NAME- Since:
- 1.1
- Version:
- $Id: Hex.java 801639 2009-08-06 13:15:10Z niallp $
- Author:
- Apache Software Foundation
-
-
Field Summary
Fields Modifier and Type Field Description private StringcharsetNamestatic StringDEFAULT_CHARSET_NAMEDefault charset name isCharEncoding.UTF_8private static char[]DIGITS_LOWERUsed to build output as Hexprivate static char[]DIGITS_UPPERUsed to build output as Hex
-
Constructor Summary
Constructors Constructor Description Hex()Creates a new codec with the default charset nameDEFAULT_CHARSET_NAMEHex(String csName)Creates a new codec with the given charset name.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]decode(byte[] array)Converts an array of character bytes representing hexadecimal values into an array of bytes of those same values.Objectdecode(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.Objectencode(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 StringencodeHexString(byte[] data)Converts an array of bytes into a String representing the hexadecimal values of each byte in order.StringgetCharsetName()Gets the charset name.protected static inttoDigit(char ch, int index)Converts a hexadecimal character to an integer.StringtoString()Returns a string representation of the object, which includes the charset name.
-
-
-
Field Detail
-
DEFAULT_CHARSET_NAME
public static final String DEFAULT_CHARSET_NAME
Default charset name isCharEncoding.UTF_8- See Also:
- Constant Field Values
-
DIGITS_LOWER
private static final char[] DIGITS_LOWER
Used to build output as Hex
-
DIGITS_UPPER
private static final char[] DIGITS_UPPER
Used to build output as Hex
-
charsetName
private final String charsetName
-
-
Constructor Detail
-
Hex
public Hex()
Creates a new codec with the default charset nameDEFAULT_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 DecoderExceptionConverts 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 characterstoLowerCase-trueconverts to lowercase,falseto 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 characterstoDigits- 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 DecoderExceptionConverts a hexadecimal character to an integer.- Parameters:
ch- A character to convert to an integer digitindex- 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 DecoderExceptionConverts 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:
decodein interfaceBinaryDecoder- 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:
decodein interfaceDecoder- 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:
encodein interfaceBinaryEncoder- 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 throwsIllegalStateExceptioninstead ofUnsupportedEncodingExceptionfor 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:
encodein interfaceEncoder- 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
-
-