Interface LocalVariable
- All Superinterfaces:
ClassFileElement
,CodeElement
,PseudoInstruction
A pseudo-instruction which models a single entry in the
Where
LocalVariableTable
attribute. Delivered as a
CodeElement
during traversal of the elements of a CodeModel
,
according to the setting of the ClassFile.DebugElementsOption
option.
A local variable entry is composite:
LocalVariable
(
int slot
,
String name
,
ClassDesc type
,
Label startScope
,
Label endScope
)
slot
is within [0, 65535]
.
Another model, LocalVariableInfo
, also models a local variable
entry; it has no dependency on a CodeModel
and represents of bci
values as int
s instead of Label
s, and is used as components
of a LocalVariableTableAttribute
.
- API Note:
LocalVariable
is used for all local variables in Java source code. If a local variable has a parameterized type, a type argument, or an array type of one of the previous types, aLocalVariableType
should be created for that local variable as well.- Since:
- 24
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionendScope()
Returns the end range of the local variable scope.name()
Returns the local variable name.static LocalVariable
Returns a local variable pseudo-instruction.static LocalVariable
Returns a local variable pseudo-instruction.int
slot()
Returns the local variable slot.Returns the start range of the local variable scope.type()
Returns the local variable field descriptor string.default ClassDesc
Returns the local variable type, as a symbolic descriptor.
-
Method Details
-
slot
int slot()Returns the local variable slot. The value is within[0, 65535]
.- Returns:
- the local variable slot
-
name
-
type
Utf8Entry type()Returns the local variable field descriptor string.- API Note:
- A symbolic descriptor for the type of the local variable is available
through
typeSymbol()
. - Returns:
- the local variable field descriptor string
-
typeSymbol
Returns the local variable type, as a symbolic descriptor.- Returns:
- the local variable type, as a symbolic descriptor
-
startScope
Label startScope()Returns the start range of the local variable scope.- Returns:
- the start range of the local variable scope
-
endScope
Label endScope()Returns the end range of the local variable scope.- Returns:
- the end range of the local variable scope
-
of
static LocalVariable of(int slot, Utf8Entry nameEntry, Utf8Entry descriptorEntry, Label startScope, Label endScope) Returns a local variable pseudo-instruction.slot
must be within[0, 65535]
.- Parameters:
slot
- the local variable slotnameEntry
- the local variable namedescriptorEntry
- the local variable descriptorstartScope
- the start range of the local variable scopeendScope
- the end range of the local variable scope- Returns:
- a local variable pseudo-instruction
- Throws:
IllegalArgumentException
- ifslot
is out of range
-
of
static LocalVariable of(int slot, String name, ClassDesc descriptor, Label startScope, Label endScope) Returns a local variable pseudo-instruction.slot
must be within[0, 65535]
.- Parameters:
slot
- the local variable slotname
- the local variable namedescriptor
- the local variable descriptorstartScope
- the start range of the local variable scopeendScope
- the end range of the local variable scope- Returns:
- a local variable pseudo-instruction
- Throws:
IllegalArgumentException
- ifslot
is out of range
-