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