25 import static java.lang.reflect.Modifier.ABSTRACT; 26 import static java.lang.reflect.Modifier.FINAL; 27 import static java.lang.reflect.Modifier.INTERFACE; 28 import static java.lang.reflect.Modifier.NATIVE; 29 import static java.lang.reflect.Modifier.PRIVATE; 30 import static java.lang.reflect.Modifier.PROTECTED; 31 import static java.lang.reflect.Modifier.PUBLIC; 32 import static java.lang.reflect.Modifier.STATIC; 33 import static java.lang.reflect.Modifier.STRICT; 34 import static java.lang.reflect.Modifier.SYNCHRONIZED; 35 import static java.lang.reflect.Modifier.TRANSIENT; 36 import static java.lang.reflect.Modifier.VOLATILE; 37 38 import java.lang.reflect.Modifier; 39 40 /** 41 * A Java element (i.e., a class, interface, field or method) that is described by a set of Java 42 * language {@linkplain #getModifiers() modifiers}. 43 */ 44 public interface ModifiersProvider { 45 int BRIDGE = MetaUtil.getNonPublicModifierStaticField("BRIDGE"); 46 int VARARGS = MetaUtil.getNonPublicModifierStaticField("VARARGS"); 47 int SYNTHETIC = MetaUtil.getNonPublicModifierStaticField("SYNTHETIC"); 48 int ANNOTATION = MetaUtil.getNonPublicModifierStaticField("ANNOTATION"); 49 int ENUM = MetaUtil.getNonPublicModifierStaticField("ENUM"); 50 int MANDATED = MetaUtil.getNonPublicModifierStaticField("MANDATED"); 51 52 /** 53 * Returns the Java Virtual Machine modifiers for this element. Note that this can differ from 54 * standard Java Reflection modifiers. For example at the JVM level, classes ( 55 * {@link ResolvedJavaType}) can not be private or protected. 56 */ 57 int getModifiers(); 58 59 /** 60 * @see Modifier#isInterface(int) 61 */ 62 default boolean isInterface() { 63 return Modifier.isInterface(getModifiers()); 64 } 65 66 /** 67 * @see Modifier#isSynchronized(int) 68 */ 69 default boolean isSynchronized() { 70 return Modifier.isSynchronized(getModifiers()); | 25 import static java.lang.reflect.Modifier.ABSTRACT; 26 import static java.lang.reflect.Modifier.FINAL; 27 import static java.lang.reflect.Modifier.INTERFACE; 28 import static java.lang.reflect.Modifier.NATIVE; 29 import static java.lang.reflect.Modifier.PRIVATE; 30 import static java.lang.reflect.Modifier.PROTECTED; 31 import static java.lang.reflect.Modifier.PUBLIC; 32 import static java.lang.reflect.Modifier.STATIC; 33 import static java.lang.reflect.Modifier.STRICT; 34 import static java.lang.reflect.Modifier.SYNCHRONIZED; 35 import static java.lang.reflect.Modifier.TRANSIENT; 36 import static java.lang.reflect.Modifier.VOLATILE; 37 38 import java.lang.reflect.Modifier; 39 40 /** 41 * A Java element (i.e., a class, interface, field or method) that is described by a set of Java 42 * language {@linkplain #getModifiers() modifiers}. 43 */ 44 public interface ModifiersProvider { 45 int BRIDGE = 0x0040; 46 int VARARGS = 0x0080; 47 int SYNTHETIC = 0x1000; 48 int ANNOTATION = 0x2000; 49 int ENUM = 0x4000; 50 51 /** 52 * Returns the Java Virtual Machine modifiers for this element. Note that this can differ from 53 * standard Java Reflection modifiers. For example at the JVM level, classes ( 54 * {@link ResolvedJavaType}) can not be private or protected. 55 */ 56 int getModifiers(); 57 58 /** 59 * @see Modifier#isInterface(int) 60 */ 61 default boolean isInterface() { 62 return Modifier.isInterface(getModifiers()); 63 } 64 65 /** 66 * @see Modifier#isSynchronized(int) 67 */ 68 default boolean isSynchronized() { 69 return Modifier.isSynchronized(getModifiers()); |