Interface TableSwitchInstruction

All Superinterfaces:
ClassFileElement, CodeElement, Instruction

public sealed interface TableSwitchInstruction extends Instruction
Models a tableswitch instruction in the code array of a Code attribute. Delivered as a CodeElement when traversing the elements of a CodeModel.

A table switch instruction is composite:

When read from class files, the cases may omit cases that duplicate the default target. The list is sorted ascending by the caseValue.

When writing to class file, the order in the cases list does not matter, as there is only one valid order in the physical representation of table switch entries. Treatment of elements in cases whose value is less than lowValue or greater than highValue, and elements whose value duplicates that of another, is not specified.

See Java Virtual Machine Specification:
6.5.tableswitch tableswitch
Since:
24
See Also:
  • Method Details Link icon

    • lowValue Link icon

      int lowValue()
      Returns the low value of the switch target range, inclusive.
      Returns:
      the low value of the switch target range, inclusive
    • highValue Link icon

      int highValue()
      Returns the high value of the switch target range, inclusive.
      Returns:
      the high value of the switch target range, inclusive
    • defaultTarget Link icon

      Label defaultTarget()
      Returns the default target of the switch.
      Returns:
      the default target of the switch
    • cases Link icon

      List<SwitchCase> cases()
      Returns the cases of the switch.
      Returns:
      the cases of the switch
    • of Link icon

      static TableSwitchInstruction of(int lowValue, int highValue, Label defaultTarget, List<SwitchCase> cases)
      Returns a table switch instruction.
      Parameters:
      lowValue - the low value of the switch target range, inclusive
      highValue - the high value of the switch target range, inclusive
      defaultTarget - the default target of the switch
      cases - the cases of the switch; duplicate or out of bound case handling is not specified
      Returns:
      a table switch instruction