34 * <p><b>This is NOT part of any supported API.
35 * If you write code that depends on this, you do so at your own risk.
36 * This code and its internal interfaces are subject to change or
37 * deletion without notice.</b>
38 */
39
40 public abstract class Attribute {
41 public static final String AnnotationDefault = "AnnotationDefault";
42 public static final String BootstrapMethods = "BootstrapMethods";
43 public static final String CharacterRangeTable = "CharacterRangeTable";
44 public static final String Code = "Code";
45 public static final String ConstantValue = "ConstantValue";
46 public static final String CompilationID = "CompilationID";
47 public static final String Deprecated = "Deprecated";
48 public static final String EnclosingMethod = "EnclosingMethod";
49 public static final String Exceptions = "Exceptions";
50 public static final String InnerClasses = "InnerClasses";
51 public static final String LineNumberTable = "LineNumberTable";
52 public static final String LocalVariableTable = "LocalVariableTable";
53 public static final String LocalVariableTypeTable = "LocalVariableTypeTable";
54 public static final String MemberOfNest = "MemberOfNest";
55 public static final String MethodParameters = "MethodParameters";
56 public static final String Module = "Module";
57 public static final String ModuleHashes = "ModuleHashes";
58 public static final String ModuleMainClass = "ModuleMainClass";
59 public static final String ModulePackages = "ModulePackages";
60 public static final String ModuleResolution = "ModuleResolution";
61 public static final String ModuleTarget = "ModuleTarget";
62 public static final String NestMembers = "NestMembers";
63 public static final String RuntimeVisibleAnnotations = "RuntimeVisibleAnnotations";
64 public static final String RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations";
65 public static final String RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations";
66 public static final String RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations";
67 public static final String RuntimeVisibleTypeAnnotations = "RuntimeVisibleTypeAnnotations";
68 public static final String RuntimeInvisibleTypeAnnotations = "RuntimeInvisibleTypeAnnotations";
69 public static final String Signature = "Signature";
70 public static final String SourceDebugExtension = "SourceDebugExtension";
71 public static final String SourceFile = "SourceFile";
72 public static final String SourceID = "SourceID";
73 public static final String StackMap = "StackMap";
74 public static final String StackMapTable = "StackMapTable";
75 public static final String Synthetic = "Synthetic";
76
77 public static class Factory {
78 public Factory() {
79 // defer init of standardAttributeClasses until after options set up
80 }
81
108 // fall through and use DefaultAttribute
109 }
110 return new DefaultAttribute(cr, name_index, data, reasonForDefaultAttr);
111 }
112
113 protected void init() {
114 standardAttributes = new HashMap<>();
115 standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class);
116 standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class);
117 standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class);
118 standardAttributes.put(Code, Code_attribute.class);
119 standardAttributes.put(CompilationID, CompilationID_attribute.class);
120 standardAttributes.put(ConstantValue, ConstantValue_attribute.class);
121 standardAttributes.put(Deprecated, Deprecated_attribute.class);
122 standardAttributes.put(EnclosingMethod, EnclosingMethod_attribute.class);
123 standardAttributes.put(Exceptions, Exceptions_attribute.class);
124 standardAttributes.put(InnerClasses, InnerClasses_attribute.class);
125 standardAttributes.put(LineNumberTable, LineNumberTable_attribute.class);
126 standardAttributes.put(LocalVariableTable, LocalVariableTable_attribute.class);
127 standardAttributes.put(LocalVariableTypeTable, LocalVariableTypeTable_attribute.class);
128 standardAttributes.put(MemberOfNest, MemberOfNest_attribute.class);
129 standardAttributes.put(MethodParameters, MethodParameters_attribute.class);
130 standardAttributes.put(Module, Module_attribute.class);
131 standardAttributes.put(ModuleHashes, ModuleHashes_attribute.class);
132 standardAttributes.put(ModuleMainClass, ModuleMainClass_attribute.class);
133 standardAttributes.put(ModulePackages, ModulePackages_attribute.class);
134 standardAttributes.put(ModuleResolution, ModuleResolution_attribute.class);
135 standardAttributes.put(ModuleTarget, ModuleTarget_attribute.class);
136 standardAttributes.put(NestMembers, NestMembers_attribute.class);
137 standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class);
138 standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
139 standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
140 standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
141 standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
142 standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class);
143 standardAttributes.put(Signature, Signature_attribute.class);
144 standardAttributes.put(SourceDebugExtension, SourceDebugExtension_attribute.class);
145 standardAttributes.put(SourceFile, SourceFile_attribute.class);
146 standardAttributes.put(SourceID, SourceID_attribute.class);
147 standardAttributes.put(StackMap, StackMap_attribute.class);
148 standardAttributes.put(StackMapTable, StackMapTable_attribute.class);
149 standardAttributes.put(Synthetic, Synthetic_attribute.class);
150 }
151
152 private Map<String,Class<? extends Attribute>> standardAttributes;
153 }
154
155 public static Attribute read(ClassReader cr) throws IOException {
173
174 public final int attribute_name_index;
175 public final int attribute_length;
176
177
178 public interface Visitor<R,P> {
179 R visitBootstrapMethods(BootstrapMethods_attribute attr, P p);
180 R visitDefault(DefaultAttribute attr, P p);
181 R visitAnnotationDefault(AnnotationDefault_attribute attr, P p);
182 R visitCharacterRangeTable(CharacterRangeTable_attribute attr, P p);
183 R visitCode(Code_attribute attr, P p);
184 R visitCompilationID(CompilationID_attribute attr, P p);
185 R visitConstantValue(ConstantValue_attribute attr, P p);
186 R visitDeprecated(Deprecated_attribute attr, P p);
187 R visitEnclosingMethod(EnclosingMethod_attribute attr, P p);
188 R visitExceptions(Exceptions_attribute attr, P p);
189 R visitInnerClasses(InnerClasses_attribute attr, P p);
190 R visitLineNumberTable(LineNumberTable_attribute attr, P p);
191 R visitLocalVariableTable(LocalVariableTable_attribute attr, P p);
192 R visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, P p);
193 R visitMemberOfNest(MemberOfNest_attribute attr, P p);
194 R visitMethodParameters(MethodParameters_attribute attr, P p);
195 R visitModule(Module_attribute attr, P p);
196 R visitModuleHashes(ModuleHashes_attribute attr, P p);
197 R visitModuleMainClass(ModuleMainClass_attribute attr, P p);
198 R visitModulePackages(ModulePackages_attribute attr, P p);
199 R visitModuleResolution(ModuleResolution_attribute attr, P p);
200 R visitModuleTarget(ModuleTarget_attribute attr, P p);
201 R visitNestMembers(NestMembers_attribute attr, P p);
202 R visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, P p);
203 R visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, P p);
204 R visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, P p);
205 R visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, P p);
206 R visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, P p);
207 R visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, P p);
208 R visitSignature(Signature_attribute attr, P p);
209 R visitSourceDebugExtension(SourceDebugExtension_attribute attr, P p);
210 R visitSourceFile(SourceFile_attribute attr, P p);
211 R visitSourceID(SourceID_attribute attr, P p);
212 R visitStackMap(StackMap_attribute attr, P p);
213 R visitStackMapTable(StackMapTable_attribute attr, P p);
214 R visitSynthetic(Synthetic_attribute attr, P p);
215 }
216 }
|
34 * <p><b>This is NOT part of any supported API.
35 * If you write code that depends on this, you do so at your own risk.
36 * This code and its internal interfaces are subject to change or
37 * deletion without notice.</b>
38 */
39
40 public abstract class Attribute {
41 public static final String AnnotationDefault = "AnnotationDefault";
42 public static final String BootstrapMethods = "BootstrapMethods";
43 public static final String CharacterRangeTable = "CharacterRangeTable";
44 public static final String Code = "Code";
45 public static final String ConstantValue = "ConstantValue";
46 public static final String CompilationID = "CompilationID";
47 public static final String Deprecated = "Deprecated";
48 public static final String EnclosingMethod = "EnclosingMethod";
49 public static final String Exceptions = "Exceptions";
50 public static final String InnerClasses = "InnerClasses";
51 public static final String LineNumberTable = "LineNumberTable";
52 public static final String LocalVariableTable = "LocalVariableTable";
53 public static final String LocalVariableTypeTable = "LocalVariableTypeTable";
54 public static final String MethodParameters = "MethodParameters";
55 public static final String Module = "Module";
56 public static final String ModuleHashes = "ModuleHashes";
57 public static final String ModuleMainClass = "ModuleMainClass";
58 public static final String ModulePackages = "ModulePackages";
59 public static final String ModuleResolution = "ModuleResolution";
60 public static final String ModuleTarget = "ModuleTarget";
61 public static final String NestHost = "NestHost";
62 public static final String NestMembers = "NestMembers";
63 public static final String RuntimeVisibleAnnotations = "RuntimeVisibleAnnotations";
64 public static final String RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations";
65 public static final String RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations";
66 public static final String RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations";
67 public static final String RuntimeVisibleTypeAnnotations = "RuntimeVisibleTypeAnnotations";
68 public static final String RuntimeInvisibleTypeAnnotations = "RuntimeInvisibleTypeAnnotations";
69 public static final String Signature = "Signature";
70 public static final String SourceDebugExtension = "SourceDebugExtension";
71 public static final String SourceFile = "SourceFile";
72 public static final String SourceID = "SourceID";
73 public static final String StackMap = "StackMap";
74 public static final String StackMapTable = "StackMapTable";
75 public static final String Synthetic = "Synthetic";
76
77 public static class Factory {
78 public Factory() {
79 // defer init of standardAttributeClasses until after options set up
80 }
81
108 // fall through and use DefaultAttribute
109 }
110 return new DefaultAttribute(cr, name_index, data, reasonForDefaultAttr);
111 }
112
113 protected void init() {
114 standardAttributes = new HashMap<>();
115 standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class);
116 standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class);
117 standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class);
118 standardAttributes.put(Code, Code_attribute.class);
119 standardAttributes.put(CompilationID, CompilationID_attribute.class);
120 standardAttributes.put(ConstantValue, ConstantValue_attribute.class);
121 standardAttributes.put(Deprecated, Deprecated_attribute.class);
122 standardAttributes.put(EnclosingMethod, EnclosingMethod_attribute.class);
123 standardAttributes.put(Exceptions, Exceptions_attribute.class);
124 standardAttributes.put(InnerClasses, InnerClasses_attribute.class);
125 standardAttributes.put(LineNumberTable, LineNumberTable_attribute.class);
126 standardAttributes.put(LocalVariableTable, LocalVariableTable_attribute.class);
127 standardAttributes.put(LocalVariableTypeTable, LocalVariableTypeTable_attribute.class);
128 standardAttributes.put(MethodParameters, MethodParameters_attribute.class);
129 standardAttributes.put(Module, Module_attribute.class);
130 standardAttributes.put(ModuleHashes, ModuleHashes_attribute.class);
131 standardAttributes.put(ModuleMainClass, ModuleMainClass_attribute.class);
132 standardAttributes.put(ModulePackages, ModulePackages_attribute.class);
133 standardAttributes.put(ModuleResolution, ModuleResolution_attribute.class);
134 standardAttributes.put(ModuleTarget, ModuleTarget_attribute.class);
135 standardAttributes.put(NestHost, NestHost_attribute.class);
136 standardAttributes.put(NestMembers, NestMembers_attribute.class);
137 standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class);
138 standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
139 standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
140 standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
141 standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
142 standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class);
143 standardAttributes.put(Signature, Signature_attribute.class);
144 standardAttributes.put(SourceDebugExtension, SourceDebugExtension_attribute.class);
145 standardAttributes.put(SourceFile, SourceFile_attribute.class);
146 standardAttributes.put(SourceID, SourceID_attribute.class);
147 standardAttributes.put(StackMap, StackMap_attribute.class);
148 standardAttributes.put(StackMapTable, StackMapTable_attribute.class);
149 standardAttributes.put(Synthetic, Synthetic_attribute.class);
150 }
151
152 private Map<String,Class<? extends Attribute>> standardAttributes;
153 }
154
155 public static Attribute read(ClassReader cr) throws IOException {
173
174 public final int attribute_name_index;
175 public final int attribute_length;
176
177
178 public interface Visitor<R,P> {
179 R visitBootstrapMethods(BootstrapMethods_attribute attr, P p);
180 R visitDefault(DefaultAttribute attr, P p);
181 R visitAnnotationDefault(AnnotationDefault_attribute attr, P p);
182 R visitCharacterRangeTable(CharacterRangeTable_attribute attr, P p);
183 R visitCode(Code_attribute attr, P p);
184 R visitCompilationID(CompilationID_attribute attr, P p);
185 R visitConstantValue(ConstantValue_attribute attr, P p);
186 R visitDeprecated(Deprecated_attribute attr, P p);
187 R visitEnclosingMethod(EnclosingMethod_attribute attr, P p);
188 R visitExceptions(Exceptions_attribute attr, P p);
189 R visitInnerClasses(InnerClasses_attribute attr, P p);
190 R visitLineNumberTable(LineNumberTable_attribute attr, P p);
191 R visitLocalVariableTable(LocalVariableTable_attribute attr, P p);
192 R visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, P p);
193 R visitMethodParameters(MethodParameters_attribute attr, P p);
194 R visitModule(Module_attribute attr, P p);
195 R visitModuleHashes(ModuleHashes_attribute attr, P p);
196 R visitModuleMainClass(ModuleMainClass_attribute attr, P p);
197 R visitModulePackages(ModulePackages_attribute attr, P p);
198 R visitModuleResolution(ModuleResolution_attribute attr, P p);
199 R visitModuleTarget(ModuleTarget_attribute attr, P p);
200 R visitNestHost(NestHost_attribute attr, P p);
201 R visitNestMembers(NestMembers_attribute attr, P p);
202 R visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, P p);
203 R visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, P p);
204 R visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, P p);
205 R visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, P p);
206 R visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, P p);
207 R visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, P p);
208 R visitSignature(Signature_attribute attr, P p);
209 R visitSourceDebugExtension(SourceDebugExtension_attribute attr, P p);
210 R visitSourceFile(SourceFile_attribute attr, P p);
211 R visitSourceID(SourceID_attribute attr, P p);
212 R visitStackMap(StackMap_attribute attr, P p);
213 R visitStackMapTable(StackMapTable_attribute attr, P p);
214 R visitSynthetic(Synthetic_attribute attr, P p);
215 }
216 }
|