< prev index next >

src/java.base/share/classes/java/lang/classfile/package-info.java

Print this page

462  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
463  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
464  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
465  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
466  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
467  *                        List<ClassEntry> uses)
468  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
469  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
470  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
471  *     | ModuleResolutionAttribute?(int resolutionFlags)
472  *     | SourceFileAttribute?(Utf8Entry sourceFile)
473  *     | SourceDebugExtensionsAttribute?(byte[] contents)
474  *     | CompilationIDAttribute?(Utf8Entry compilationId)
475  *     | SourceIDAttribute?(Utf8Entry sourceId)
476  *     | NestHostAttribute?(ClassEntry nestHost)
477  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
478  *     | RecordAttribute?(List<RecordComponent> components)
479  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
480  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
481  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)

482  *     | DeclarationElement*
483  * }
484  *
485  * where {@code DeclarationElement} are the elements that are common to all declarations
486  * (classes,  methods, fields) and so are factored out:
487  *
488  * {@snippet lang="text" :
489  * DeclarationElement =
490  *     SignatureAttribute?(Utf8Entry signature)
491  *     | SyntheticAttribute?()
492  *     | DeprecatedAttribute?()
493  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
494  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
495  *     | CustomAttribute*
496  *     | UnknownAttribute*
497  * }
498  *
499  * Fields and methods are models with their own elements.  The elements of fields
500  * and methods are fairly simple; most of the complexity of methods lives in the
501  * {@link CodeModel} (which models the {@code Code} attribute

462  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
463  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
464  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
465  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
466  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
467  *                        List<ClassEntry> uses)
468  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
469  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
470  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
471  *     | ModuleResolutionAttribute?(int resolutionFlags)
472  *     | SourceFileAttribute?(Utf8Entry sourceFile)
473  *     | SourceDebugExtensionsAttribute?(byte[] contents)
474  *     | CompilationIDAttribute?(Utf8Entry compilationId)
475  *     | SourceIDAttribute?(Utf8Entry sourceId)
476  *     | NestHostAttribute?(ClassEntry nestHost)
477  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
478  *     | RecordAttribute?(List<RecordComponent> components)
479  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
480  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
481  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)
482  *     | LoadableDescriptorsAttribute?(List<Utf8Entry> loadableDescriptors)
483  *     | DeclarationElement*
484  * }
485  *
486  * where {@code DeclarationElement} are the elements that are common to all declarations
487  * (classes,  methods, fields) and so are factored out:
488  *
489  * {@snippet lang="text" :
490  * DeclarationElement =
491  *     SignatureAttribute?(Utf8Entry signature)
492  *     | SyntheticAttribute?()
493  *     | DeprecatedAttribute?()
494  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
495  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
496  *     | CustomAttribute*
497  *     | UnknownAttribute*
498  * }
499  *
500  * Fields and methods are models with their own elements.  The elements of fields
501  * and methods are fairly simple; most of the complexity of methods lives in the
502  * {@link CodeModel} (which models the {@code Code} attribute
< prev index next >