40
41 public static Names instance(Context context) {
42 Names instance = context.get(namesKey);
43 if (instance == null) {
44 instance = new Names(context);
45 context.put(namesKey, instance);
46 }
47 return instance;
48 }
49
50 // operators and punctuation
51 public final Name asterisk;
52 public final Name comma;
53 public final Name empty;
54 public final Name hyphen;
55 public final Name one;
56 public final Name slash;
57
58 // keywords
59 public final Name _class;
60 public final Name _super;
61 public final Name _this;
62 public final Name var;
63 public final Name exports;
64 public final Name opens;
65 public final Name module;
66 public final Name provides;
67 public final Name requires;
68 public final Name to;
69 public final Name transitive;
70 public final Name uses;
71 public final Name open;
72 public final Name when;
73 public final Name with;
74 public final Name yield;
75
76 // field and method names
77 public final Name _name;
78 public final Name addSuppressed;
79 public final Name any;
80 public final Name append;
81 public final Name clinit;
82 public final Name clone;
83 public final Name close;
84 public final Name deserializeLambda;
85 public final Name desiredAssertionStatus;
86 public final Name equals;
87 public final Name error;
88 public final Name finalize;
89 public final Name forRemoval;
90 public final Name reflective;
91 public final Name getClass;
92 public final Name hasNext;
93 public final Name hashCode;
94 public final Name init;
95 public final Name iterator;
96 public final Name length;
97 public final Name next;
98 public final Name ordinal;
99 public final Name provider;
100 public final Name serialVersionUID;
101 public final Name toString;
102 public final Name value;
103 public final Name valueOf;
104 public final Name values;
105 public final Name readResolve;
106 public final Name readObject;
107
108 // class names
109 public final Name java_io_Serializable;
110 public final Name java_lang_Class;
111 public final Name java_lang_Cloneable;
112 public final Name java_lang_Enum;
113 public final Name java_lang_Object;
114
115 // names of builtin classes
116 public final Name Array;
117 public final Name Bound;
118 public final Name Method;
119
120 // package names
121 public final Name java;
122 public final Name java_lang;
123 public final Name jdk_internal_javac;
124
125 // module names
126 public final Name java_base;
127 public final Name jdk_unsupported;
128
129 // attribute names
130 public final Name Annotation;
131 public final Name AnnotationDefault;
132 public final Name BootstrapMethods;
133 public final Name Bridge;
134 public final Name CharacterRangeTable;
135 public final Name Code;
136 public final Name CompilationID;
137 public final Name ConstantValue;
138 public final Name Deprecated;
139 public final Name EnclosingMethod;
140 public final Name Enum;
141 public final Name Exceptions;
142 public final Name InnerClasses;
143 public final Name LineNumberTable;
144 public final Name LocalVariableTable;
145 public final Name LocalVariableTypeTable;
146 public final Name MethodParameters;
147 public final Name Module;
148 public final Name ModuleResolution;
149 public final Name NestHost;
150 public final Name NestMembers;
151 public final Name Record;
152 public final Name RuntimeInvisibleAnnotations;
153 public final Name RuntimeInvisibleParameterAnnotations;
154 public final Name RuntimeInvisibleTypeAnnotations;
155 public final Name RuntimeVisibleAnnotations;
156 public final Name RuntimeVisibleParameterAnnotations;
157 public final Name RuntimeVisibleTypeAnnotations;
158 public final Name Signature;
159 public final Name SourceFile;
160 public final Name SourceID;
161 public final Name StackMap;
162 public final Name StackMapTable;
163 public final Name Synthetic;
164 public final Name Value;
165 public final Name Varargs;
166 public final Name PermittedSubclasses;
167
168 // members of java.lang.annotation.ElementType
169 public final Name ANNOTATION_TYPE;
170 public final Name CONSTRUCTOR;
184 public final Name RUNTIME;
185 public final Name SOURCE;
186
187 // other identifiers
188 public final Name T;
189 public final Name ex;
190 public final Name module_info;
191 public final Name package_info;
192 public final Name requireNonNull;
193
194 // lambda-related
195 public final Name lambda;
196 public final Name metafactory;
197 public final Name altMetafactory;
198 public final Name dollarThis;
199
200 // string concat
201 public final Name makeConcat;
202 public final Name makeConcatWithConstants;
203
204 // record related
205 // members of java.lang.runtime.ObjectMethods
206 public final Name bootstrap;
207
208 public final Name record;
209 public final Name non;
210
211 // serialization members, used by records too
212 public final Name serialPersistentFields;
213 public final Name writeObject;
214 public final Name writeReplace;
215 public final Name readObjectNoData;
216
217 // sealed types
218 public final Name permits;
219 public final Name sealed;
220
221 // pattern switches
222 public final Name typeSwitch;
223 public final Name enumSwitch;
224
225 public final Name.Table table;
226
227 public Names(Context context) {
228 Options options = Options.instance(context);
229 table = createTable(options);
230
231 // operators and punctuation
232 asterisk = fromString("*");
233 comma = fromString(",");
234 empty = fromString("");
235 hyphen = fromString("-");
236 one = fromString("1");
237 slash = fromString("/");
238
239 // keywords
240 _class = fromString("class");
241 _super = fromString("super");
242 _this = fromString("this");
243 var = fromString("var");
244 exports = fromString("exports");
245 opens = fromString("opens");
246 module = fromString("module");
247 provides = fromString("provides");
248 requires = fromString("requires");
249 to = fromString("to");
250 transitive = fromString("transitive");
251 uses = fromString("uses");
252 open = fromString("open");
253 when = fromString("when");
254 with = fromString("with");
255 yield = fromString("yield");
256
257 // field and method names
258 _name = fromString("name");
259 addSuppressed = fromString("addSuppressed");
260 any = fromString("<any>");
261 append = fromString("append");
262 clinit = fromString("<clinit>");
263 clone = fromString("clone");
264 close = fromString("close");
265 deserializeLambda = fromString("$deserializeLambda$");
266 desiredAssertionStatus = fromString("desiredAssertionStatus");
267 equals = fromString("equals");
268 error = fromString("<error>");
269 finalize = fromString("finalize");
270 forRemoval = fromString("forRemoval");
271 reflective = fromString("reflective");
272 getClass = fromString("getClass");
273 hasNext = fromString("hasNext");
274 hashCode = fromString("hashCode");
275 init = fromString("<init>");
276 iterator = fromString("iterator");
277 length = fromString("length");
278 next = fromString("next");
279 ordinal = fromString("ordinal");
280 provider = fromString("provider");
281 serialVersionUID = fromString("serialVersionUID");
282 toString = fromString("toString");
283 value = fromString("value");
284 valueOf = fromString("valueOf");
285 values = fromString("values");
286 readResolve = fromString("readResolve");
287 readObject = fromString("readObject");
288 dollarThis = fromString("$this");
289
290 // class names
291 java_io_Serializable = fromString("java.io.Serializable");
292 java_lang_Class = fromString("java.lang.Class");
293 java_lang_Cloneable = fromString("java.lang.Cloneable");
294 java_lang_Enum = fromString("java.lang.Enum");
295 java_lang_Object = fromString("java.lang.Object");
296
297 // names of builtin classes
298 Array = fromString("Array");
299 Bound = fromString("Bound");
300 Method = fromString("Method");
301
302 // package names
303 java = fromString("java");
304 java_lang = fromString("java.lang");
305 jdk_internal_javac = fromString("jdk.internal.javac");
306
307 // module names
308 java_base = fromString("java.base");
309 jdk_unsupported = fromString("jdk.unsupported");
310
311 // attribute names
312 Annotation = fromString("Annotation");
313 AnnotationDefault = fromString("AnnotationDefault");
314 BootstrapMethods = fromString("BootstrapMethods");
315 Bridge = fromString("Bridge");
316 CharacterRangeTable = fromString("CharacterRangeTable");
317 Code = fromString("Code");
318 CompilationID = fromString("CompilationID");
319 ConstantValue = fromString("ConstantValue");
320 Deprecated = fromString("Deprecated");
321 EnclosingMethod = fromString("EnclosingMethod");
322 Enum = fromString("Enum");
323 Exceptions = fromString("Exceptions");
324 InnerClasses = fromString("InnerClasses");
325 LineNumberTable = fromString("LineNumberTable");
326 LocalVariableTable = fromString("LocalVariableTable");
327 LocalVariableTypeTable = fromString("LocalVariableTypeTable");
328 MethodParameters = fromString("MethodParameters");
329 Module = fromString("Module");
330 ModuleResolution = fromString("ModuleResolution");
331 NestHost = fromString("NestHost");
332 NestMembers = fromString("NestMembers");
333 Record = fromString("Record");
334 RuntimeInvisibleAnnotations = fromString("RuntimeInvisibleAnnotations");
335 RuntimeInvisibleParameterAnnotations = fromString("RuntimeInvisibleParameterAnnotations");
336 RuntimeInvisibleTypeAnnotations = fromString("RuntimeInvisibleTypeAnnotations");
337 RuntimeVisibleAnnotations = fromString("RuntimeVisibleAnnotations");
338 RuntimeVisibleParameterAnnotations = fromString("RuntimeVisibleParameterAnnotations");
339 RuntimeVisibleTypeAnnotations = fromString("RuntimeVisibleTypeAnnotations");
340 Signature = fromString("Signature");
341 SourceFile = fromString("SourceFile");
342 SourceID = fromString("SourceID");
343 StackMap = fromString("StackMap");
344 StackMapTable = fromString("StackMapTable");
345 Synthetic = fromString("Synthetic");
346 Value = fromString("Value");
347 Varargs = fromString("Varargs");
348 PermittedSubclasses = fromString("PermittedSubclasses");
349
350 // members of java.lang.annotation.ElementType
351 ANNOTATION_TYPE = fromString("ANNOTATION_TYPE");
352 CONSTRUCTOR = fromString("CONSTRUCTOR");
365 CLASS = fromString("CLASS");
366 RUNTIME = fromString("RUNTIME");
367 SOURCE = fromString("SOURCE");
368
369 // other identifiers
370 T = fromString("T");
371 ex = fromString("ex");
372 module_info = fromString("module-info");
373 package_info = fromString("package-info");
374 requireNonNull = fromString("requireNonNull");
375
376 //lambda-related
377 lambda = fromString("lambda$");
378 metafactory = fromString("metafactory");
379 altMetafactory = fromString("altMetafactory");
380
381 // string concat
382 makeConcat = fromString("makeConcat");
383 makeConcatWithConstants = fromString("makeConcatWithConstants");
384
385 bootstrap = fromString("bootstrap");
386 record = fromString("record");
387 non = fromString("non");
388
389 serialPersistentFields = fromString("serialPersistentFields");
390 writeObject = fromString("writeObject");
391 writeReplace = fromString("writeReplace");
392 readObjectNoData = fromString("readObjectNoData");
393
394 // sealed types
395 permits = fromString("permits");
396 sealed = fromString("sealed");
397
398 // pattern switches
399 typeSwitch = fromString("typeSwitch");
400 enumSwitch = fromString("enumSwitch");
401 }
402
403 protected Name.Table createTable(Options options) {
404 boolean useUnsharedTable = options.isSet("useUnsharedTable");
405 if (useUnsharedTable)
406 return UnsharedNameTable.create(this);
407 else
408 return SharedNameTable.create(this);
409 }
410
411 public void dispose() {
412 table.dispose();
413 }
414
415 public Name fromChars(char[] cs, int start, int len) {
416 return table.fromChars(cs, start, len);
417 }
418
419 public Name fromString(String s) {
420 return table.fromString(s);
421 }
422
423 public Name fromUtf(byte[] cs) {
424 return table.fromUtf(cs);
425 }
426
427 public Name fromUtf(byte[] cs, int start, int len) {
428 return table.fromUtf(cs, start, len);
429 }
430 }
|
40
41 public static Names instance(Context context) {
42 Names instance = context.get(namesKey);
43 if (instance == null) {
44 instance = new Names(context);
45 context.put(namesKey, instance);
46 }
47 return instance;
48 }
49
50 // operators and punctuation
51 public final Name asterisk;
52 public final Name comma;
53 public final Name empty;
54 public final Name hyphen;
55 public final Name one;
56 public final Name slash;
57
58 // keywords
59 public final Name _class;
60 public final Name _default;
61 public final Name _super;
62 public final Name _this;
63 public final Name var;
64 public final Name exports;
65 public final Name opens;
66 public final Name module;
67 public final Name provides;
68 public final Name requires;
69 public final Name to;
70 public final Name transitive;
71 public final Name uses;
72 public final Name open;
73 public final Name when;
74 public final Name with;
75 public final Name yield;
76
77 // field and method names
78 public final Name _name;
79 public final Name addSuppressed;
80 public final Name any;
81 public final Name append;
82 public final Name clinit;
83 public final Name clone;
84 public final Name close;
85 public final Name deserializeLambda;
86 public final Name desiredAssertionStatus;
87 public final Name equals;
88 public final Name error;
89 public final Name finalize;
90 public final Name forRemoval;
91 public final Name reflective;
92 public final Name getClass;
93 public final Name hasNext;
94 public final Name hashCode;
95 public final Name vnew;
96 public final Name init;
97 public final Name iterator;
98 public final Name length;
99 public final Name next;
100 public final Name ordinal;
101 public final Name provider;
102 public final Name serialVersionUID;
103 public final Name toString;
104 public final Name value;
105 public final Name primitive;
106 public final Name identity;
107 public final Name valueOf;
108 public final Name values;
109 public final Name readResolve;
110 public final Name readObject;
111 public final Name isValueObject;
112
113 // class names
114 public final Name java_io_Serializable;
115 public final Name java_lang_Class;
116 public final Name java_lang_Cloneable;
117 public final Name java_lang_Enum;
118 public final Name java_lang_Object;
119 public final Name java_lang_System;
120
121 // names of builtin classes
122 public final Name Array;
123 public final Name Bound;
124 public final Name Method;
125
126 // package names
127 public final Name java;
128 public final Name java_lang;
129 public final Name jdk_internal_javac;
130
131 // module names
132 public final Name java_base;
133 public final Name jdk_unsupported;
134
135 // attribute names
136 public final Name Annotation;
137 public final Name AnnotationDefault;
138 public final Name BootstrapMethods;
139 public final Name Bridge;
140 public final Name CharacterRangeTable;
141 public final Name Code;
142 public final Name CompilationID;
143 public final Name ConstantValue;
144 public final Name Deprecated;
145 public final Name EnclosingMethod;
146 public final Name Enum;
147 public final Name Exceptions;
148 public final Name InnerClasses;
149 public final Name LineNumberTable;
150 public final Name LocalVariableTable;
151 public final Name LocalVariableTypeTable;
152 public final Name MethodParameters;
153 public final Name Module;
154 public final Name ModuleResolution;
155 public final Name NestHost;
156 public final Name NestMembers;
157 public final Name Preload;
158 public final Name Record;
159 public final Name RuntimeInvisibleAnnotations;
160 public final Name RuntimeInvisibleParameterAnnotations;
161 public final Name RuntimeInvisibleTypeAnnotations;
162 public final Name RuntimeVisibleAnnotations;
163 public final Name RuntimeVisibleParameterAnnotations;
164 public final Name RuntimeVisibleTypeAnnotations;
165 public final Name Signature;
166 public final Name SourceFile;
167 public final Name SourceID;
168 public final Name StackMap;
169 public final Name StackMapTable;
170 public final Name Synthetic;
171 public final Name Value;
172 public final Name Varargs;
173 public final Name PermittedSubclasses;
174
175 // members of java.lang.annotation.ElementType
176 public final Name ANNOTATION_TYPE;
177 public final Name CONSTRUCTOR;
191 public final Name RUNTIME;
192 public final Name SOURCE;
193
194 // other identifiers
195 public final Name T;
196 public final Name ex;
197 public final Name module_info;
198 public final Name package_info;
199 public final Name requireNonNull;
200
201 // lambda-related
202 public final Name lambda;
203 public final Name metafactory;
204 public final Name altMetafactory;
205 public final Name dollarThis;
206
207 // string concat
208 public final Name makeConcat;
209 public final Name makeConcatWithConstants;
210
211 // values
212 public final Name dollarValue;
213 public final Name ref;
214 public final Name val;
215
216
217 // record related
218 // members of java.lang.runtime.ObjectMethods
219 public final Name bootstrap;
220
221 public final Name record;
222 public final Name non;
223
224 // serialization members, used by records too
225 public final Name serialPersistentFields;
226 public final Name writeObject;
227 public final Name writeReplace;
228 public final Name readObjectNoData;
229
230 // sealed types
231 public final Name permits;
232 public final Name sealed;
233
234 // pattern switches
235 public final Name typeSwitch;
236 public final Name enumSwitch;
237
238 public final Name.Table table;
239
240 public Names(Context context) {
241 Options options = Options.instance(context);
242 table = createTable(options);
243
244 // operators and punctuation
245 asterisk = fromString("*");
246 comma = fromString(",");
247 empty = fromString("");
248 hyphen = fromString("-");
249 one = fromString("1");
250 slash = fromString("/");
251
252 // keywords
253 _class = fromString("class");
254 _default = fromString("default");
255 _super = fromString("super");
256 _this = fromString("this");
257 var = fromString("var");
258 exports = fromString("exports");
259 opens = fromString("opens");
260 module = fromString("module");
261 provides = fromString("provides");
262 requires = fromString("requires");
263 to = fromString("to");
264 transitive = fromString("transitive");
265 uses = fromString("uses");
266 open = fromString("open");
267 when = fromString("when");
268 with = fromString("with");
269 yield = fromString("yield");
270
271 // field and method names
272 _name = fromString("name");
273 addSuppressed = fromString("addSuppressed");
274 any = fromString("<any>");
275 append = fromString("append");
276 clinit = fromString("<clinit>");
277 clone = fromString("clone");
278 close = fromString("close");
279 deserializeLambda = fromString("$deserializeLambda$");
280 desiredAssertionStatus = fromString("desiredAssertionStatus");
281 equals = fromString("equals");
282 error = fromString("<error>");
283 finalize = fromString("finalize");
284 forRemoval = fromString("forRemoval");
285 reflective = fromString("reflective");
286 getClass = fromString("getClass");
287 hasNext = fromString("hasNext");
288 hashCode = fromString("hashCode");
289 vnew = fromString("<vnew>");
290 init = fromString("<init>");
291 iterator = fromString("iterator");
292 length = fromString("length");
293 next = fromString("next");
294 ordinal = fromString("ordinal");
295 provider = fromString("provider");
296 serialVersionUID = fromString("serialVersionUID");
297 toString = fromString("toString");
298 value = fromString("value");
299 primitive = fromString("primitive");
300 identity = fromString("identity");
301 valueOf = fromString("valueOf");
302 values = fromString("values");
303 readResolve = fromString("readResolve");
304 readObject = fromString("readObject");
305 isValueObject = fromString("isValueObject");
306 dollarThis = fromString("$this");
307
308 // class names
309 java_io_Serializable = fromString("java.io.Serializable");
310 java_lang_Class = fromString("java.lang.Class");
311 java_lang_Cloneable = fromString("java.lang.Cloneable");
312 java_lang_Enum = fromString("java.lang.Enum");
313 java_lang_Object = fromString("java.lang.Object");
314 java_lang_System = fromString("java.lang.System");
315
316 // names of builtin classes
317 Array = fromString("Array");
318 Bound = fromString("Bound");
319 Method = fromString("Method");
320
321 // package names
322 java = fromString("java");
323 java_lang = fromString("java.lang");
324 jdk_internal_javac = fromString("jdk.internal.javac");
325
326 // module names
327 java_base = fromString("java.base");
328 jdk_unsupported = fromString("jdk.unsupported");
329
330 // attribute names
331 Annotation = fromString("Annotation");
332 AnnotationDefault = fromString("AnnotationDefault");
333 BootstrapMethods = fromString("BootstrapMethods");
334 Bridge = fromString("Bridge");
335 CharacterRangeTable = fromString("CharacterRangeTable");
336 Code = fromString("Code");
337 CompilationID = fromString("CompilationID");
338 ConstantValue = fromString("ConstantValue");
339 Deprecated = fromString("Deprecated");
340 EnclosingMethod = fromString("EnclosingMethod");
341 Enum = fromString("Enum");
342 Exceptions = fromString("Exceptions");
343 InnerClasses = fromString("InnerClasses");
344 LineNumberTable = fromString("LineNumberTable");
345 LocalVariableTable = fromString("LocalVariableTable");
346 LocalVariableTypeTable = fromString("LocalVariableTypeTable");
347 MethodParameters = fromString("MethodParameters");
348 Module = fromString("Module");
349 ModuleResolution = fromString("ModuleResolution");
350 NestHost = fromString("NestHost");
351 NestMembers = fromString("NestMembers");
352 Preload = fromString("Preload");
353 Record = fromString("Record");
354 RuntimeInvisibleAnnotations = fromString("RuntimeInvisibleAnnotations");
355 RuntimeInvisibleParameterAnnotations = fromString("RuntimeInvisibleParameterAnnotations");
356 RuntimeInvisibleTypeAnnotations = fromString("RuntimeInvisibleTypeAnnotations");
357 RuntimeVisibleAnnotations = fromString("RuntimeVisibleAnnotations");
358 RuntimeVisibleParameterAnnotations = fromString("RuntimeVisibleParameterAnnotations");
359 RuntimeVisibleTypeAnnotations = fromString("RuntimeVisibleTypeAnnotations");
360 Signature = fromString("Signature");
361 SourceFile = fromString("SourceFile");
362 SourceID = fromString("SourceID");
363 StackMap = fromString("StackMap");
364 StackMapTable = fromString("StackMapTable");
365 Synthetic = fromString("Synthetic");
366 Value = fromString("Value");
367 Varargs = fromString("Varargs");
368 PermittedSubclasses = fromString("PermittedSubclasses");
369
370 // members of java.lang.annotation.ElementType
371 ANNOTATION_TYPE = fromString("ANNOTATION_TYPE");
372 CONSTRUCTOR = fromString("CONSTRUCTOR");
385 CLASS = fromString("CLASS");
386 RUNTIME = fromString("RUNTIME");
387 SOURCE = fromString("SOURCE");
388
389 // other identifiers
390 T = fromString("T");
391 ex = fromString("ex");
392 module_info = fromString("module-info");
393 package_info = fromString("package-info");
394 requireNonNull = fromString("requireNonNull");
395
396 //lambda-related
397 lambda = fromString("lambda$");
398 metafactory = fromString("metafactory");
399 altMetafactory = fromString("altMetafactory");
400
401 // string concat
402 makeConcat = fromString("makeConcat");
403 makeConcatWithConstants = fromString("makeConcatWithConstants");
404
405 // primitive classes
406 dollarValue = fromString("$value");
407 ref = fromString("ref");
408 val = fromString("val");
409
410 bootstrap = fromString("bootstrap");
411 record = fromString("record");
412 non = fromString("non");
413
414 serialPersistentFields = fromString("serialPersistentFields");
415 writeObject = fromString("writeObject");
416 writeReplace = fromString("writeReplace");
417 readObjectNoData = fromString("readObjectNoData");
418
419 // sealed types
420 permits = fromString("permits");
421 sealed = fromString("sealed");
422
423 // pattern switches
424 typeSwitch = fromString("typeSwitch");
425 enumSwitch = fromString("enumSwitch");
426 }
427
428 protected Name.Table createTable(Options options) {
429 boolean useUnsharedTable = options.isSet("useUnsharedTable");
430 if (useUnsharedTable)
431 return UnsharedNameTable.create(this);
432 else
433 return SharedNameTable.create(this);
434 }
435
436 public boolean isInitOrVNew(Name name) {
437 return name == init || name == vnew;
438 }
439
440 public void dispose() {
441 table.dispose();
442 }
443
444 public Name fromChars(char[] cs, int start, int len) {
445 return table.fromChars(cs, start, len);
446 }
447
448 public Name fromString(String s) {
449 return table.fromString(s);
450 }
451
452 public Name fromUtf(byte[] cs) {
453 return table.fromUtf(cs);
454 }
455
456 public Name fromUtf(byte[] cs, int start, int len) {
457 return table.fromUtf(cs, start, len);
458 }
459 }
|