< prev index next >

src/java.base/share/classes/jdk/internal/classfile/package-info.java

Print this page

388  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
389  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
390  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
391  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
392  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
393  *                        List<ClassEntry> uses)
394  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
395  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
396  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
397  *     | ModuleResolutionAttribute?(int resolutionFlags)
398  *     | SourceFileAttribute?(Utf8Entry sourceFile)
399  *     | SourceDebugExtensionsAttribute?(byte[] contents)
400  *     | CompilationIDAttribute?(Utf8Entry compilationId)
401  *     | SourceIDAttribute?(Utf8Entry sourceId)
402  *     | NestHostAttribute?(ClassEntry nestHost)
403  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
404  *     | RecordAttribute?(List<RecordComponent> components)
405  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
406  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
407  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)

408  *     | DeclarationElement*
409  * }
410  *<p>
411  * where {@code DeclarationElement} are the elements that are common to all declarations
412  * (classes,  methods, fields) and so are factored out:
413  *
414  * {@snippet lang="text" :
415  * DeclarationElement =
416  *     SignatureAttribute?(Utf8Entry signature)
417  *     | SyntheticAttribute?()
418  *     | DeprecatedAttribute?()
419  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
420  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
421  *     | CustomAttribute*
422  *     | UnknownAttribute*
423  * }
424  *
425  * Fields and methods are models with their own elements.  The elements of fields
426  * and methods are fairly simple; most of the complexity of methods lives in the
427  * {@link jdk.internal.classfile.CodeModel} (which models the {@code Code} attribute

388  *     FieldModel*(UtfEntry name, Utf8Entry descriptor)
389  *     | MethodModel*(UtfEntry name, Utf8Entry descriptor)
390  *     | ModuleAttribute?(int flags, ModuleEntry moduleName, UtfEntry moduleVersion,
391  *                        List<ModuleRequireInfo> requires, List<ModuleOpenInfo> opens,
392  *                        List<ModuleExportInfo> exports, List<ModuleProvidesInfo> provides,
393  *                        List<ClassEntry> uses)
394  *     | ModulePackagesAttribute?(List<PackageEntry> packages)
395  *     | ModuleTargetAttribute?(Utf8Entry targetPlatform)
396  *     | ModuleHashesAttribute?(Utf8Entry algorithm, List<HashInfo> hashes)
397  *     | ModuleResolutionAttribute?(int resolutionFlags)
398  *     | SourceFileAttribute?(Utf8Entry sourceFile)
399  *     | SourceDebugExtensionsAttribute?(byte[] contents)
400  *     | CompilationIDAttribute?(Utf8Entry compilationId)
401  *     | SourceIDAttribute?(Utf8Entry sourceId)
402  *     | NestHostAttribute?(ClassEntry nestHost)
403  *     | NestMembersAttribute?(List<ClassEntry> nestMembers)
404  *     | RecordAttribute?(List<RecordComponent> components)
405  *     | EnclosingMethodAttribute?(ClassEntry className, NameAndTypeEntry method)
406  *     | InnerClassesAttribute?(List<InnerClassInfo> classes)
407  *     | PermittedSubclassesAttribute?(List<ClassEntry> permittedSubclasses)
408  *     | PreloadAttribute?(List<ClassEntry> preloads)
409  *     | DeclarationElement*
410  * }
411  *<p>
412  * where {@code DeclarationElement} are the elements that are common to all declarations
413  * (classes,  methods, fields) and so are factored out:
414  *
415  * {@snippet lang="text" :
416  * DeclarationElement =
417  *     SignatureAttribute?(Utf8Entry signature)
418  *     | SyntheticAttribute?()
419  *     | DeprecatedAttribute?()
420  *     | RuntimeInvisibleAnnotationsAttribute?(List<Annotation> annotations)
421  *     | RuntimeVisibleAnnotationsAttribute?(List<Annotation> annotations)
422  *     | CustomAttribute*
423  *     | UnknownAttribute*
424  * }
425  *
426  * Fields and methods are models with their own elements.  The elements of fields
427  * and methods are fairly simple; most of the complexity of methods lives in the
428  * {@link jdk.internal.classfile.CodeModel} (which models the {@code Code} attribute
< prev index next >