Class ByteOps
- java.lang.Object
-
- com.adobe.internal.pdftoolkit.core.util.ByteOps
-
public final class ByteOps extends java.lang.Object
This class provides many utility methods over bytes.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
copy(byte[] src, int srcOff, byte[] dst, int dstOff, int len)
Copies source to destion array.static int
endsWithPartial(byte[] src, int srcOff, byte[] suffix, int sufOff)
Returns the index at which this suffix exists in the src array.static int
equalArrays(byte[] src, int srcOff, byte[] dst, int dstOff, int len)
Checks the equality of two byte arrays.static byte
getHex(byte b)
Converts the specified hexidecimal character to a byte value.static byte[]
getHex(byte[] src)
Returns hex representation of src.static byte[]
getHex(byte[] src, int size)
Hex encodes the data in src to a new byte array that is of length size.static ASName
getHexName(byte[] in)
Converts the contents of a byte[] to a hex name (lowercase).static ASName
getHexName(byte[] in, boolean uppercase)
Converts the contents of a byte[] to a hex name.static java.lang.String
getHexString(byte[] in)
Converts the contents of a byte[] to a hex string.static java.lang.String
getHexString(byte[] in, int size)
Converts the contents of a byte[] to a hex string.static java.lang.String
getHexString2(byte[] in)
Converts the contents of a byte[] to a hex string.static byte
getNumericalValue(byte b)
Returns the numerical value for a byte that is used to represent a character.static java.lang.String
getUnicode(byte[] unicodeBytes)
In presumption that the input byte array contains Unicode characters converts them to Java String.static boolean
isASCII(byte[] bytes)
static boolean
isDigit(byte b)
Determines whether the specified byte represents a decimal digit.static boolean
isHexDigit(byte b)
Determines whether the specified byte represents a hex digit.static boolean
isLeadingOctalDigit(byte b)
Determines whether the specified byte represents a leading octal digit.static boolean
isLiteral(byte b)
Determines whether the specified byte represents a literal PDF character.static boolean
isOctalDigit(byte b)
Determines whether the specified byte represents an octal digit.static boolean
isRegular(byte b)
Determines whether the specified byte represents a regular PDF character.static boolean
isWhitespace(byte b)
Determines whether the specified byte represents a PDF whitespace character.static boolean
isWhitespace(char c)
Determines whether the specified character represents a PDF whitespace character.static int
readField(byte[] s, int pos)
Reads two characters that are assumed to be digits and combines them into a decimal value.static byte[]
splitInt2Bytes(int src, int count)
Converts the integer passed here to byte array.static byte[]
toByte(short word0)
static byte[]
xorArray(byte[] array, byte with)
Computes the XOR of the individual bytes of arrays passed here and returns it.
-
-
-
Method Detail
-
isWhitespace
public static final boolean isWhitespace(byte b)
Determines whether the specified byte represents a PDF whitespace character. Whitespace characters are defined in section 3.1.1 of the PDF Reference Manual version 1.4.- Parameters:
b
- Character to test- Returns:
- true if the character is whitespace.
-
isWhitespace
public static final boolean isWhitespace(char c)
Determines whether the specified character represents a PDF whitespace character. Whitespace characters are defined in section 3.1.1 of the PDF Reference Manual version 1.4.- Parameters:
c
- Character to test- Returns:
- true if the character is whitespace.
-
isASCII
public static boolean isASCII(byte[] bytes)
-
xorArray
public static final byte[] xorArray(byte[] array, byte with)
Computes the XOR of the individual bytes of arrays passed here and returns it.
-
endsWithPartial
public static int endsWithPartial(byte[] src, int srcOff, byte[] suffix, int sufOff)
Returns the index at which this suffix exists in the src array.
-
equalArrays
public static final int equalArrays(byte[] src, int srcOff, byte[] dst, int dstOff, int len)
Checks the equality of two byte arrays.
-
copy
public static final int copy(byte[] src, int srcOff, byte[] dst, int dstOff, int len)
Copies source to destion array.
-
splitInt2Bytes
public static final byte[] splitInt2Bytes(int src, int count)
Converts the integer passed here to byte array.
-
isRegular
public static final boolean isRegular(byte b)
Determines whether the specified byte represents a regular PDF character. Regular characters are defined in section 3.1.1 of the PDF Reference Manual version 1.4.- Parameters:
b
- Character to test- Returns:
- true if the character is regular.
-
isLiteral
public static final boolean isLiteral(byte b)
Determines whether the specified byte represents a literal PDF character. String literal characters are defined in section 3.2.3 of the PDF Reference Manual version 1.4.- Parameters:
b
- Character to test- Returns:
- true if the character is a literal.
-
isDigit
public static final boolean isDigit(byte b)
Determines whether the specified byte represents a decimal digit.- Parameters:
b
- Character to test- Returns:
- true if the character represents a decimal digit.
-
isHexDigit
public static final boolean isHexDigit(byte b)
Determines whether the specified byte represents a hex digit.- Parameters:
b
- Character to test- Returns:
- true if the character represents a hex digit.
-
isOctalDigit
public static final boolean isOctalDigit(byte b)
Determines whether the specified byte represents an octal digit.- Parameters:
b
- Character to test- Returns:
- true if the character represents an octal digit.
-
isLeadingOctalDigit
public static final boolean isLeadingOctalDigit(byte b)
Determines whether the specified byte represents a leading octal digit. A leading octal digit is one that leads a 3 digit octal sequence that will fit within a single byte. That means that the octal digit must be between 0 and 3 inclusive.- Parameters:
b
- Character to test- Returns:
- true if the character represents an octal digit.
-
getNumericalValue
public static final byte getNumericalValue(byte b)
Returns the numerical value for a byte that is used to represent a character. So, if a byte contains the value 0x30 (or the "character" '0') that would return a value of 0. This will work for decimal, octal, and hexadecimal values.- Parameters:
b
- Character to test- Returns:
- true if the character represents an octal digit.
-
readField
public static int readField(byte[] s, int pos) throws PDFParseException
Reads two characters that are assumed to be digits and combines them into a decimal value.- Parameters:
s
- Byte array containing two characters to convert to a a numeric valuepos
- Position in the array where the characters start- Returns:
- Value of the two characters combined and treated as decimal digits (e.g. "12" is returned as the value 12).
- Throws:
PDFParseException
- If two characters could not be read from the byte array or the characters did not correspond to decimal digits.
-
getHex
public static byte[] getHex(byte[] src)
Returns hex representation of src.
-
getHex
public static byte[] getHex(byte[] src, int size)
Hex encodes the data in src to a new byte array that is of length size. If the hex encoded data is less than size, then the buffer is padded with zeroes. The size parameter must be equal to or greater than 2 * src.length or an ArrayIndexOutOfBoundsException will occur. The size parameter should also be even since hex encoded data always has an even length.
-
getHexString
public static java.lang.String getHexString(byte[] in)
Converts the contents of a byte[] to a hex string.
-
getHexName
public static ASName getHexName(byte[] in) throws java.io.UnsupportedEncodingException
Converts the contents of a byte[] to a hex name (lowercase).- Parameters:
in
-- Returns:
- ASName
- Throws:
java.io.UnsupportedEncodingException
-
getHexName
public static ASName getHexName(byte[] in, boolean uppercase)
Converts the contents of a byte[] to a hex name.- Parameters:
in
- the bytes used to make the hex nameuppercase
- true if the hex should utilize upper-case alpha characters; false if the alpha characters should be lower-case- Returns:
- ASName
-
getHexString
public static java.lang.String getHexString(byte[] in, int size) throws java.io.UnsupportedEncodingException
Converts the contents of a byte[] to a hex string. The size parameter must be equal to or greater than 2 * src.length or an ArrayIndexOutOfBoundsException will occur. The size parameter should also be even since hex encoded data always has an even length.- Throws:
java.io.UnsupportedEncodingException
-
getHexString2
public static java.lang.String getHexString2(byte[] in)
Converts the contents of a byte[] to a hex string.
-
getHex
public static byte getHex(byte b) throws PDFParseException
Converts the specified hexidecimal character to a byte value. For example, the hex character 'A' is converted to the value 10.- Parameters:
b
- Hex character to convert- Returns:
- Byte value corresponding to the specified hex character.
- Throws:
PDFParseException
-
getUnicode
public static java.lang.String getUnicode(byte[] unicodeBytes)
In presumption that the input byte array contains Unicode characters converts them to Java String. If the input byte array is null, empty or contains non-Unicode characters returns null.- Parameters:
unicodeBytes
-- Returns:
- String representation of the Unicode characters in a byte array
-
toByte
public static final byte[] toByte(short word0)
-
-