35 import java.lang.classfile.AttributeMapper;
36 import java.lang.classfile.Attributes;
37 import java.lang.classfile.BootstrapMethodEntry;
38 import java.lang.classfile.BufWriter;
39 import java.lang.classfile.constantpool.ClassEntry;
40 import java.lang.classfile.Label;
41 import java.lang.classfile.TypeAnnotation;
42 import java.lang.classfile.attribute.AnnotationDefaultAttribute;
43 import java.lang.classfile.attribute.BootstrapMethodsAttribute;
44 import java.lang.classfile.attribute.CharacterRangeInfo;
45 import java.lang.classfile.attribute.CharacterRangeTableAttribute;
46 import java.lang.classfile.attribute.CompilationIDAttribute;
47 import java.lang.classfile.attribute.ConstantValueAttribute;
48 import java.lang.classfile.attribute.DeprecatedAttribute;
49 import java.lang.classfile.attribute.EnclosingMethodAttribute;
50 import java.lang.classfile.attribute.ExceptionsAttribute;
51 import java.lang.classfile.attribute.InnerClassInfo;
52 import java.lang.classfile.attribute.InnerClassesAttribute;
53 import java.lang.classfile.attribute.LineNumberInfo;
54 import java.lang.classfile.attribute.LineNumberTableAttribute;
55 import java.lang.classfile.attribute.LocalVariableInfo;
56 import java.lang.classfile.attribute.LocalVariableTableAttribute;
57 import java.lang.classfile.attribute.LocalVariableTypeInfo;
58 import java.lang.classfile.attribute.LocalVariableTypeTableAttribute;
59 import java.lang.classfile.attribute.MethodParameterInfo;
60 import java.lang.classfile.attribute.MethodParametersAttribute;
61 import java.lang.classfile.attribute.ModuleAttribute;
62 import java.lang.classfile.attribute.ModuleExportInfo;
63 import java.lang.classfile.attribute.ModuleHashInfo;
64 import java.lang.classfile.attribute.ModuleHashesAttribute;
65 import java.lang.classfile.attribute.ModuleMainClassAttribute;
66 import java.lang.classfile.attribute.ModuleOpenInfo;
67 import java.lang.classfile.attribute.ModulePackagesAttribute;
68 import java.lang.classfile.attribute.ModuleProvideInfo;
69 import java.lang.classfile.attribute.ModuleRequireInfo;
70 import java.lang.classfile.attribute.ModuleResolutionAttribute;
71 import java.lang.classfile.attribute.ModuleTargetAttribute;
72 import java.lang.classfile.attribute.NestHostAttribute;
73 import java.lang.classfile.attribute.NestMembersAttribute;
74 import java.lang.classfile.attribute.PermittedSubclassesAttribute;
412 return resolutionFlags;
413 }
414 }
415
416 public static final class UnboundPermittedSubclassesAttribute
417 extends UnboundAttribute<PermittedSubclassesAttribute>
418 implements PermittedSubclassesAttribute {
419 private final List<ClassEntry> permittedSubclasses;
420
421 public UnboundPermittedSubclassesAttribute(List<ClassEntry> permittedSubclasses) {
422 super(Attributes.PERMITTED_SUBCLASSES);
423 this.permittedSubclasses = List.copyOf(permittedSubclasses);
424 }
425
426 @Override
427 public List<ClassEntry> permittedSubclasses() {
428 return permittedSubclasses;
429 }
430 }
431
432 public static final class UnboundNestMembersAttribute
433 extends UnboundAttribute<NestMembersAttribute>
434 implements NestMembersAttribute {
435 private final List<ClassEntry> memberEntries;
436
437 public UnboundNestMembersAttribute(List<ClassEntry> memberEntries) {
438 super(Attributes.NEST_MEMBERS);
439 this.memberEntries = List.copyOf(memberEntries);
440 }
441
442 @Override
443 public List<ClassEntry> nestMembers() {
444 return memberEntries;
445 }
446 }
447
448 public static final class UnboundNestHostAttribute
449 extends UnboundAttribute<NestHostAttribute>
450 implements NestHostAttribute {
451 private final ClassEntry hostEntry;
|
35 import java.lang.classfile.AttributeMapper;
36 import java.lang.classfile.Attributes;
37 import java.lang.classfile.BootstrapMethodEntry;
38 import java.lang.classfile.BufWriter;
39 import java.lang.classfile.constantpool.ClassEntry;
40 import java.lang.classfile.Label;
41 import java.lang.classfile.TypeAnnotation;
42 import java.lang.classfile.attribute.AnnotationDefaultAttribute;
43 import java.lang.classfile.attribute.BootstrapMethodsAttribute;
44 import java.lang.classfile.attribute.CharacterRangeInfo;
45 import java.lang.classfile.attribute.CharacterRangeTableAttribute;
46 import java.lang.classfile.attribute.CompilationIDAttribute;
47 import java.lang.classfile.attribute.ConstantValueAttribute;
48 import java.lang.classfile.attribute.DeprecatedAttribute;
49 import java.lang.classfile.attribute.EnclosingMethodAttribute;
50 import java.lang.classfile.attribute.ExceptionsAttribute;
51 import java.lang.classfile.attribute.InnerClassInfo;
52 import java.lang.classfile.attribute.InnerClassesAttribute;
53 import java.lang.classfile.attribute.LineNumberInfo;
54 import java.lang.classfile.attribute.LineNumberTableAttribute;
55 import java.lang.classfile.attribute.LoadableDescriptorsAttribute;
56 import java.lang.classfile.attribute.LocalVariableInfo;
57 import java.lang.classfile.attribute.LocalVariableTableAttribute;
58 import java.lang.classfile.attribute.LocalVariableTypeInfo;
59 import java.lang.classfile.attribute.LocalVariableTypeTableAttribute;
60 import java.lang.classfile.attribute.MethodParameterInfo;
61 import java.lang.classfile.attribute.MethodParametersAttribute;
62 import java.lang.classfile.attribute.ModuleAttribute;
63 import java.lang.classfile.attribute.ModuleExportInfo;
64 import java.lang.classfile.attribute.ModuleHashInfo;
65 import java.lang.classfile.attribute.ModuleHashesAttribute;
66 import java.lang.classfile.attribute.ModuleMainClassAttribute;
67 import java.lang.classfile.attribute.ModuleOpenInfo;
68 import java.lang.classfile.attribute.ModulePackagesAttribute;
69 import java.lang.classfile.attribute.ModuleProvideInfo;
70 import java.lang.classfile.attribute.ModuleRequireInfo;
71 import java.lang.classfile.attribute.ModuleResolutionAttribute;
72 import java.lang.classfile.attribute.ModuleTargetAttribute;
73 import java.lang.classfile.attribute.NestHostAttribute;
74 import java.lang.classfile.attribute.NestMembersAttribute;
75 import java.lang.classfile.attribute.PermittedSubclassesAttribute;
413 return resolutionFlags;
414 }
415 }
416
417 public static final class UnboundPermittedSubclassesAttribute
418 extends UnboundAttribute<PermittedSubclassesAttribute>
419 implements PermittedSubclassesAttribute {
420 private final List<ClassEntry> permittedSubclasses;
421
422 public UnboundPermittedSubclassesAttribute(List<ClassEntry> permittedSubclasses) {
423 super(Attributes.PERMITTED_SUBCLASSES);
424 this.permittedSubclasses = List.copyOf(permittedSubclasses);
425 }
426
427 @Override
428 public List<ClassEntry> permittedSubclasses() {
429 return permittedSubclasses;
430 }
431 }
432
433 public static final class UnboundLoadableDescriptorsAttribute
434 extends UnboundAttribute<LoadableDescriptorsAttribute>
435 implements LoadableDescriptorsAttribute {
436 private final List<Utf8Entry> loadableDescriptors;
437
438 public UnboundLoadableDescriptorsAttribute(List<Utf8Entry> loadableDescriptors) {
439 super(Attributes.LOADABLE_DESCRIPTORS);
440 this.loadableDescriptors = List.copyOf(loadableDescriptors);
441 }
442
443 @Override
444 public List<Utf8Entry> loadableDescriptors() {
445 return loadableDescriptors;
446 }
447 }
448
449 public static final class UnboundNestMembersAttribute
450 extends UnboundAttribute<NestMembersAttribute>
451 implements NestMembersAttribute {
452 private final List<ClassEntry> memberEntries;
453
454 public UnboundNestMembersAttribute(List<ClassEntry> memberEntries) {
455 super(Attributes.NEST_MEMBERS);
456 this.memberEntries = List.copyOf(memberEntries);
457 }
458
459 @Override
460 public List<ClassEntry> nestMembers() {
461 return memberEntries;
462 }
463 }
464
465 public static final class UnboundNestHostAttribute
466 extends UnboundAttribute<NestHostAttribute>
467 implements NestHostAttribute {
468 private final ClassEntry hostEntry;
|