Interface ClassFileElement
- All Known Subinterfaces:
- AccessFlags,- AnnotationDefaultAttribute,- ArrayLoadInstruction,- ArrayStoreInstruction,- Attribute<A>,- AttributedElement,- BootstrapMethodsAttribute,- BranchInstruction,- CharacterRange,- CharacterRangeTableAttribute,- ClassElement,- ClassFileVersion,- ClassModel,- CodeAttribute,- CodeElement,- CodeModel,- CompilationIDAttribute,- CompoundElement<E>,- ConstantInstruction,- ConstantInstruction.ArgumentConstantInstruction,- ConstantInstruction.IntrinsicConstantInstruction,- ConstantInstruction.LoadConstantInstruction,- ConstantValueAttribute,- ConvertInstruction,- DeprecatedAttribute,- DiscontinuedInstruction,- DiscontinuedInstruction.JsrInstruction,- DiscontinuedInstruction.RetInstruction,- EnclosingMethodAttribute,- ExceptionCatch,- ExceptionsAttribute,- FieldElement,- FieldInstruction,- FieldModel,- IncrementInstruction,- InnerClassesAttribute,- Instruction,- Interfaces,- InvokeDynamicInstruction,- InvokeInstruction,- LabelTarget,- LineNumber,- LineNumberTableAttribute,- LoadInstruction,- LocalVariable,- LocalVariableTableAttribute,- LocalVariableType,- LocalVariableTypeTableAttribute,- LookupSwitchInstruction,- MethodElement,- MethodModel,- MethodParametersAttribute,- ModuleAttribute,- ModuleHashesAttribute,- ModuleMainClassAttribute,- ModulePackagesAttribute,- ModuleResolutionAttribute,- ModuleTargetAttribute,- MonitorInstruction,- NestHostAttribute,- NestMembersAttribute,- NewMultiArrayInstruction,- NewObjectInstruction,- NewPrimitiveArrayInstruction,- NewReferenceArrayInstruction,- NopInstruction,- OperatorInstruction,- PermittedSubclassesAttribute,- PseudoInstruction,- RecordAttribute,- RecordComponentInfo,- ReturnInstruction,- RuntimeInvisibleAnnotationsAttribute,- RuntimeInvisibleParameterAnnotationsAttribute,- RuntimeInvisibleTypeAnnotationsAttribute,- RuntimeVisibleAnnotationsAttribute,- RuntimeVisibleParameterAnnotationsAttribute,- RuntimeVisibleTypeAnnotationsAttribute,- SignatureAttribute,- SourceDebugExtensionAttribute,- SourceFileAttribute,- SourceIDAttribute,- StackInstruction,- StackMapTableAttribute,- StoreInstruction,- Superclass,- SyntheticAttribute,- TableSwitchInstruction,- ThrowInstruction,- TypeCheckInstruction,- UnknownAttribute
- All Known Implementing Classes:
- CustomAttribute
public sealed interface ClassFileElement
permits AttributedElement, CompoundElement<E>, Attribute<A>, ClassElement, CodeElement, FieldElement, MethodElement
Marker interface for structures with special capabilities in the 
 class file format. AttributedElement indicates a structure has
 Attributes.  CompoundElement indicates a structure can be
 viewed as a composition of member structures, whose memberships are marked by
 ClassElement, MethodElement, FieldElement, or CodeElement.
 Membership Elements
ClassModel, MethodModel, FieldModel, and CodeModel each has a dedicated interface marking its member structures:
 ClassElement, MethodElement, FieldElement, and
 CodeElement.  They can be supplied to a ClassBuilder, a
 MethodBuilder, a FieldBuilder, or a CodeBuilder to be
 included as members of the built model.  Unless otherwise specified, these
 structures are delivered during the traversal of
 the corresponding models.  Some of these elements may appear at most once or
 exactly once in the traversal of the models; such elements have special
 treatment by ClassFileBuilder and are specified in their modeling
 interfaces.  If such elements appear multiple times during traversal, the
 last occurrence should be used and all previous instances should be
 discarded.
 
 These membership element marker interfaces are sealed; future versions of the
 Java SE Platform may define new elements to the sealed hierarchy when the
 class file format for the Java Platform evolves.  Using an exhaustive
 pattern matching switch over these hierarchies indicates the user only wish
 the processing code to run on a specific version of Java Platform, and will
 fail if unknown new elements are encountered.