Top Description Fields Constructors Methods
net.bytebuddy.jar.asm

pack-priv abstract Class Symbol

extends Object
Class Inheritance
Known Direct Subclasses
net.bytebuddy.jar.asm.SymbolTable.Entry

An entry of the constant pool, of the BootstrapMethods attribute, or of the (ASM specific) type table of a class.
Author
Eric Bruneton
See Also
JVMS 4.4, JVMS 4.7.23

Field Summary

Modifier and TypeField and Description
pack-priv static final int
BOOTSTRAP_METHOD_TAG

The tag value of the BootstrapMethods attribute entries.

pack-priv static final int
CONSTANT_CLASS_TAG

The tag value of CONSTANT_Class_info JVMS structures.

pack-priv static final int
CONSTANT_DOUBLE_TAG

The tag value of CONSTANT_Double_info JVMS structures.

pack-priv static final int
CONSTANT_DYNAMIC_TAG

The tag value of CONSTANT_Dynamic_info JVMS structures.

pack-priv static final int
CONSTANT_FIELDREF_TAG

The tag value of CONSTANT_Fieldref_info JVMS structures.

pack-priv static final int
CONSTANT_FLOAT_TAG

The tag value of CONSTANT_Float_info JVMS structures.

pack-priv static final int
CONSTANT_INTEGER_TAG

The tag value of CONSTANT_Integer_info JVMS structures.

pack-priv static final int
CONSTANT_INTERFACE_METHODREF_TAG

The tag value of CONSTANT_InterfaceMethodref_info JVMS structures.

pack-priv static final int
CONSTANT_INVOKE_DYNAMIC_TAG

The tag value of CONSTANT_InvokeDynamic_info JVMS structures.

pack-priv static final int
CONSTANT_LONG_TAG

The tag value of CONSTANT_Long_info JVMS structures.

pack-priv static final int
CONSTANT_METHOD_HANDLE_TAG

The tag value of CONSTANT_MethodHandle_info JVMS structures.

pack-priv static final int
CONSTANT_METHOD_TYPE_TAG

The tag value of CONSTANT_MethodType_info JVMS structures.

pack-priv static final int
CONSTANT_METHODREF_TAG

The tag value of CONSTANT_Methodref_info JVMS structures.

pack-priv static final int
CONSTANT_MODULE_TAG

The tag value of CONSTANT_Module_info JVMS structures.

pack-priv static final int
CONSTANT_NAME_AND_TYPE_TAG

The tag value of CONSTANT_NameAndType_info JVMS structures.

pack-priv static final int
CONSTANT_PACKAGE_TAG

The tag value of CONSTANT_Package_info JVMS structures.

pack-priv static final int
CONSTANT_STRING_TAG

The tag value of CONSTANT_String_info JVMS structures.

pack-priv static final int
CONSTANT_UTF8_TAG

The tag value of CONSTANT_Utf8_info JVMS structures.

pack-priv final long
data

The numeric value of this symbol.

pack-priv static final int
FORWARD_UNINITIALIZED_TYPE_TAG

The tag value of an uninitialized type entry in the type table of a class.

pack-priv final int
index

The index of this symbol in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on the tag value).

pack-priv int
info

Additional information about this symbol, generally computed lazily.

pack-priv static final int
MERGED_TYPE_TAG

The tag value of a merged type entry in the (ASM specific) type table of a class.

pack-priv final String
name

The name of the class field or method corresponding to this symbol.

pack-priv final String
owner

The internal name of the owner class of this symbol.

pack-priv final int
tag

A tag indicating the type of this symbol.

pack-priv static final int
TYPE_TAG

The tag value of a normal type entry in the (ASM specific) type table of a class.

pack-priv static final int
UNINITIALIZED_TYPE_TAG

The tag value of an uninitialized type entry in the type table of a class.

pack-priv final String
value

The string value of this symbol.

Constructor Summary

