|
|||||||||
Home >> All >> [ UTF overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |
UTF
Class Utf8

java.lang.ObjectUTF.Utf8
- All Implemented Interfaces:
- Clazz.jq_ClassFileConstants
- public class Utf8
- extends java.lang.Object
- implements Clazz.jq_ClassFileConstants
- extends java.lang.Object
- Version:
- $Id: Utf8.java,v 1.17 2003/05/23 21:10:56 joewhaley Exp $
Nested Class Summary | |
class |
Utf8.MethodDescriptorIterator
|
Field Summary | |
(package private) static boolean |
ALLOW_NORMAL_UTF8
Set fromUtf8 to not throw an exception when given a normal utf8 byte array. |
(package private) static boolean |
ALLOW_PSEUDO_UTF8
Set fromUtf8 to not throw an exception when given a pseudo utf8 byte array. |
static Utf8 |
BOOLEAN_DESC
|
static Utf8 |
BYTE_DESC
|
private java.lang.String |
cache
|
static int[][] |
chains
|
static Utf8 |
CHAR_DESC
|
private byte[] |
data
|
static boolean |
DEBUG
|
static Utf8 |
DOUBLE_DESC
|
static Utf8 |
FLOAT_DESC
|
private int |
hash
|
static Utf8 |
INT_DESC
|
static Utf8 |
LONG_DESC
|
static boolean |
NO_NEW
|
static Utf8 |
SHORT_DESC
|
static int |
size
|
static int |
STARTING_CHAIN_SIZE
|
static int |
STARTING_HASH_SIZE
|
static int |
STARTING_TABLE_SIZE
|
(package private) static boolean |
STRICTLY_CHECK_FORMAT
Strictly check the format of the utf8/pseudo-utf8 byte array in fromUtf8. |
static Utf8[] |
table
|
static boolean |
TRACE
|
static boolean |
USE_CACHE
|
static Utf8 |
VOID_DESC
|
(package private) static boolean |
WRITE_PSEUDO_UTF8
Set toUtf8 to write in pseudo-utf8 (rather than normal utf8). |
Constructor Summary | |
private |
Utf8(byte[] data,
int hash)
Private constructor. |
Method Summary | |
private static int |
addToTable_helper(byte[] b,
int hash,
int[] chain,
int index)
|
static boolean |
checkUtf8(byte[] bytes)
Check whether the given sequence of bytes is valid (pseudo-)utf8. |
void |
debugWrite()
|
void |
dump(java.io.DataOutput out)
|
static java.lang.String |
fromUtf8(byte[] utf8)
Convert the given sequence of (pseudo-)utf8 formatted bytes into a String. |
static Utf8 |
get(byte[] b)
|
static Utf8 |
get(byte[] b,
int startIndex,
int endIndex)
|
static Utf8 |
get(java.lang.String s)
|
Utf8 |
getArrayElementDescriptor()
|
Utf8 |
getAsArrayDescriptor()
|
Utf8 |
getAsClassDescriptor()
|
Utf8 |
getClassName()
|
static int |
getID(byte[] b)
|
static int |
getID(byte[] b,
int startIndex,
int endIndex)
|
Utf8.MethodDescriptorIterator |
getParamDescriptors()
|
private static void |
growTable_helper()
|
int |
hashCode()
Get a value that represents this Object, as uniquely as possible within the confines of an int. |
static int |
hashCode(byte[] data)
|
static int |
hashCode(byte[] data,
int startIndex,
int endIndex)
|
boolean |
isDescriptor(byte desc)
|
boolean |
isValidMethodDescriptor()
|
boolean |
isValidTypeDescriptor()
|
private boolean |
isValidTypeDescriptor(int i)
|
static int |
lengthUtf8(java.lang.String s)
Returns the length of a string's utf8 encoded form. |
private static boolean |
memcmp(byte[] b1,
byte[] b2)
|
private static boolean |
memcmp(byte[] b1,
byte[] b2,
int startIndex,
int endIndex)
|
java.lang.String |
toString()
Convert this Object to a human-readable String. |
static byte[] |
toUtf8(java.lang.String s)
Convert the given String into a sequence of (pseudo-)utf8 formatted bytes. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
TRACE
public static boolean TRACE
STARTING_TABLE_SIZE
public static final int STARTING_TABLE_SIZE
- See Also:
- Constant Field Values
STARTING_HASH_SIZE
public static final int STARTING_HASH_SIZE
- See Also:
- Constant Field Values
STARTING_CHAIN_SIZE
public static final int STARTING_CHAIN_SIZE
- See Also:
- Constant Field Values
table
public static Utf8[] table
size
public static int size
chains
public static int[][] chains
BYTE_DESC
public static final Utf8 BYTE_DESC
CHAR_DESC
public static final Utf8 CHAR_DESC
DOUBLE_DESC
public static final Utf8 DOUBLE_DESC
FLOAT_DESC
public static final Utf8 FLOAT_DESC
INT_DESC
public static final Utf8 INT_DESC
LONG_DESC
public static final Utf8 LONG_DESC
SHORT_DESC
public static final Utf8 SHORT_DESC
BOOLEAN_DESC
public static final Utf8 BOOLEAN_DESC
VOID_DESC
public static final Utf8 VOID_DESC
NO_NEW
public static boolean NO_NEW
data
private byte[] data
hash
private int hash
USE_CACHE
public static final boolean USE_CACHE
- See Also:
- Constant Field Values
DEBUG
public static final boolean DEBUG
- See Also:
- Constant Field Values
cache
private java.lang.String cache
STRICTLY_CHECK_FORMAT
static final boolean STRICTLY_CHECK_FORMAT
- Strictly check the format of the utf8/pseudo-utf8 byte array in
fromUtf8.
- See Also:
- Constant Field Values
ALLOW_NORMAL_UTF8
static final boolean ALLOW_NORMAL_UTF8
- Set fromUtf8 to not throw an exception when given a normal utf8
byte array.
- See Also:
- Constant Field Values
ALLOW_PSEUDO_UTF8
static final boolean ALLOW_PSEUDO_UTF8
- Set fromUtf8 to not throw an exception when given a pseudo utf8
byte array.
- See Also:
- Constant Field Values
WRITE_PSEUDO_UTF8
static final boolean WRITE_PSEUDO_UTF8
- Set toUtf8 to write in pseudo-utf8 (rather than normal utf8).
- See Also:
- Constant Field Values
Constructor Detail |
Utf8
private Utf8(byte[] data, int hash)
- Private constructor. Use the get() method to create a Utf8 object.
Method Detail |
get
public static Utf8 get(java.lang.String s)
get
public static Utf8 get(byte[] b)
get
public static Utf8 get(byte[] b, int startIndex, int endIndex)
getID
public static int getID(byte[] b)
getID
public static int getID(byte[] b, int startIndex, int endIndex)
isValidMethodDescriptor
public boolean isValidMethodDescriptor()
isValidTypeDescriptor
public boolean isValidTypeDescriptor()
isValidTypeDescriptor
private boolean isValidTypeDescriptor(int i)
isDescriptor
public boolean isDescriptor(byte desc)
getArrayElementDescriptor
public Utf8 getArrayElementDescriptor()
getClassName
public Utf8 getClassName()
getAsArrayDescriptor
public Utf8 getAsArrayDescriptor()
getAsClassDescriptor
public Utf8 getAsClassDescriptor()
getParamDescriptors
public Utf8.MethodDescriptorIterator getParamDescriptors()
memcmp
private static boolean memcmp(byte[] b1, byte[] b2)
memcmp
private static boolean memcmp(byte[] b1, byte[] b2, int startIndex, int endIndex)
addToTable_helper
private static int addToTable_helper(byte[] b, int hash, int[] chain, int index)
growTable_helper
private static void growTable_helper()
hashCode
public static int hashCode(byte[] data)
hashCode
public static int hashCode(byte[] data, int startIndex, int endIndex)
hashCode
public int hashCode()
- Description copied from class:
java.lang.Object
- Get a value that represents this Object, as uniquely as
possible within the confines of an int.
There are some requirements on this method which subclasses must follow:
- Semantic equality implies identical hashcodes. In other
words, if
a.equals(b)
is true, thena.hashCode() == b.hashCode()
must be as well. However, the reverse is not necessarily true, and two objects may have the same hashcode without being equal. - It must be consistent. Whichever value o.hashCode() returns on the first invocation must be the value returned on all later invocations as long as the object exists. Notice, however, that the result of hashCode may change between separate executions of a Virtual Machine, because it is not invoked on the same object.
Notice that since
hashCode
is used in java.util.Hashtable and other hashing classes, a poor implementation will degrade the performance of hashing (so don't blindly implement it as returning a constant!). Also, if calculating the hash is time-consuming, a class may consider caching the results.The default implementation returns
System.identityHashCode(this)
- Semantic equality implies identical hashcodes. In other
words, if
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object
- Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string concatenation with this object. If the result is
null
, string concatenation will instead use"null"
.The default implementation returns
getClass().getName() + "@" + Integer.toHexString(hashCode())
.
dump
public void dump(java.io.DataOutput out) throws java.io.IOException
debugWrite
public void debugWrite()
fromUtf8
public static java.lang.String fromUtf8(byte[] utf8) throws UTFDataFormatError
- Convert the given sequence of (pseudo-)utf8 formatted bytes
into a String.
The acceptable input formats are controlled by the
STRICTLY_CHECK_FORMAT, ALLOW_NORMAL_UTF8, and ALLOW_PSEUDO_UTF8
flags.
toUtf8
public static byte[] toUtf8(java.lang.String s)
- Convert the given String into a sequence of (pseudo-)utf8
formatted bytes.
The output format is controlled by the WRITE_PSEUDO_UTF8 flag.
lengthUtf8
public static int lengthUtf8(java.lang.String s)
- Returns the length of a string's utf8 encoded form.
checkUtf8
public static boolean checkUtf8(byte[] bytes)
- Check whether the given sequence of bytes is valid (pseudo-)utf8.
|
|||||||||
Home >> All >> [ UTF overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |