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 ints instead of Labels, and is used as components
of a LocalVariableTableAttribute.
- API Note:
LocalVariableis 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, aLocalVariableTypeshould 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 LocalVariableReturns a local variable pseudo-instruction.static LocalVariableReturns a local variable pseudo-instruction.intslot()Returns the local variable slot.Returns the start range of the local variable scope.type()Returns the local variable field descriptor string.default ClassDescReturns 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.slotmust 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- ifslotis out of range
-
of
static LocalVariable of(int slot, String name, ClassDesc descriptor, Label startScope, Label endScope) Returns a local variable pseudo-instruction.slotmust 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- ifslotis out of range
-