AccessConstructor and Description
pack-priv
Symbol(final int
the symbol index in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on 'tag').
index
,
final int
the symbol type. Must be one of the static tag values defined in this class.
tag
,
final String
The internal name of the symbol's owner class. Maybe null.
owner
,
final String
The name of the symbol's corresponding class field or method. Maybe null.
name
,
final String
The string value of this symbol. Maybe null.
value
,
final long
The numeric value of this symbol.
data
)

Constructs a new Symbol.

Method Summary

Modifier and TypeMethod and Description
pack-priv int

Returns:

the result Type#getArgumentsAndReturnSizes on value (memoized in info for efficiency). This should only be used for CONSTANT_METHODREF_TAG, CONSTANT_INTERFACE_METHODREF_TAG and CONSTANT_INVOKE_DYNAMIC_TAG symbols.
getArgumentsAndReturnSizes
()

Returns the result Type#getArgumentsAndReturnSizes on value.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

BOOTSTRAP_METHOD_TAGback to summary
pack-priv static final int BOOTSTRAP_METHOD_TAG

The tag value of the BootstrapMethods attribute entries.

CONSTANT_CLASS_TAGback to summary
pack-priv static final int CONSTANT_CLASS_TAG

The tag value of CONSTANT_Class_info JVMS structures.

CONSTANT_DOUBLE_TAGback to summary
pack-priv static final int CONSTANT_DOUBLE_TAG

The tag value of CONSTANT_Double_info JVMS structures.

CONSTANT_DYNAMIC_TAGback to summary
pack-priv static final int CONSTANT_DYNAMIC_TAG

The tag value of CONSTANT_Dynamic_info JVMS structures.

CONSTANT_FIELDREF_TAGback to summary
pack-priv static final int CONSTANT_FIELDREF_TAG

The tag value of CONSTANT_Fieldref_info JVMS structures.

CONSTANT_FLOAT_TAGback to summary
pack-priv static final int CONSTANT_FLOAT_TAG

The tag value of CONSTANT_Float_info JVMS structures.

CONSTANT_INTEGER_TAGback to summary
pack-priv static final int CONSTANT_INTEGER_TAG

The tag value of CONSTANT_Integer_info JVMS structures.

CONSTANT_INTERFACE_METHODREF_TAGback to summary
pack-priv static final int CONSTANT_INTERFACE_METHODREF_TAG

The tag value of CONSTANT_InterfaceMethodref_info JVMS structures.

CONSTANT_INVOKE_DYNAMIC_TAGback to summary
pack-priv static final int CONSTANT_INVOKE_DYNAMIC_TAG

The tag value of CONSTANT_InvokeDynamic_info JVMS structures.

CONSTANT_LONG_TAGback to summary
pack-priv static final int CONSTANT_LONG_TAG

The tag value of CONSTANT_Long_info JVMS structures.

CONSTANT_METHOD_HANDLE_TAGback to summary
pack-priv static final int CONSTANT_METHOD_HANDLE_TAG

The tag value of CONSTANT_MethodHandle_info JVMS structures.

CONSTANT_METHOD_TYPE_TAGback to summary
pack-priv static final int CONSTANT_METHOD_TYPE_TAG

The tag value of CONSTANT_MethodType_info JVMS structures.

CONSTANT_METHODREF_TAGback to summary
pack-priv static final int CONSTANT_METHODREF_TAG

The tag value of CONSTANT_Methodref_info JVMS structures.

CONSTANT_MODULE_TAGback to summary
pack-priv static final int CONSTANT_MODULE_TAG

The tag value of CONSTANT_Module_info JVMS structures.

CONSTANT_NAME_AND_TYPE_TAGback to summary
pack-priv static final int CONSTANT_NAME_AND_TYPE_TAG

The tag value of CONSTANT_NameAndType_info JVMS structures.

CONSTANT_PACKAGE_TAGback to summary
pack-priv static final int CONSTANT_PACKAGE_TAG

The tag value of CONSTANT_Package_info JVMS structures.

CONSTANT_STRING_TAGback to summary
pack-priv static final int CONSTANT_STRING_TAG

