< prev index next >

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

Print this page

437  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
438  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
439  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
440  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
441  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
442  *                        List<ClassEntry> uses)
443  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
444  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
445  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
446  *     | ModuleResolutionAttribute?(int resolutionFlags)
447  *     | SourceFileAttribute?(Utf8Entry sourceFile)
448  *     | SourceDebugExtensionsAttribute?(byte[] contents)
449  *     | CompilationIDAttribute?(Utf8Entry compilationId)
450  *     | SourceIDAttribute?(Utf8Entry sourceId)
451  *     | NestHostAttribute?(ClassEntry nestHost)
452  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
453  *     | RecordAttribute?(List<RecordComponent> components)
454  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
455  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
456  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)

457  *     | DeclarationElement*
458  * }
459  *<p>
460  * where {@code DeclarationElement} are the elements that are common to all declarations
461  * (classes,  methods, fields) and so are factored out:
462  *
463  * {@snippet lang="text" :
464  * DeclarationElement =
465  *     SignatureAttribute?(Utf8Entry signature)
466  *     | SyntheticAttribute?()
467  *     | DeprecatedAttribute?()
468  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
469  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
470  *     | CustomAttribute*
471  *     | UnknownAttribute*
472  * }
473  *
474  * Fields and methods are models with their own elements.  The elements of fields
475  * and methods are fairly simple; most of the complexity of methods lives in the
476  * {@link java.lang.classfile.CodeModel} (which models the {@code Code} attribute

437  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
438  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
439  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
440  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
441  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
442  *                        List<ClassEntry> uses)
443  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
444  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
445  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
446  *     | ModuleResolutionAttribute?(int resolutionFlags)
447  *     | SourceFileAttribute?(Utf8Entry sourceFile)
448  *     | SourceDebugExtensionsAttribute?(byte[] contents)
449  *     | CompilationIDAttribute?(Utf8Entry compilationId)
450  *     | SourceIDAttribute?(Utf8Entry sourceId)
451  *     | NestHostAttribute?(ClassEntry nestHost)
452  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
453  *     | RecordAttribute?(List<RecordComponent> components)
454  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
455  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
456  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)
457  *     | LoadableDescriptorsAttribute?(List<Utf8Entry> loadableDescriptors)
458  *     | DeclarationElement*
459  * }
460  *<p>
461  * where {@code DeclarationElement} are the elements that are common to all declarations
462  * (classes,  methods, fields) and so are factored out:
463  *
464  * {@snippet lang="text" :
465  * DeclarationElement =
466  *     SignatureAttribute?(Utf8Entry signature)
467  *     | SyntheticAttribute?()
468  *     | DeprecatedAttribute?()
469  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
470  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
471  *     | CustomAttribute*
472  *     | UnknownAttribute*
473  * }
474  *
475  * Fields and methods are models with their own elements.  The elements of fields
476  * and methods are fairly simple; most of the complexity of methods lives in the
477  * {@link java.lang.classfile.CodeModel} (which models the {@code Code} attribute
< prev index next >