41 |
42 |
42 private Flags() {} // uninstantiable |
43 private Flags() {} // uninstantiable |
43 |
44 |
44 public static String toString(long flags) { |
45 public static String toString(long flags) { |
45 StringBuffer buf = new StringBuffer(); |
46 StringBuffer buf = new StringBuffer(); |
46 if ((flags&PUBLIC) != 0) buf.append("public "); |
47 String sep = ""; |
47 if ((flags&PRIVATE) != 0) buf.append("private "); |
48 for (Flag s : asFlagSet(flags)) { |
48 if ((flags&PROTECTED) != 0) buf.append("protected "); |
49 buf.append(sep); |
49 if ((flags&STATIC) != 0) buf.append("static "); |
50 buf.append(s); |
50 if ((flags&FINAL) != 0) buf.append("final "); |
51 sep = " "; |
51 if ((flags&SYNCHRONIZED) != 0) buf.append("synchronized "); |
52 } |
52 if ((flags&VOLATILE) != 0) buf.append("volatile "); |
|
53 if ((flags&TRANSIENT) != 0) buf.append("transient "); |
|
54 if ((flags&NATIVE) != 0) buf.append("native "); |
|
55 if ((flags&INTERFACE) != 0) buf.append("interface "); |
|
56 if ((flags&ABSTRACT) != 0) buf.append("abstract "); |
|
57 if ((flags&STRICTFP) != 0) buf.append("strictfp "); |
|
58 if ((flags&BRIDGE) != 0) buf.append("bridge "); |
|
59 if ((flags&SYNTHETIC) != 0) buf.append("synthetic "); |
|
60 if ((flags&DEPRECATED) != 0) buf.append("deprecated "); |
|
61 if ((flags&HASINIT) != 0) buf.append("hasinit "); |
|
62 if ((flags&ENUM) != 0) buf.append("enum "); |
|
63 if ((flags&IPROXY) != 0) buf.append("iproxy "); |
|
64 if ((flags&NOOUTERTHIS) != 0) buf.append("noouterthis "); |
|
65 if ((flags&EXISTS) != 0) buf.append("exists "); |
|
66 if ((flags&COMPOUND) != 0) buf.append("compound "); |
|
67 if ((flags&CLASS_SEEN) != 0) buf.append("class_seen "); |
|
68 if ((flags&SOURCE_SEEN) != 0) buf.append("source_seen "); |
|
69 if ((flags&LOCKED) != 0) buf.append("locked "); |
|
70 if ((flags&UNATTRIBUTED) != 0) buf.append("unattributed "); |
|
71 if ((flags&ANONCONSTR) != 0) buf.append("anonconstr "); |
|
72 if ((flags&ACYCLIC) != 0) buf.append("acyclic "); |
|
73 if ((flags&PARAMETER) != 0) buf.append("parameter "); |
|
74 if ((flags&VARARGS) != 0) buf.append("varargs "); |
|
75 return buf.toString(); |
53 return buf.toString(); |
|
54 } |
|
55 |
|
56 public static EnumSet<Flag> asFlagSet(long mask) { |
|
57 EnumSet<Flag> flags = EnumSet.noneOf(Flag.class); |
|
58 if ((mask&PUBLIC) != 0) flags.add(Flag.PUBLIC); |
|
59 if ((mask&PRIVATE) != 0) flags.add(Flag.PRIVATE); |
|
60 if ((mask&PROTECTED) != 0) flags.add(Flag.PROTECTED); |
|
61 if ((mask&STATIC) != 0) flags.add(Flag.STATIC); |
|
62 if ((mask&FINAL) != 0) flags.add(Flag.FINAL); |
|
63 if ((mask&SYNCHRONIZED) != 0) flags.add(Flag.SYNCHRONIZED); |
|
64 if ((mask&VOLATILE) != 0) flags.add(Flag.VOLATILE); |
|
65 if ((mask&TRANSIENT) != 0) flags.add(Flag.TRANSIENT); |
|
66 if ((mask&NATIVE) != 0) flags.add(Flag.NATIVE); |
|
67 if ((mask&INTERFACE) != 0) flags.add(Flag.INTERFACE); |
|
68 if ((mask&ABSTRACT) != 0) flags.add(Flag.ABSTRACT); |
|
69 if ((mask&STRICTFP) != 0) flags.add(Flag.STRICTFP); |
|
70 if ((mask&BRIDGE) != 0) flags.add(Flag.BRIDGE); |
|
71 if ((mask&SYNTHETIC) != 0) flags.add(Flag.SYNTHETIC); |
|
72 if ((mask&DEPRECATED) != 0) flags.add(Flag.DEPRECATED); |
|
73 if ((mask&HASINIT) != 0) flags.add(Flag.HASINIT); |
|
74 if ((mask&ENUM) != 0) flags.add(Flag.ENUM); |
|
75 if ((mask&IPROXY) != 0) flags.add(Flag.IPROXY); |
|
76 if ((mask&NOOUTERTHIS) != 0) flags.add(Flag.NOOUTERTHIS); |
|
77 if ((mask&EXISTS) != 0) flags.add(Flag.EXISTS); |
|
78 if ((mask&COMPOUND) != 0) flags.add(Flag.COMPOUND); |
|
79 if ((mask&CLASS_SEEN) != 0) flags.add(Flag.CLASS_SEEN); |
|
80 if ((mask&SOURCE_SEEN) != 0) flags.add(Flag.SOURCE_SEEN); |
|
81 if ((mask&LOCKED) != 0) flags.add(Flag.LOCKED); |
|
82 if ((mask&UNATTRIBUTED) != 0) flags.add(Flag.UNATTRIBUTED); |
|
83 if ((mask&ANONCONSTR) != 0) flags.add(Flag.ANONCONSTR); |
|
84 if ((mask&ACYCLIC) != 0) flags.add(Flag.ACYCLIC); |
|
85 if ((mask&PARAMETER) != 0) flags.add(Flag.PARAMETER); |
|
86 if ((mask&VARARGS) != 0) flags.add(Flag.VARARGS); |
|
87 return flags; |
76 } |
88 } |
77 |
89 |
78 /* Standard Java flags. |
90 /* Standard Java flags. |
79 */ |
91 */ |
80 public static final int PUBLIC = 1<<0; |
92 public static final int PUBLIC = 1<<0; |
269 } |
281 } |
270 |
282 |
271 public static boolean isConstant(Symbol.VarSymbol symbol) { |
283 public static boolean isConstant(Symbol.VarSymbol symbol) { |
272 return symbol.getConstValue() != null; |
284 return symbol.getConstValue() != null; |
273 } |
285 } |
|
286 |
|
287 public enum Flag { |
|
288 |
|
289 PUBLIC("public"), |
|
290 PRIVATE("private"), |
|
291 PROTECTED("protected"), |
|
292 STATIC("static"), |
|
293 FINAL("final"), |
|
294 SYNCHRONIZED("synchronized"), |
|
295 VOLATILE("volatile"), |
|
296 TRANSIENT("transient"), |
|
297 NATIVE("native"), |
|
298 INTERFACE("interface"), |
|
299 ABSTRACT("abstract"), |
|
300 STRICTFP("strictfp"), |
|
301 BRIDGE("bridge"), |
|
302 SYNTHETIC("synthetic"), |
|
303 DEPRECATED("deprecated"), |
|
304 HASINIT("hasinit"), |
|
305 ENUM("enum"), |
|
306 IPROXY("iproxy"), |
|
307 NOOUTERTHIS("noouterthis"), |
|
308 EXISTS("exists"), |
|
309 COMPOUND("compound"), |
|
310 CLASS_SEEN("class_seen"), |
|
311 SOURCE_SEEN("source_seen"), |
|
312 LOCKED("locked"), |
|
313 UNATTRIBUTED("unattributed"), |
|
314 ANONCONSTR("anonconstr"), |
|
315 ACYCLIC("acyclic"), |
|
316 PARAMETER("parameter"), |
|
317 VARARGS("varargs"), |
|
318 PACKAGE("package"); |
|
319 |
|
320 String name; |
|
321 |
|
322 Flag(String name) { |
|
323 this.name = name; |
|
324 } |
|
325 |
|
326 public String toString() { |
|
327 return name; |
|
328 } |
|
329 } |
274 } |
330 } |