# Interface CodeAttribute

All Superinterfaces:
  `Attribute<CodeAttribute>, AttributedElement, ClassFileElement, CodeModel, CompoundElement<CodeElement>, Iterable<CodeElement>, MethodElement`

public sealed interface CodeAttribute extends Attribute<CodeAttribute>, CodeModel
Models the `Code` attribute (JVMS 4.7.3), which contains the bytecode of this method.

This attribute only appears on methods, and does not permit multiple instances in a method. It has a data dependency on the constant pool.

This attribute was introduced in the Java Platform version 1.0.2, major version 45.

API Note:
  `CodeAttribute` models properties of a `Code` attribute read from `class` files. General `class` file transformation should process and traverse a `CodeModel` in the traversal of a `MethodModel`, to support transformation of `Code` attributes currently being built.
See Java Virtual Machine Specification:
  4.7.3 The `Code` Attribute
Since:
  24
See Also:
  - `Attributes.code()`
  - `CodeModel`

## Method Summary

Modifier and Type
Method
Description
`byte[]`
`codeArray()`
Returns the bytes (bytecode) of the code array.
`int`
`codeLength()`
Returns The length of the code array in bytes.
`int`
`labelToBci(Label label)`
Returns the position of the `label` in the `codeArray`.
`int`
`maxLocals()`
Returns the maximum size of the local variable table.
`int`
`maxStack()`
Returns the maximum size of the operand stack.

### Methods declared in interface Attribute

`attributeMapper, attributeName`

### Methods declared in interface AttributedElement

`attributes, findAttribute, findAttributes`

### Methods declared in interface CodeModel

`exceptionHandlers, parent`

### Methods declared in interface CompoundElement

`elementList, elementStream, forEach, iterator, toDebugString`

### Methods declared in interface Iterable

`spliterator`

## Method Details

### maxLocals

int maxLocals()
Returns the maximum size of the local variable table.

Returns:
  the maximum size of the local variable table

### maxStack

int maxStack()
Returns the maximum size of the operand stack.

Returns:
  the maximum size of the operand stack

### codeLength

int codeLength()
Returns The length of the code array in bytes.

Returns:
  The length of the code array in bytes

### codeArray

byte[] codeArray()
Returns the bytes (bytecode) of the code array.

Returns:
  the bytes (bytecode) of the code array

### labelToBci

int labelToBci(Label label)
Returns the position of the `label` in the `codeArray`. The label represents a cursor pointing at immediately before the returned index into the `code` array.

Parameters:
  `label` - a marker for a position within this `CodeAttribute`
Returns:
  the position of the `label` in the `codeArray`
Throws:
  `IllegalArgumentException` - if the `label` is not from this attribute