211 public final Name bootstrap;
212
213 public final Name record;
214 public final Name non;
215
216 // serialization members, used by records too
217 public final Name serialPersistentFields;
218 public final Name writeObject;
219 public final Name writeReplace;
220 public final Name readObjectNoData;
221
222 // sealed types
223 public final Name permits;
224 public final Name sealed;
225
226 // pattern switches
227 public final Name typeSwitch;
228 public final Name enumSwitch;
229 public final Name enumConstant;
230
231 // special annotation names
232 public final Name requiresIdentityInternal;
233
234 public final Name.Table table;
235
236 @SuppressWarnings("this-escape")
237 public Names(Context context) {
238 Options options = Options.instance(context);
239 table = createTable(options);
240
241 // operators and punctuation
242 asterisk = fromString("*");
243 comma = fromString(",");
244 empty = fromString("");
245 hyphen = fromString("-");
246 one = fromString("1");
247 slash = fromString("/");
248
249 // keywords
250 _class = fromString("class");
399
400 bootstrap = fromString("bootstrap");
401 record = fromString("record");
402 non = fromString("non");
403
404 serialPersistentFields = fromString("serialPersistentFields");
405 writeObject = fromString("writeObject");
406 writeReplace = fromString("writeReplace");
407 readObjectNoData = fromString("readObjectNoData");
408
409 // sealed types
410 permits = fromString("permits");
411 sealed = fromString("sealed");
412
413
414 // pattern switches
415 typeSwitch = fromString("typeSwitch");
416 enumSwitch = fromString("enumSwitch");
417 enumConstant = fromString("enumConstant");
418
419 // special annotations:
420 requiresIdentityInternal = fromString("jdk.internal.RequiresIdentity+Annotation");
421 }
422
423 protected Name.Table createTable(Options options) {
424 boolean useUnsharedTable = options.isSet("useUnsharedTable");
425 if (useUnsharedTable)
426 return newUnsharedNameTable();
427 boolean useSharedTable = options.isSet("useSharedTable");
428 if (useSharedTable)
429 return newSharedNameTable();
430 boolean internStringTable = options.isSet("internStringTable");
431 return newStringNameTable(internStringTable);
432 }
433
434 public StringNameTable newStringNameTable(boolean intern) {
435 return StringNameTable.create(this, intern);
436 }
437
438 public SharedNameTable newSharedNameTable() {
|
211 public final Name bootstrap;
212
213 public final Name record;
214 public final Name non;
215
216 // serialization members, used by records too
217 public final Name serialPersistentFields;
218 public final Name writeObject;
219 public final Name writeReplace;
220 public final Name readObjectNoData;
221
222 // sealed types
223 public final Name permits;
224 public final Name sealed;
225
226 // pattern switches
227 public final Name typeSwitch;
228 public final Name enumSwitch;
229 public final Name enumConstant;
230
231 // code reflection
232 public final Name jdk_incubator_code;
233
234 // special annotation names
235 public final Name requiresIdentityInternal;
236
237 public final Name.Table table;
238
239 @SuppressWarnings("this-escape")
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");
402
403 bootstrap = fromString("bootstrap");
404 record = fromString("record");
405 non = fromString("non");
406
407 serialPersistentFields = fromString("serialPersistentFields");
408 writeObject = fromString("writeObject");
409 writeReplace = fromString("writeReplace");
410 readObjectNoData = fromString("readObjectNoData");
411
412 // sealed types
413 permits = fromString("permits");
414 sealed = fromString("sealed");
415
416
417 // pattern switches
418 typeSwitch = fromString("typeSwitch");
419 enumSwitch = fromString("enumSwitch");
420 enumConstant = fromString("enumConstant");
421
422 // code reflection
423 jdk_incubator_code = fromString("jdk.incubator.code");
424
425 // special annotations:
426 requiresIdentityInternal = fromString("jdk.internal.RequiresIdentity+Annotation");
427 }
428
429 protected Name.Table createTable(Options options) {
430 boolean useUnsharedTable = options.isSet("useUnsharedTable");
431 if (useUnsharedTable)
432 return newUnsharedNameTable();
433 boolean useSharedTable = options.isSet("useSharedTable");
434 if (useSharedTable)
435 return newSharedNameTable();
436 boolean internStringTable = options.isSet("internStringTable");
437 return newStringNameTable(internStringTable);
438 }
439
440 public StringNameTable newStringNameTable(boolean intern) {
441 return StringNameTable.create(this, intern);
442 }
443
444 public SharedNameTable newSharedNameTable() {
|