< prev index next >

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

Print this page

496  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
497  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
498  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
499  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
500  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
501  *                        List<ClassEntry> uses)
502  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
503  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
504  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
505  *     | ModuleResolutionAttribute?(int resolutionFlags)
506  *     | SourceFileAttribute?(Utf8Entry sourceFile)
507  *     | SourceDebugExtensionsAttribute?(byte[] contents)
508  *     | CompilationIDAttribute?(Utf8Entry compilationId)
509  *     | SourceIDAttribute?(Utf8Entry sourceId)
510  *     | NestHostAttribute?(ClassEntry nestHost)
511  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
512  *     | RecordAttribute?(List<RecordComponent> components)
513  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
514  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
515  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)

516  *     | DeclarationElement*
517  * }
518  *
519  * where {@code DeclarationElement} are the elements that are common to all declarations
520  * (classes,  methods, fields) and so are factored out:
521  *
522  * {@snippet lang="text" :
523  * DeclarationElement =
524  *     SignatureAttribute?(Utf8Entry signature)
525  *     | SyntheticAttribute?()
526  *     | DeprecatedAttribute?()
527  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
528  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
529  *     | CustomAttribute*
530  *     | UnknownAttribute*
531  * }
532  *
533  * Fields and methods are models with their own elements.  The elements of fields
534  * and methods are fairly simple; most of the complexity of methods lives in the
535  * {@link CodeModel} (which models the {@code Code} attribute

496  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
497  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
498  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
499  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
500  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
501  *                        List<ClassEntry> uses)
502  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
503  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
504  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
505  *     | ModuleResolutionAttribute?(int resolutionFlags)
506  *     | SourceFileAttribute?(Utf8Entry sourceFile)
507  *     | SourceDebugExtensionsAttribute?(byte[] contents)
508  *     | CompilationIDAttribute?(Utf8Entry compilationId)
509  *     | SourceIDAttribute?(Utf8Entry sourceId)
510  *     | NestHostAttribute?(ClassEntry nestHost)
511  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
512  *     | RecordAttribute?(List<RecordComponent> components)
513  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
514  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
515  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)
516  *     | LoadableDescriptorsAttribute?(List<Utf8Entry> loadableDescriptors)
517  *     | DeclarationElement*
518  * }
519  *
520  * where {@code DeclarationElement} are the elements that are common to all declarations
521  * (classes,  methods, fields) and so are factored out:
522  *
523  * {@snippet lang="text" :
524  * DeclarationElement =
525  *     SignatureAttribute?(Utf8Entry signature)
526  *     | SyntheticAttribute?()
527  *     | DeprecatedAttribute?()
528  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
529  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
530  *     | CustomAttribute*
531  *     | UnknownAttribute*
532  * }
533  *
534  * Fields and methods are models with their own elements.  The elements of fields
535  * and methods are fairly simple; most of the complexity of methods lives in the
536  * {@link CodeModel} (which models the {@code Code} attribute
< prev index next >