# Interface LineNumberTableAttribute

All Superinterfaces:
  `Attribute<LineNumberTableAttribute>`, `ClassFileElement`

public sealed interface LineNumberTableAttribute extends Attribute<LineNumberTableAttribute>
Models the `LineNumberTable` attribute (JVMS 4.7.12), which records the mapping between indexes into the `code` array and line numbers in the source file. Its entries are delivered as `LineNumber` when traversing the elements of a `CodeModel`, which is toggled by `ClassFile.LineNumbersOption`.

This attribute only appears on `Code` attributes, and permits multiple instances in a `Code` attribute. It has a data dependency on labels.

This attribute cannot be sent to a `CodeBuilder`; its entries can be constructed with `LineNumber`, resulting in at most one attribute instance in the built `Code` attribute.

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

See Java Virtual Machine Specification:
  4.7.12 The `LineNumberTable` Attribute
Since:
  24
See Also:
  - `Attributes.lineNumberTable()`

## Method Summary

Modifier and Type
Method
Description
`List<LineNumberInfo>`
`lineNumbers()`
Returns the table mapping bytecode offsets to source line numbers.
`static LineNumberTableAttribute`
`of(List<LineNumberInfo> lines)`
Returns a `LineNumberTable` attribute.

### Methods declared in interface java.lang.classfile.Attribute

`attributeMapper, attributeName`

## Method Details

### lineNumbers

List<LineNumberInfo> lineNumbers()
Returns the table mapping bytecode offsets to source line numbers.

Returns:
  the table mapping bytecode offsets to source line numbers

### of

static LineNumberTableAttribute of(List<LineNumberInfo> lines)
Returns a `LineNumberTable` attribute.

API Note:
  The created attribute cannot be written to a `CodeBuilder`. Call `CodeBuilder::lineNumber` in the correct order instead.
Parameters:
  `lines` - the line number descriptions
Returns:
  a `LineNumberTable` attribute