# Uses of Interface
java.lang.classfile.CodeElement

Packages that use CodeElement
Package
Description
java.lang.classfile
Provides classfile parsing, generation, and transformation library.
java.lang.classfile.attribute
Provides interfaces describing `class` file attributes for the `java.lang.classfile` library.
java.lang.classfile.instruction
Provides interfaces describing code instructions for the `java.lang.classfile` library.

- ## Uses of CodeElement in java.lang.classfile

  Subinterfaces of CodeElement in java.lang.classfile
  Modifier and Type
  Interface
  Description
  `interface`
  `Instruction`
  Models an executable instruction in the `code` array of the `Code` attribute of a method.
  `interface`
  `PseudoInstruction`
  Models metadata about a `CodeModel`, derived from the `Code` attribute itself or its attributes.
  Classes in java.lang.classfile that implement CodeElement
  Modifier and Type
  Class
  Description
  `class`
  `CustomAttribute<T extends CustomAttribute<T>>`
  Models a user-defined attribute in a `class` file.
  Subinterfaces with type arguments of type CodeElement in java.lang.classfile
  Modifier and Type
  Interface
  Description
  `interface`
  `CodeBuilder`
  A builder for `Code` attributes (method bodies).
  `interface`
  `CodeModel`
  Models the body of a method (the `Code` attribute).
  `interface`
  `CodeTransform`
  A transformation on streams of `CodeElement`.

- ## Uses of CodeElement in java.lang.classfile.attribute

  Subinterfaces of CodeElement in java.lang.classfile.attribute
  Modifier and Type
  Interface
  Description
  `interface`
  `RuntimeInvisibleTypeAnnotationsAttribute`
  Models the `RuntimeInvisibleTypeAnnotations` attribute (JVMS 4.7.21), which stores type-use annotations for the annotated uses of types in this structure that are visible to `class` file consumers but are not visible to core reflection.
  `interface`
  `RuntimeVisibleTypeAnnotationsAttribute`
  Models the `RuntimeVisibleTypeAnnotations` attribute (JVMS 4.7.20), which stores type-use annotations for the annotated uses of types in this structure that are visible to both `class` file consumers and core reflection.
  `interface`
  `StackMapTableAttribute`
  Models the `StackMapTable` attribute (JVMS 4.7.4), which is used for verification by type checking (4.10.1).

- ## Uses of CodeElement in java.lang.classfile.instruction

  Subinterfaces of CodeElement in java.lang.classfile.instruction
  Modifier and Type
  Interface
  Description
  `interface`
  `ArrayLoadInstruction`
  Models an array load instruction in the `code` array of a `Code` attribute.
  `interface`
  `ArrayStoreInstruction`
  Models an array store instruction in the `code` array of a `Code` attribute.
  `interface`
  `BranchInstruction`
  Models a branching instruction (conditional or unconditional) in the `code` array of a `Code` attribute.
  `interface`
  `CharacterRange`
  A pseudo-instruction which models a single entry in the `CharacterRangeTable` attribute.
  `interface`
  `ConstantInstruction`
  Models a constant-load instruction in the `code` array of a `Code` attribute, including "intrinsic", "argument", and "load" constant instructions.
  `static interface`
  `ConstantInstruction.ArgumentConstantInstruction`
  Models an "argument constant" instruction, which encodes the constant value in the instruction directly.
  `static interface`
  `ConstantInstruction.IntrinsicConstantInstruction`
  Models an "intrinsic constant" instruction, which encodes the constant value in its opcode.
  `static interface`
  `ConstantInstruction.LoadConstantInstruction`
  Models a "load constant" instruction, which encodes the constant value in the constant pool.
  `interface`
  `ConvertInstruction`
  Models a primitive conversion instruction in the `code` array of a `Code` attribute, such as `i2l`.
  `interface`
  `DiscontinuedInstruction`
  Marker interface for instruction discontinued from the `code` array of a `Code` attribute.
  `static interface`
  `DiscontinuedInstruction.JsrInstruction`
  Models jump subroutine instructions discontinued from the `code` array of a `Code` attribute since class file major version 51 (JVMS 4.9.1).
  `static interface`
  `DiscontinuedInstruction.RetInstruction`
  Models return from subroutine instructions discontinued from the `code` array of a `Code` attribute since class file major version 51 (JVMS 4.9.1).
  `interface`
  `ExceptionCatch`
  A pseudo-instruction modeling an entry in the `exception_table` array of a `Code` attribute.
  `interface`
  `FieldInstruction`
  Models a field access instruction in the `code` array of a `Code` attribute.
  `interface`
  `IncrementInstruction`
  Models a local variable increment instruction in the `code` array of a `Code` attribute.
  `interface`
  `InvokeDynamicInstruction`
  Models a dynamically-computed call site invocation instruction in the `code` array of a `Code` attribute.
  `interface`
  `InvokeInstruction`
  Models a method invocation instruction in the `code` array of a `Code` attribute, other than `invokedynamic`.
  `interface`
  `LabelTarget`
  A pseudo-instruction which indicates that the specified label corresponds to the current position in the `Code` attribute.
  `interface`
  `LineNumber`
  A pseudo-instruction which indicates the code for a given line number starts after the current position in a `Code` attribute.
  `interface`
  `LoadInstruction`
  Models a local variable load instruction in the `code` array of a `Code` attribute.
  `interface`
  `LocalVariable`
  A pseudo-instruction which models a single entry in the `LocalVariableTable` attribute.
  `interface`
  `LocalVariableType`
  A pseudo-instruction which models a single entry in the `LocalVariableTypeTable` attribute.
  `interface`
  `LookupSwitchInstruction`
  Models a `lookupswitch` instruction in the `code` array of a `Code` attribute.
  `interface`
  `MonitorInstruction`
  Models a `monitorenter` or `monitorexit` instruction in the `code` array of a `Code` attribute.
  `interface`
  `NewMultiArrayInstruction`
  Models a `multianewarray` instruction in the `code` array of a `Code` attribute.
  `interface`
  `NewObjectInstruction`
  Models a `new` instruction in the `code` array of a `Code` attribute.
  `interface`
  `NewPrimitiveArrayInstruction`
  Models a `newarray` instruction in the `code` array of a `Code` attribute.
  `interface`
  `NewReferenceArrayInstruction`
  Models a `anewarray` instruction in the `code` array of a `Code` attribute.
  `interface`
  `NopInstruction`
  Models a `nop` instruction in the `code` array of a `Code` attribute.
  `interface`
  `OperatorInstruction`
  Models an arithmetic operator instruction in the `code` array of a `Code` attribute.
  `interface`
  `ReturnInstruction`
  Models a return-from-method instruction in the `code` array of a `Code` attribute.
  `interface`
  `StackInstruction`
  Models a stack manipulation instruction in the `code` array of a `Code` attribute.
  `interface`
  `StoreInstruction`
  Models a local variable store instruction in the `code` array of a `Code` attribute.
  `interface`
  `TableSwitchInstruction`
  Models a `tableswitch` instruction in the `code` array of a `Code` attribute.
  `interface`
  `ThrowInstruction`
  Models an `athrow` instruction in the `code` array of a `Code` attribute.
  `interface`
  `TypeCheckInstruction`
  Models an `instanceof` or a `checkcast` instruction in the `code` array of a `Code` attribute.