CharacterRangeTableAttribute (Java SE 23 & JDK 23)
Description: declaration: module: java.base, package: java.lang.classfile.attribute, interface: CharacterRangeTableAttribute
Keywords: java.lang.classfile.attribute.CharacterRangeTableAttribute interface

# Interface CharacterRangeTableAttribute

All Superinterfaces:
  `AttributePREVIEW<CharacterRangeTableAttributePREVIEW>`, `ClassFileElementPREVIEW`, `WritableElementPREVIEW<CharacterRangeTableAttributePREVIEW>`

public sealed interface CharacterRangeTableAttribute extends AttributePREVIEW<CharacterRangeTableAttributePREVIEW>
`CharacterRangeTableAttribute` is a preview API of the Java platform.
Programs can only use `CharacterRangeTableAttribute` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
The CharacterRangeTable attribute is an optional variable-length attribute in the attributes table of a `Code` attribute. It may be used by debuggers to determine which part of the Java virtual machine code array corresponds to a given position in the source file or to determine what section of source code corresponds to a given index into the code array. The CharacterRangeTable attribute consists of an array of character range entries. Each character range entry within the table associates a range of indices in the code array with a range of character indices in the source file. If the source file is viewed as an array of characters, a character index is the corresponding index into this array. Note that character indices are not the same as byte indices as multi-byte characters may be present in the source file. Each character range entry includes a flag which indicates what kind of range is described: statement, assignment, method call, etc. Both code index ranges and character ranges may nest within other ranges, but they may not partially overlap. Thus, a given code index may correspond to several character range entries and in turn several character ranges, but there will be a smallest character range, and for each kind of range in which it is enclosed there will be a smallest character range. Similarly, a given character index may correspond to several character range entries and in turn several code index ranges, but there will be a smallest code index range, and for each kind of range in which it is enclosed there will be a smallest code index range. The character range entries may appear in any order.

The attribute permits multiple instances in a given location.

Since:
  22

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<CharacterRangeInfoPREVIEW>`
  `characterRangeTable()`
  Returns the entries of the character range table.
  `static CharacterRangeTableAttributePREVIEW`
  `of(List<CharacterRangeInfoPREVIEW> ranges)`
  Returns a `CharacterRangeTable` attribute.

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

  `attributeMapper, attributeName`

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

  `writeTo`

- ## Method Details

  - ### characterRangeTable

    List<CharacterRangeInfoPREVIEW> characterRangeTable()
    Returns the entries of the character range table.
    Returns:
      the entries of the character range table

  - ### of

    static CharacterRangeTableAttributePREVIEW of(List<CharacterRangeInfoPREVIEW> ranges)
    Returns a `CharacterRangeTable` attribute.
    Parameters:
      `ranges` - the descriptions of the character ranges
    Returns:
      a `CharacterRangeTable` attribute