The tag value of CONSTANT_String_info JVMS structures.

CONSTANT_UTF8_TAGback to summary
pack-priv static final int CONSTANT_UTF8_TAG

The tag value of CONSTANT_Utf8_info JVMS structures.

databack to summary
pack-priv final long data

The numeric value of this symbol. This is:

FORWARD_UNINITIALIZED_TYPE_TAGback to summary
pack-priv static final int FORWARD_UNINITIALIZED_TYPE_TAG

The tag value of an uninitialized type entry in the type table of a class. This type is used for the unusual case where the NEW instruction is after the <init> constructor call (in bytecode offset order), i.e. when the label of the NEW instruction is not resolved when the constructor call is visited. If the NEW instruction is before the constructor call, use the UNINITIALIZED_TYPE_TAG tag value instead.

indexback to summary
pack-priv final int index

The index of this symbol in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on the tag value).

infoback to summary
pack-priv int info

Additional information about this symbol, generally computed lazily. Warning: the value of this field is ignored when comparing Symbol instances (to avoid duplicate entries in a SymbolTable). Therefore, this field should only contain data that can be computed from the other fields of this class. It contains:

MERGED_TYPE_TAGback to summary
pack-priv static final int MERGED_TYPE_TAG

The tag value of a merged type entry in the (ASM specific) type table of a class.

nameback to summary
pack-priv final String name

The name of the class field or method corresponding to this symbol. Only used for CONSTANT_FIELDREF_TAG, CONSTANT_METHODREF_TAG, CONSTANT_INTERFACE_METHODREF_TAG, CONSTANT_NAME_AND_TYPE_TAG, CONSTANT_METHOD_HANDLE_TAG, CONSTANT_DYNAMIC_TAG and CONSTANT_INVOKE_DYNAMIC_TAG symbols.

ownerback to summary
pack-priv final String owner

The internal name of the owner class of this symbol. Only used for CONSTANT_FIELDREF_TAG, CONSTANT_METHODREF_TAG, CONSTANT_INTERFACE_METHODREF_TAG, and CONSTANT_METHOD_HANDLE_TAG symbols.

tagback to summary
pack-priv final int tag

A tag indicating the type of this symbol. Must be one of the static tag values defined in this class.

TYPE_TAGback to summary
pack-priv static final int TYPE_TAG

The tag value of a normal type entry in the (ASM specific) type table of a class.

UNINITIALIZED_TYPE_TAGback to summary
pack-priv static final int UNINITIALIZED_TYPE_TAG

The tag value of an uninitialized type entry in the type table of a class. This type is used for the normal case where the NEW instruction is before the <init> constructor call (in bytecode offset order), i.e. when the label of the NEW instruction is resolved when the constructor call is visited. If the NEW instruction is after the constructor call, use the FORWARD_UNINITIALIZED_TYPE_TAG tag value instead.

valueback to summary
pack-priv final String value

The string value of this symbol. This is:

Constructor Detail

Symbolback to summary
pack-priv Symbol(final int index, final int tag, final String owner, final String name, final String value, final long data)

Constructs a new Symbol. This constructor can't be used directly because the Symbol class is abstract. Instead, use the factory methods of the SymbolTable class.

Parameters
index:int

the symbol index in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on 'tag').

tag:int

the symbol type. Must be one of the static tag values defined in this class.

owner:String

The internal name of the symbol's owner class. Maybe null.

name:String

The name of the symbol's corresponding class field or method. Maybe null.

value:String

The string value of this symbol. Maybe null.

data:long

The numeric value of this symbol.

Method Detail

getArgumentsAndReturnSizesback to summary
pack-priv int getArgumentsAndReturnSizes()

Returns the result Type#getArgumentsAndReturnSizes on value.

Returns:int

the result Type#getArgumentsAndReturnSizes on value (memoized in info for efficiency). This should only be used for CONSTANT_METHODREF_TAG, CONSTANT_INTERFACE_METHODREF_TAG and CONSTANT_INVOKE_DYNAMIC_TAG symbols.