352 MethodFlags = AccessFlags | ABSTRACT | STATIC | NATIVE |
353 SYNCHRONIZED | FINAL | STRICTFP;
354 public static final long
355 ExtendedStandardFlags = (long)StandardFlags | DEFAULT,
356 ModifierFlags = ((long)StandardFlags & ~INTERFACE) | DEFAULT,
357 InterfaceMethodMask = ABSTRACT | PRIVATE | STATIC | PUBLIC | STRICTFP | DEFAULT,
358 AnnotationTypeElementMask = ABSTRACT | PUBLIC,
359 LocalVarFlags = FINAL | PARAMETER,
360 ReceiverParamFlags = PARAMETER;
361
362
363 public static Set<Modifier> asModifierSet(long flags) {
364 Set<Modifier> modifiers = modifierSets.get(flags);
365 if (modifiers == null) {
366 modifiers = java.util.EnumSet.noneOf(Modifier.class);
367 if (0 != (flags & PUBLIC)) modifiers.add(Modifier.PUBLIC);
368 if (0 != (flags & PROTECTED)) modifiers.add(Modifier.PROTECTED);
369 if (0 != (flags & PRIVATE)) modifiers.add(Modifier.PRIVATE);
370 if (0 != (flags & ABSTRACT)) modifiers.add(Modifier.ABSTRACT);
371 if (0 != (flags & STATIC)) modifiers.add(Modifier.STATIC);
372 if (0 != (flags & FINAL)) modifiers.add(Modifier.FINAL);
373 if (0 != (flags & TRANSIENT)) modifiers.add(Modifier.TRANSIENT);
374 if (0 != (flags & VOLATILE)) modifiers.add(Modifier.VOLATILE);
375 if (0 != (flags & SYNCHRONIZED))
376 modifiers.add(Modifier.SYNCHRONIZED);
377 if (0 != (flags & NATIVE)) modifiers.add(Modifier.NATIVE);
378 if (0 != (flags & STRICTFP)) modifiers.add(Modifier.STRICTFP);
379 if (0 != (flags & DEFAULT)) modifiers.add(Modifier.DEFAULT);
380 modifiers = Collections.unmodifiableSet(modifiers);
381 modifierSets.put(flags, modifiers);
382 }
383 return modifiers;
384 }
385
386 // Cache of modifier sets.
387 private static final Map<Long, Set<Modifier>> modifierSets = new ConcurrentHashMap<>(64);
388
389 public static boolean isStatic(Symbol symbol) {
390 return (symbol.flags() & STATIC) != 0;
391 }
|
352 MethodFlags = AccessFlags | ABSTRACT | STATIC | NATIVE |
353 SYNCHRONIZED | FINAL | STRICTFP;
354 public static final long
355 ExtendedStandardFlags = (long)StandardFlags | DEFAULT,
356 ModifierFlags = ((long)StandardFlags & ~INTERFACE) | DEFAULT,
357 InterfaceMethodMask = ABSTRACT | PRIVATE | STATIC | PUBLIC | STRICTFP | DEFAULT,
358 AnnotationTypeElementMask = ABSTRACT | PUBLIC,
359 LocalVarFlags = FINAL | PARAMETER,
360 ReceiverParamFlags = PARAMETER;
361
362
363 public static Set<Modifier> asModifierSet(long flags) {
364 Set<Modifier> modifiers = modifierSets.get(flags);
365 if (modifiers == null) {
366 modifiers = java.util.EnumSet.noneOf(Modifier.class);
367 if (0 != (flags & PUBLIC)) modifiers.add(Modifier.PUBLIC);
368 if (0 != (flags & PROTECTED)) modifiers.add(Modifier.PROTECTED);
369 if (0 != (flags & PRIVATE)) modifiers.add(Modifier.PRIVATE);
370 if (0 != (flags & ABSTRACT)) modifiers.add(Modifier.ABSTRACT);
371 if (0 != (flags & STATIC)) modifiers.add(Modifier.STATIC);
372 if (0 != (flags & SEALED)) modifiers.add(Modifier.SEALED);
373 if (0 != (flags & FINAL)) modifiers.add(Modifier.FINAL);
374 if (0 != (flags & TRANSIENT)) modifiers.add(Modifier.TRANSIENT);
375 if (0 != (flags & VOLATILE)) modifiers.add(Modifier.VOLATILE);
376 if (0 != (flags & SYNCHRONIZED))
377 modifiers.add(Modifier.SYNCHRONIZED);
378 if (0 != (flags & NATIVE)) modifiers.add(Modifier.NATIVE);
379 if (0 != (flags & STRICTFP)) modifiers.add(Modifier.STRICTFP);
380 if (0 != (flags & DEFAULT)) modifiers.add(Modifier.DEFAULT);
381 modifiers = Collections.unmodifiableSet(modifiers);
382 modifierSets.put(flags, modifiers);
383 }
384 return modifiers;
385 }
386
387 // Cache of modifier sets.
388 private static final Map<Long, Set<Modifier>> modifierSets = new ConcurrentHashMap<>(64);
389
390 public static boolean isStatic(Symbol symbol) {
391 return (symbol.flags() & STATIC) != 0;
392 }
|