24 */
25 package java.lang.classfile;
26
27 import java.lang.classfile.attribute.*;
28
29 import jdk.internal.javac.PreviewFeature;
30
31 /**
32 * A marker interface for elements that can appear when traversing
33 * a {@link ClassModel} or be presented to a {@link ClassBuilder}.
34 *
35 * @sealedGraph
36 * @since 22
37 */
38 @PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
39 public sealed interface ClassElement extends ClassFileElement
40 permits AccessFlags, Superclass, Interfaces, ClassFileVersion,
41 FieldModel, MethodModel,
42 CustomAttribute, CompilationIDAttribute, DeprecatedAttribute,
43 EnclosingMethodAttribute, InnerClassesAttribute,
44 ModuleAttribute, ModuleHashesAttribute, ModuleMainClassAttribute,
45 ModulePackagesAttribute, ModuleResolutionAttribute, ModuleTargetAttribute,
46 NestHostAttribute, NestMembersAttribute, PermittedSubclassesAttribute,
47 RecordAttribute,
48 RuntimeInvisibleAnnotationsAttribute, RuntimeInvisibleTypeAnnotationsAttribute,
49 RuntimeVisibleAnnotationsAttribute, RuntimeVisibleTypeAnnotationsAttribute,
50 SignatureAttribute, SourceDebugExtensionAttribute,
51 SourceFileAttribute, SourceIDAttribute, SyntheticAttribute, UnknownAttribute {
52 }
|
24 */
25 package java.lang.classfile;
26
27 import java.lang.classfile.attribute.*;
28
29 import jdk.internal.javac.PreviewFeature;
30
31 /**
32 * A marker interface for elements that can appear when traversing
33 * a {@link ClassModel} or be presented to a {@link ClassBuilder}.
34 *
35 * @sealedGraph
36 * @since 22
37 */
38 @PreviewFeature(feature = PreviewFeature.Feature.CLASSFILE_API)
39 public sealed interface ClassElement extends ClassFileElement
40 permits AccessFlags, Superclass, Interfaces, ClassFileVersion,
41 FieldModel, MethodModel,
42 CustomAttribute, CompilationIDAttribute, DeprecatedAttribute,
43 EnclosingMethodAttribute, InnerClassesAttribute,
44 LoadableDescriptorsAttribute,
45 ModuleAttribute, ModuleHashesAttribute, ModuleMainClassAttribute,
46 ModulePackagesAttribute, ModuleResolutionAttribute, ModuleTargetAttribute,
47 NestHostAttribute, NestMembersAttribute, PermittedSubclassesAttribute,
48 RecordAttribute,
49 RuntimeInvisibleAnnotationsAttribute, RuntimeInvisibleTypeAnnotationsAttribute,
50 RuntimeVisibleAnnotationsAttribute, RuntimeVisibleTypeAnnotationsAttribute,
51 SignatureAttribute, SourceDebugExtensionAttribute,
52 SourceFileAttribute, SourceIDAttribute, SyntheticAttribute, UnknownAttribute {
53 }
|