57 public static EnumSet<Flag> asFlagSet(long mask) {
58 EnumSet<Flag> flags = EnumSet.noneOf(Flag.class);
59 if ((mask&PUBLIC) != 0) flags.add(Flag.PUBLIC);
60 if ((mask&PRIVATE) != 0) flags.add(Flag.PRIVATE);
61 if ((mask&PROTECTED) != 0) flags.add(Flag.PROTECTED);
62 if ((mask&STATIC) != 0) flags.add(Flag.STATIC);
63 if ((mask&FINAL) != 0) flags.add(Flag.FINAL);
64 if ((mask&SYNCHRONIZED) != 0) flags.add(Flag.SYNCHRONIZED);
65 if ((mask&VOLATILE) != 0) flags.add(Flag.VOLATILE);
66 if ((mask&TRANSIENT) != 0) flags.add(Flag.TRANSIENT);
67 if ((mask&NATIVE) != 0) flags.add(Flag.NATIVE);
68 if ((mask&INTERFACE) != 0) flags.add(Flag.INTERFACE);
69 if ((mask&ABSTRACT) != 0) flags.add(Flag.ABSTRACT);
70 if ((mask&DEFAULT) != 0) flags.add(Flag.DEFAULT);
71 if ((mask&STRICTFP) != 0) flags.add(Flag.STRICTFP);
72 if ((mask&BRIDGE) != 0) flags.add(Flag.BRIDGE);
73 if ((mask&SYNTHETIC) != 0) flags.add(Flag.SYNTHETIC);
74 if ((mask&DEPRECATED) != 0) flags.add(Flag.DEPRECATED);
75 if ((mask&HASINIT) != 0) flags.add(Flag.HASINIT);
76 if ((mask&ENUM) != 0) flags.add(Flag.ENUM);
77 if ((mask&IPROXY) != 0) flags.add(Flag.IPROXY);
78 if ((mask&NOOUTERTHIS) != 0) flags.add(Flag.NOOUTERTHIS);
79 if ((mask&EXISTS) != 0) flags.add(Flag.EXISTS);
80 if ((mask&COMPOUND) != 0) flags.add(Flag.COMPOUND);
81 if ((mask&CLASS_SEEN) != 0) flags.add(Flag.CLASS_SEEN);
82 if ((mask&SOURCE_SEEN) != 0) flags.add(Flag.SOURCE_SEEN);
83 if ((mask&LOCKED) != 0) flags.add(Flag.LOCKED);
84 if ((mask&UNATTRIBUTED) != 0) flags.add(Flag.UNATTRIBUTED);
85 if ((mask&ANONCONSTR) != 0) flags.add(Flag.ANONCONSTR);
86 if ((mask&ACYCLIC) != 0) flags.add(Flag.ACYCLIC);
87 if ((mask&PARAMETER) != 0) flags.add(Flag.PARAMETER);
88 if ((mask&VARARGS) != 0) flags.add(Flag.VARARGS);
89 return flags;
90 }
91
92 /* Standard Java flags.
93 */
94 public static final int PUBLIC = 1<<0;
95 public static final int PRIVATE = 1<<1;
96 public static final int PROTECTED = 1<<2;
97 public static final int STATIC = 1<<3;
98 public static final int FINAL = 1<<4;
99 public static final int SYNCHRONIZED = 1<<5;
100 public static final int VOLATILE = 1<<6;
101 public static final int TRANSIENT = 1<<7;
102 public static final int NATIVE = 1<<8;
103 public static final int INTERFACE = 1<<9;
104 public static final int ABSTRACT = 1<<10;
105 public static final int STRICTFP = 1<<11;
106
107 /* Flag that marks a symbol synthetic, added in classfile v49.0. */
108 public static final int SYNTHETIC = 1<<12;
109
110 /** Flag that marks attribute interfaces, added in classfile v49.0. */
111 public static final int ANNOTATION = 1<<13;
112
113 /** An enumeration type or an enumeration constant, added in
114 * classfile v49.0. */
115 public static final int ENUM = 1<<14;
116
117 public static final int StandardFlags = 0x0fff;
118 public static final int ModifierFlags = StandardFlags & ~INTERFACE;
119
120 // Because the following access flags are overloaded with other
121 // bit positions, we translate them when reading and writing class
122 // files into unique bits positions: ACC_SYNTHETIC <-> SYNTHETIC,
123 // for example.
124 public static final int ACC_SUPER = 0x0020;
125 public static final int ACC_BRIDGE = 0x0040;
126 public static final int ACC_VARARGS = 0x0080;
127
128 /*****************************************
129 * Internal compiler flags (no bits in the lower 16).
130 *****************************************/
131
132 /** Flag is set if symbol is deprecated.
133 */
134 public static final int DEPRECATED = 1<<17;
135
136 /** Flag is set for a variable symbol if the variable's definition
325 public enum Flag {
326
327 PUBLIC("public"),
328 PRIVATE("private"),
329 PROTECTED("protected"),
330 STATIC("static"),
331 FINAL("final"),
332 SYNCHRONIZED("synchronized"),
333 VOLATILE("volatile"),
334 TRANSIENT("transient"),
335 NATIVE("native"),
336 INTERFACE("interface"),
337 ABSTRACT("abstract"),
338 DEFAULT("default"),
339 STRICTFP("strictfp"),
340 BRIDGE("bridge"),
341 SYNTHETIC("synthetic"),
342 DEPRECATED("deprecated"),
343 HASINIT("hasinit"),
344 ENUM("enum"),
345 IPROXY("iproxy"),
346 NOOUTERTHIS("noouterthis"),
347 EXISTS("exists"),
348 COMPOUND("compound"),
349 CLASS_SEEN("class_seen"),
350 SOURCE_SEEN("source_seen"),
351 LOCKED("locked"),
352 UNATTRIBUTED("unattributed"),
353 ANONCONSTR("anonconstr"),
354 ACYCLIC("acyclic"),
355 PARAMETER("parameter"),
356 VARARGS("varargs"),
357 PACKAGE("package");
358
359 private final String name;
360
361 Flag(String name) {
362 this.name = name;
363 }
364
|
57 public static EnumSet<Flag> asFlagSet(long mask) {
58 EnumSet<Flag> flags = EnumSet.noneOf(Flag.class);
59 if ((mask&PUBLIC) != 0) flags.add(Flag.PUBLIC);
60 if ((mask&PRIVATE) != 0) flags.add(Flag.PRIVATE);
61 if ((mask&PROTECTED) != 0) flags.add(Flag.PROTECTED);
62 if ((mask&STATIC) != 0) flags.add(Flag.STATIC);
63 if ((mask&FINAL) != 0) flags.add(Flag.FINAL);
64 if ((mask&SYNCHRONIZED) != 0) flags.add(Flag.SYNCHRONIZED);
65 if ((mask&VOLATILE) != 0) flags.add(Flag.VOLATILE);
66 if ((mask&TRANSIENT) != 0) flags.add(Flag.TRANSIENT);
67 if ((mask&NATIVE) != 0) flags.add(Flag.NATIVE);
68 if ((mask&INTERFACE) != 0) flags.add(Flag.INTERFACE);
69 if ((mask&ABSTRACT) != 0) flags.add(Flag.ABSTRACT);
70 if ((mask&DEFAULT) != 0) flags.add(Flag.DEFAULT);
71 if ((mask&STRICTFP) != 0) flags.add(Flag.STRICTFP);
72 if ((mask&BRIDGE) != 0) flags.add(Flag.BRIDGE);
73 if ((mask&SYNTHETIC) != 0) flags.add(Flag.SYNTHETIC);
74 if ((mask&DEPRECATED) != 0) flags.add(Flag.DEPRECATED);
75 if ((mask&HASINIT) != 0) flags.add(Flag.HASINIT);
76 if ((mask&ENUM) != 0) flags.add(Flag.ENUM);
77 if ((mask&MANDATED) != 0) flags.add(Flag.MANDATED);
78 if ((mask&IPROXY) != 0) flags.add(Flag.IPROXY);
79 if ((mask&NOOUTERTHIS) != 0) flags.add(Flag.NOOUTERTHIS);
80 if ((mask&EXISTS) != 0) flags.add(Flag.EXISTS);
81 if ((mask&COMPOUND) != 0) flags.add(Flag.COMPOUND);
82 if ((mask&CLASS_SEEN) != 0) flags.add(Flag.CLASS_SEEN);
83 if ((mask&SOURCE_SEEN) != 0) flags.add(Flag.SOURCE_SEEN);
84 if ((mask&LOCKED) != 0) flags.add(Flag.LOCKED);
85 if ((mask&UNATTRIBUTED) != 0) flags.add(Flag.UNATTRIBUTED);
86 if ((mask&ANONCONSTR) != 0) flags.add(Flag.ANONCONSTR);
87 if ((mask&ACYCLIC) != 0) flags.add(Flag.ACYCLIC);
88 if ((mask&PARAMETER) != 0) flags.add(Flag.PARAMETER);
89 if ((mask&VARARGS) != 0) flags.add(Flag.VARARGS);
90 return flags;
91 }
92
93 /* Standard Java flags.
94 */
95 public static final int PUBLIC = 1<<0;
96 public static final int PRIVATE = 1<<1;
97 public static final int PROTECTED = 1<<2;
98 public static final int STATIC = 1<<3;
99 public static final int FINAL = 1<<4;
100 public static final int SYNCHRONIZED = 1<<5;
101 public static final int VOLATILE = 1<<6;
102 public static final int TRANSIENT = 1<<7;
103 public static final int NATIVE = 1<<8;
104 public static final int INTERFACE = 1<<9;
105 public static final int ABSTRACT = 1<<10;
106 public static final int STRICTFP = 1<<11;
107
108 /* Flag that marks a symbol synthetic, added in classfile v49.0. */
109 public static final int SYNTHETIC = 1<<12;
110
111 /** Flag that marks attribute interfaces, added in classfile v49.0. */
112 public static final int ANNOTATION = 1<<13;
113
114 /** An enumeration type or an enumeration constant, added in
115 * classfile v49.0. */
116 public static final int ENUM = 1<<14;
117
118 /** Added in SE8, represents constructs implicitly declared in source. */
119 public static final int MANDATED = 1<<15;
120
121 public static final int StandardFlags = 0x0fff;
122 public static final int ModifierFlags = StandardFlags & ~INTERFACE;
123
124 // Because the following access flags are overloaded with other
125 // bit positions, we translate them when reading and writing class
126 // files into unique bits positions: ACC_SYNTHETIC <-> SYNTHETIC,
127 // for example.
128 public static final int ACC_SUPER = 0x0020;
129 public static final int ACC_BRIDGE = 0x0040;
130 public static final int ACC_VARARGS = 0x0080;
131
132 /*****************************************
133 * Internal compiler flags (no bits in the lower 16).
134 *****************************************/
135
136 /** Flag is set if symbol is deprecated.
137 */
138 public static final int DEPRECATED = 1<<17;
139
140 /** Flag is set for a variable symbol if the variable's definition
329 public enum Flag {
330
331 PUBLIC("public"),
332 PRIVATE("private"),
333 PROTECTED("protected"),
334 STATIC("static"),
335 FINAL("final"),
336 SYNCHRONIZED("synchronized"),
337 VOLATILE("volatile"),
338 TRANSIENT("transient"),
339 NATIVE("native"),
340 INTERFACE("interface"),
341 ABSTRACT("abstract"),
342 DEFAULT("default"),
343 STRICTFP("strictfp"),
344 BRIDGE("bridge"),
345 SYNTHETIC("synthetic"),
346 DEPRECATED("deprecated"),
347 HASINIT("hasinit"),
348 ENUM("enum"),
349 MANDATED("mandated"),
350 IPROXY("iproxy"),
351 NOOUTERTHIS("noouterthis"),
352 EXISTS("exists"),
353 COMPOUND("compound"),
354 CLASS_SEEN("class_seen"),
355 SOURCE_SEEN("source_seen"),
356 LOCKED("locked"),
357 UNATTRIBUTED("unattributed"),
358 ANONCONSTR("anonconstr"),
359 ACYCLIC("acyclic"),
360 PARAMETER("parameter"),
361 VARARGS("varargs"),
362 PACKAGE("package");
363
364 private final String name;
365
366 Flag(String name) {
367 this.name = name;
368 }
369
|