public final class Atom
extends java.lang.Object
implements java.io.Serializable
Atom's are interned (canonicalized) so they may be compared for equality using the "==" operator.
Atoms are used to represent names, descriptors, and string literals appearing in a class's constant pool.
| Modifier and Type | Method and Description |
|---|---|
Atom |
arrayDescriptorFromElementDescriptor()
Return array descriptor corresponding to "this" array-element descriptor.
|
static Atom |
concat(Atom ma,
Atom mb) |
static Atom |
concat(byte c,
ImmutableByteArray b) |
boolean |
contains(byte b) |
boolean |
equals(java.lang.Object obj) |
static Atom |
findOrCreate(byte[] bytes) |
static Atom |
findOrCreate(byte[] utf8,
int off,
int len)
create an Atom from utf8[off] of length len
|
static Atom |
findOrCreate(ImmutableByteArray b) |
static Atom |
findOrCreate(ImmutableByteArray b,
int start,
int length) |
static Atom |
findOrCreateAsciiAtom(java.lang.String str)
Find or create an atom.
|
static Atom |
findOrCreateUnicodeAtom(java.lang.String str)
Find or create an atom.
|
static Atom |
findOrCreateUtf8Atom(byte[] utf8)
Find or create an atom.
|
byte |
getVal(int i) |
byte[] |
getValArray()
return an array of bytes representing the utf8 characters in this
|
int |
hashCode() |
boolean |
isArrayDescriptor()
Is "this" atom an array descriptor?
|
static boolean |
isArrayDescriptor(ImmutableByteArray b) |
boolean |
isClassDescriptor()
Is "this" atom a class descriptor?
|
boolean |
isMethodDescriptor()
Is "this" atom a method descriptor?
|
boolean |
isReservedMemberName()
Is "this" atom a reserved member name? Note: Sun has reserved all member names starting with
'<' for future use.
|
Atom |
left(int count)
New Atom containing first count bytes
|
int |
length() |
int |
parseForArrayDimensionality()
Parse "this" array descriptor to obtain number of dimensions in corresponding array type.
|
Atom |
parseForArrayElementDescriptor()
Parse "this" array descriptor to obtain descriptor for array's element type.
|
Atom |
parseForInnermostArrayElementDescriptor()
Return the innermost element type reference for an array
|
Atom |
right(int count)
New Atom containing last count bytes
|
int |
rIndex(byte b) |
boolean |
startsWith(Atom start) |
java.lang.String |
toString()
Return printable representation of "this" atom.
|
java.lang.String |
toUnicodeString()
Return printable representation of "this" atom.
|
public static Atom findOrCreateUnicodeAtom(java.lang.String str)
str - atom value, as string literal whose characters are unicodepublic static Atom findOrCreateAsciiAtom(java.lang.String str)
str - atom value, as string literal whose characters are from ascii subset of unicode (not
including null)java.lang.IllegalArgumentException - if str is nullpublic static Atom findOrCreateUtf8Atom(byte[] utf8)
utf8 - atom value, as utf8 encoded bytesjava.lang.IllegalArgumentException - if utf8 is nullpublic static Atom findOrCreate(byte[] utf8, int off, int len) throws java.lang.IllegalArgumentException, java.lang.IllegalArgumentException, java.lang.IllegalArgumentException
java.lang.IllegalArgumentException - if utf8.length <= offpublic static Atom findOrCreate(byte[] bytes)
public static Atom findOrCreate(ImmutableByteArray b)
public static Atom findOrCreate(ImmutableByteArray b, int start, int length)
public final java.lang.String toString()
toString in class java.lang.Objectpublic final java.lang.String toUnicodeString()
throws java.io.UTFDataFormatException
java.io.UTFDataFormatExceptionpublic final Atom left(int count)
public final Atom right(int count)
public final boolean startsWith(Atom start)
public final Atom arrayDescriptorFromElementDescriptor()
public final boolean isReservedMemberName()
public final boolean isClassDescriptor()
public final boolean isArrayDescriptor()
public final boolean isMethodDescriptor()
throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic final int length()
public final Atom parseForArrayElementDescriptor() throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic final int parseForArrayDimensionality()
throws java.lang.IllegalArgumentException
java.lang.IllegalStateException - if this Atom does not represent an arrayjava.lang.IllegalArgumentExceptionpublic final Atom parseForInnermostArrayElementDescriptor() throws java.lang.IllegalArgumentException
java.lang.IllegalStateException - if this Atom does not represent an array descriptorjava.lang.IllegalArgumentExceptionpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic byte[] getValArray()
public byte getVal(int i)
throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic boolean contains(byte b)
public int rIndex(byte b)
public static Atom concat(byte c, ImmutableByteArray b)
public static boolean isArrayDescriptor(ImmutableByteArray b)