# Uses of Interface
java.lang.classfile.ClassFileElement

Packages that use ClassFileElement
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 ClassFileElement in java.lang.classfile

  Classes in java.lang.classfile with type parameters of type ClassFileElement
  Modifier and Type
  Interface
  Description
  `interface`
  `ClassFileBuilder<E extends ClassFileElement, B extends ClassFileBuilder<E,B>>`
  A builder for a `CompoundElement`, which accepts the member elements to be integrated into the built structure.
  `interface`
  `ClassFileTransform<C extends ClassFileTransform<C,E,B>, E extends ClassFileElement, B extends ClassFileBuilder<E,B>>`
  A transformation on a `CompoundElement` by processing its individual member elements and sending the results to a `ClassFileBuilder`, through `ClassFileBuilder.transform(CompoundElement, ClassFileTransform)`.
  `interface`
  `CompoundElement<E extends ClassFileElement>`
  A `class` file structure that can be viewed as a composition of its member structures.
  Subinterfaces of ClassFileElement in java.lang.classfile
  Modifier and Type
  Interface
  Description
  `interface`
  `AccessFlags`
  Models the access flags for a class, method, or field.
  `interface`
  `Attribute<A extends Attribute<A>>`
  Models an attribute (JVMS 4.7) in the `class` file format.
  `interface`
  `AttributedElement`
  A `ClassFileElement` describing a `class` file structure that has attributes, such as a `class` file, a field, a method, a `Code` attribute, or a record component.
  `interface`
  `ClassElement`
  Marker interface for a member element of a `ClassModel`.
  `interface`
  `ClassFileVersion`
  Models the minor and major version numbers of a `class` file (JVMS 4.1).
  `interface`
  `ClassModel`
  Models a `class` file.
  `interface`
  `CodeElement`
  Marker interface for a member element of a `CodeModel`.
  `interface`
  `CodeModel`
  Models the body of a method (the `Code` attribute).
  `interface`
  `CompoundElement<E extends ClassFileElement>`
  A `class` file structure that can be viewed as a composition of its member structures.
  `interface`
  `FieldElement`
  Marker interface for a member element of a `FieldModel`.
  `interface`
  `FieldModel`
  Models a field.
  `interface`
  `Instruction`
  Models an executable instruction in the `code` array of the `Code` attribute of a method.
  `interface`
  `Interfaces`
  Models the interfaces (JVMS 4.1) of a class.
  `interface`
  `MethodElement`
  Marker interface for a member element of a `MethodModel`.
  `interface`
  `MethodModel`
  Models a method.
  `interface`
  `PseudoInstruction`
  Models metadata about a `CodeModel`, derived from the `Code` attribute itself or its attributes.
  `interface`
  `Superclass`
  Models the superclass (JVMS 4.1) of a class.
  Classes in java.lang.classfile that implement ClassFileElement
  Modifier and Type
  Class
  Description
  `class`
  `CustomAttribute<T extends CustomAttribute<T>>`
  Models a user-defined attribute in a `class` file.

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

  Subinterfaces of ClassFileElement in java.lang.classfile.attribute
  Modifier and Type
  Interface
  Description
  `interface`
  `AnnotationDefaultAttribute`
  Models the `AnnotationDefault` attribute (JVMS 4.7.22), which records the default value (JLS 9.6.2) for the annotation interface element defined by this method.
  `interface`
  `BootstrapMethodsAttribute`
  Models the `BootstrapMethods` attribute (JVMS 4.7.23), which stores symbolic information for the execution of bootstrap methods, used by dynamically-computed call sites and constants.
  `interface`
  `CharacterRangeTableAttribute`
  Models the `CharacterRangeTable` attribute, which is a bidirectional mapping from ranges of positions in the source file to ranges of indices into the `code` array.
  `interface`
  `CodeAttribute`
  Models the `Code` attribute (JVMS 4.7.3), which contains the bytecode of this method.
  `interface`
  `CompilationIDAttribute`
  Models the `CompilationID` attribute, which records the compilation time of the `class` file.
  `interface`
  `ConstantValueAttribute`
  Models the `ConstantValue` attribute (JVMS 4.7.2), which indicates this field's value is a constant and that constant value.
  `interface`
  `DeprecatedAttribute`
  Models the `Deprecated` attribute (JVMS 4.7.15), which indicates this structure has been superseded.
  `interface`
  `EnclosingMethodAttribute`
  Models the `EnclosingMethod` attribute (JVMS 4.7.7), which indicates that this class is a local or anonymous class, and indicates the enclosing method or constructor of this class if this class is enclosed in exactly one method or constructor.
  `interface`
  `ExceptionsAttribute`
  Models the `Exceptions` attribute (JVMS 4.7.5), which records the exceptions declared to be thrown by this method.
  `interface`
  `InnerClassesAttribute`
  Models the `InnerClasses` attribute (JVMS 4.7.6), which records which classes referenced by this `class` file are nested classes.
  `interface`
  `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.
  `interface`
  `LocalVariableTableAttribute`
  Models the `LocalVariableTable` attribute (JVMS 4.7.13), which records debug information about local variables.
  `interface`
  `LocalVariableTypeTableAttribute`
  Models the `LocalVariableTypeTable` attribute (JVMS 4.7.14), which records debug information about local variables with generic types.
  `interface`
  `MethodParametersAttribute`
  Models the `MethodParameters` attribute (JVMS 4.7.24), which records reflective information about this method's parameters such as access modifiers.
  `interface`
  `ModuleAttribute`
  Models the `Module` attribute (JVMS 4.7.25), which always appears on classes that represent module descriptors.
  `interface`
  `ModuleHashesAttribute`
  Models the `ModuleHashes` attribute, which appears on classes that represent module descriptors to capture the hashes of a set of co-delivered modules.
  `interface`
  `ModuleMainClassAttribute`
  Models the `ModuleMainClass` attribute (JVMS 4.7.27), which appears on classes that represent module descriptors to indicate the main class of the module.
  `interface`
  `ModulePackagesAttribute`
  Models the `ModulePackages` attribute (JVMS 4.7.26), which can appear on classes that represent module descriptors to indicate packages in the module used by the module descriptor.
  `interface`
  `ModuleResolutionAttribute`
  Models the `ModuleResolution` attribute, which can appear on classes that represent module descriptors, to capture resolution metadata for modules.
  `interface`
  `ModuleTargetAttribute`
  Models the `ModuleTarget` attribute, which can appear on classes that represent module descriptors, to represent constraints on the target platform.
  `interface`
  `NestHostAttribute`
  Models the `NestHost` attribute (JVMS 4.7.28), which indicates this class is a member of a nest and the host class of the nest.
  `interface`
  `NestMembersAttribute`
  Models the `NestMembers` attribute (JVMS 4.7.29), which indicates that this class is the host of a nest and the other nest members.
  `interface`
  `PermittedSubclassesAttribute`
  Models the `PermittedSubclasses` attribute (JVMS 4.7.31), which indicates this class or interface is sealed, and which classes or interfaces may extend or implement this class or interface.
  `interface`
  `RecordAttribute`
  Models the `Record` attribute (JVMS 4.7.30), which indicates that this class is a record class and the record components.
  `interface`
  `RecordComponentInfo`
  Models a single record component in the `RecordAttribute`.
  `interface`
  `RuntimeInvisibleAnnotationsAttribute`
  Models the `RuntimeInvisibleAnnotations` attribute (JVMS 4.7.17), which stores declaration annotations on this structure that are visible to `class` file consumers but are not visible to core reflection.
  `interface`
  `RuntimeInvisibleParameterAnnotationsAttribute`
  Models the `RuntimeInvisibleParameterAnnotations` attribute (JVMS 4.7.19), which stores declaration annotations on the method parameters of this method that are visible to `class` file consumers but are not visible to core reflection.
  `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`
  `RuntimeVisibleAnnotationsAttribute`
  Models the `RuntimeVisibleAnnotations` attribute (JVMS 4.7.16), which stores declaration annotations on this structure that are visible to both `class` file consumers and core reflection.
  `interface`
  `RuntimeVisibleParameterAnnotationsAttribute`
  Models the `RuntimeVisibleParameterAnnotations` attribute (JVMS 4.7.18), which stores declaration annotations on the method parameters of this method that are visible to both `class` file consumers and 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`
  `SignatureAttribute`
  Models the `Signature` attribute (JVMS 4.7.9), which indicates the generic signature of this structure.
  `interface`
  `SourceDebugExtensionAttribute`
  Models the `SourceDebugExtension` attribute (JVMS 4.7.11), which stores arbitrary modified UTF-8 data.
  `interface`
  `SourceFileAttribute`
  Models the `SourceFile` attribute (JVMS 4.7.10), which indicates the name of the source file from which this `class` file was compiled.
  `interface`
  `SourceIDAttribute`
  Models the `SourceID` attribute, which records the last modified time of the source file from which this `class` file was compiled.
  `interface`
  `StackMapTableAttribute`
  Models the `StackMapTable` attribute (JVMS 4.7.4), which is used for verification by type checking (4.10.1).
  `interface`
  `SyntheticAttribute`
  Models the `Synthetic` attribute (JVMS 4.7.8), which marks a class member as implementation-specific artifacts.
  `interface`
  `UnknownAttribute`
  Models an unknown attribute read from a `class` file.

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

  Subinterfaces of ClassFileElement 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.