Package org.eclipse.sisu.space.asm
Class Item
- java.lang.Object
-
- org.eclipse.sisu.space.asm.Item
-
final class Item extends java.lang.ObjectA constant pool item. Constant pool items can be created with the 'newXXX' methods in theClassWriterclass.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) inthashCodeThe hash code value of this constant pool item.(package private) intindexIndex of this item in the constant pool.(package private) intintValValue of this item, for an integer item.(package private) longlongValValue of this item, for a long item.(package private) ItemnextLink to another constant pool item, used for collision lists in the constant pool's hash table.(package private) java.lang.StringstrVal1First part of the value of this item, for items that do not hold a primitive value.(package private) java.lang.StringstrVal2Second part of the value of this item, for items that do not hold a primitive value.(package private) java.lang.StringstrVal3Third part of the value of this item, for items that do not hold a primitive value.(package private) inttypeType of this constant pool item.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) booleanisEqualTo(Item i)Indicates if the given item is equal to this one.(package private) voidset(double doubleVal)Sets this item to a double item.(package private) voidset(float floatVal)Sets this item to a float item.(package private) voidset(int intVal)Sets this item to an integer item.(package private) voidset(int position, int hashCode)Sets the item to a BootstrapMethod item.(package private) voidset(int type, java.lang.String strVal1, java.lang.String strVal2, java.lang.String strVal3)Sets this item to an item that do not hold a primitive value.(package private) voidset(long longVal)Sets this item to a long item.(package private) voidset(java.lang.String name, java.lang.String desc, int bsmIndex)Sets the item to an InvokeDynamic item.
-
-
-
Field Detail
-
index
int index
Index of this item in the constant pool.
-
type
int type
Type of this constant pool item. A single class is used to represent all constant pool item types, in order to minimize the bytecode size of this package. The value of this field is one ofClassWriter.INT,ClassWriter.LONG,ClassWriter.FLOAT,ClassWriter.DOUBLE,ClassWriter.UTF8,ClassWriter.STR,ClassWriter.CLASS,ClassWriter.NAME_TYPE,ClassWriter.FIELD,ClassWriter.METH,ClassWriter.IMETH,ClassWriter.MTYPE,ClassWriter.INDY. MethodHandle constant 9 variations are stored using a range of 9 values fromClassWriter.HANDLE_BASE+ 1 toClassWriter.HANDLE_BASE+ 9. Special Item types are used for Items that are stored in the ClassWriterClassWriter.typeTable, instead of the constant pool, in order to avoid clashes with normal constant pool items in the ClassWriter constant pool's hash table. These special item types areClassWriter.TYPE_NORMAL,ClassWriter.TYPE_UNINITandClassWriter.TYPE_MERGED.
-
intVal
int intVal
Value of this item, for an integer item.
-
longVal
long longVal
Value of this item, for a long item.
-
strVal1
java.lang.String strVal1
First part of the value of this item, for items that do not hold a primitive value.
-
strVal2
java.lang.String strVal2
Second part of the value of this item, for items that do not hold a primitive value.
-
strVal3
java.lang.String strVal3
Third part of the value of this item, for items that do not hold a primitive value.
-
hashCode
int hashCode
The hash code value of this constant pool item.
-
next
Item next
Link to another constant pool item, used for collision lists in the constant pool's hash table.
-
-
Constructor Detail
-
Item
Item()
Constructs an uninitializedItem.
-
Item
Item(int index)
Constructs an uninitializedItemfor constant pool element at given position.- Parameters:
index- index of the item to be constructed.
-
Item
Item(int index, Item i)Constructs a copy of the given item.- Parameters:
index- index of the item to be constructed.i- the item that must be copied into the item to be constructed.
-
-
Method Detail
-
set
void set(int intVal)
Sets this item to an integer item.- Parameters:
intVal- the value of this item.
-
set
void set(long longVal)
Sets this item to a long item.- Parameters:
longVal- the value of this item.
-
set
void set(float floatVal)
Sets this item to a float item.- Parameters:
floatVal- the value of this item.
-
set
void set(double doubleVal)
Sets this item to a double item.- Parameters:
doubleVal- the value of this item.
-
set
void set(int type, java.lang.String strVal1, java.lang.String strVal2, java.lang.String strVal3)Sets this item to an item that do not hold a primitive value.- Parameters:
type- the type of this item.strVal1- first part of the value of this item.strVal2- second part of the value of this item.strVal3- third part of the value of this item.
-
set
void set(java.lang.String name, java.lang.String desc, int bsmIndex)Sets the item to an InvokeDynamic item.- Parameters:
name- invokedynamic's name.desc- invokedynamic's desc.bsmIndex- zero based index into the class attribute BootrapMethods.
-
set
void set(int position, int hashCode)Sets the item to a BootstrapMethod item.- Parameters:
position- position in byte in the class attribute BootrapMethods.hashCode- hashcode of the item. This hashcode is processed from the hashcode of the bootstrap method and the hashcode of all bootstrap arguments.
-
isEqualTo
boolean isEqualTo(Item i)
Indicates if the given item is equal to this one. This method assumes that the two items have the sametype.- Parameters:
i- the item to be compared to this one. Both items must have the sametype.- Returns:
- true if the given item if equal to this one, false otherwise.
-
-