Package com.strobel.reflection
Class Flags
java.lang.Object
com.strobel.reflection.Flags
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
static final int
static final int
static final int
static final int
static final int
Modifier masks.static final int
Flag for class symbols to indicate it has been checked and found acyclic.static final long
Flag for annotation type symbols to indicate it has been checked and found acyclic.static final int
Flag that marks attribute interfaces, added in classfile v49.0.static final int
Flag for synthesized default constructors of anonymous classes.static final int
Flag is set for compiler-generated anonymous method symbols that `own' an initializer block.static final long
Flag that marks bridge methods.static final long
Flag that marks non-override equivalent methods with the same signaturestatic final int
Flag is set for class symbols if a class file was found for this class.static final int
Modifier masks.static final int
Flag is set for compiler-generated compound classes representing multiple variable boundsstatic final int
Modifier masks.static final long
Flag that marks either a default method or an interface containing default methods.static final int
Flag is set if symbol is deprecated.static final long
Flag that marks an 'effectively final' local variablestatic final int
An enumeration type or an enumeration constant, added in classfile v49.0.static final int
Flag is set for package symbols if a package has a member or directory and therefore exists.static final int
static final long
Flag that marks a generated default constructor.static final int
Flag is set for a variable symbol if the variable's definition has an initializer part.static final long
Flag that marks a hypothetical method that need not really be generated in the binary, but is present in the symbol table to simplify checking for erasure clashes - also used for 292 poly sig methods.static final int
static final int
Modifier masks.static final int
Modifier masks.static final int
Flag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).static final int
Modifier masks.static final long
static final int
Flag for class symbols is set and later re-set as a lock in Enter to detect cycles in the superclass/superinterface relations.static final int
Modifier masks.static final int
Modifier masks.static final int
static final int
static final int
Flag is set for nested classes that do not access instance members or `this' of an outer class and therefore don't need to be passed a this$n reference.static final long
Flag that marks a special kind of bridge methods (the ones that come from restricted supertype bounds)static final long
Flag that marks formal parameters.static final int
static final long
Flag that marks an internal proprietary class.static final int
static final int
static final int
Flag is set for class symbols if a source file was found for this class.static final int
static final int
static final int
static final int
static final int
static final int
static final int
Flag for class symbols is set and later re-set to indicate that a class has been entered but has not yet been attributed.static final long
Flag that marks a a multi-catch parameterstatic final long
Flag that marks varargs methods.static final int
Modifier masks.static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic EnumSet
<Flags.Flag> asFlagSet
(long mask) asModifierSet
(long flags) asModifierSet
(MemberType memberType, long flags) static boolean
isEnum
(MemberInfo symbol) static boolean
testAll
(int value, int flags) static boolean
testAll
(long value, long flags) static boolean
testAny
(int value, int flags) static boolean
testAny
(long value, long flags) static String
toString
(long flags)
-
Field Details
-
PUBLIC
public static final int PUBLIC- See Also:
-
PRIVATE
public static final int PRIVATE- See Also:
-
PROTECTED
public static final int PROTECTED- See Also:
-
STATIC
public static final int STATIC- See Also:
-
FINAL
public static final int FINAL- See Also:
-
SYNCHRONIZED
public static final int SYNCHRONIZED- See Also:
-
VOLATILE
public static final int VOLATILE- See Also:
-
TRANSIENT
public static final int TRANSIENT- See Also:
-
NATIVE
public static final int NATIVE- See Also:
-
INTERFACE
public static final int INTERFACE- See Also:
-
ABSTRACT
public static final int ABSTRACT- See Also:
-
STRICTFP
public static final int STRICTFP- See Also:
-
SYNTHETIC
public static final int SYNTHETIC- See Also:
-
ANNOTATION
public static final int ANNOTATIONFlag that marks attribute interfaces, added in classfile v49.0.- See Also:
-
ENUM
public static final int ENUMAn enumeration type or an enumeration constant, added in classfile v49.0.- See Also:
-
StandardFlags
public static final int StandardFlags- See Also:
-
ModifierFlags
public static final int ModifierFlags- See Also:
-
ACC_SUPER
public static final int ACC_SUPER- See Also:
-
ACC_BRIDGE
public static final int ACC_BRIDGE- See Also:
-
ACC_VARARGS
public static final int ACC_VARARGS- See Also:
-
ACC_SYNTHETIC
public static final int ACC_SYNTHETIC- See Also:
-
DEPRECATED
public static final int DEPRECATEDFlag is set if symbol is deprecated.- See Also:
-
HASINIT
public static final int HASINITFlag is set for a variable symbol if the variable's definition has an initializer part.- See Also:
-
BLOCK
public static final int BLOCKFlag is set for compiler-generated anonymous method symbols that `own' an initializer block.- See Also:
-
IPROXY
public static final int IPROXYFlag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).- See Also:
-
NOOUTERTHIS
public static final int NOOUTERTHISFlag is set for nested classes that do not access instance members or `this' of an outer class and therefore don't need to be passed a this$n reference. This flag is currently set only for anonymous classes in superclass constructor calls and only for pre 1.4 targets. todo: use this flag for optimizing away this$n parameters in other cases.- See Also:
-
EXISTS
public static final int EXISTSFlag is set for package symbols if a package has a member or directory and therefore exists.- See Also:
-
COMPOUND
public static final int COMPOUNDFlag is set for compiler-generated compound classes representing multiple variable bounds- See Also:
-
CLASS_SEEN
public static final int CLASS_SEENFlag is set for class symbols if a class file was found for this class.- See Also:
-
SOURCE_SEEN
public static final int SOURCE_SEENFlag is set for class symbols if a source file was found for this class.- See Also:
-
LOCKED
public static final int LOCKEDFlag for class symbols is set and later re-set as a lock in Enter to detect cycles in the superclass/superinterface relations. Similarly for constructor call cycle detection in Attr.- See Also:
-
UNATTRIBUTED
public static final int UNATTRIBUTEDFlag for class symbols is set and later re-set to indicate that a class has been entered but has not yet been attributed.- See Also:
-
ANONCONSTR
public static final int ANONCONSTRFlag for synthesized default constructors of anonymous classes.- See Also:
-
ACYCLIC
public static final int ACYCLICFlag for class symbols to indicate it has been checked and found acyclic.- See Also:
-
BRIDGE
public static final long BRIDGEFlag that marks bridge methods.- See Also:
-
PARAMETER
public static final long PARAMETERFlag that marks formal parameters.- See Also:
-
VARARGS
public static final long VARARGSFlag that marks varargs methods.- See Also:
-
ACYCLIC_ANN
public static final long ACYCLIC_ANNFlag for annotation type symbols to indicate it has been checked and found acyclic.- See Also:
-
GENERATEDCONSTR
public static final long GENERATEDCONSTRFlag that marks a generated default constructor.- See Also:
-
HYPOTHETICAL
public static final long HYPOTHETICALFlag that marks a hypothetical method that need not really be generated in the binary, but is present in the symbol table to simplify checking for erasure clashes - also used for 292 poly sig methods.- See Also:
-
PROPRIETARY
public static final long PROPRIETARYFlag that marks an internal proprietary class.- See Also:
-
UNION
public static final long UNIONFlag that marks a a multi-catch parameter- See Also:
-
OVERRIDE_BRIDGE
public static final long OVERRIDE_BRIDGEFlag that marks a special kind of bridge methods (the ones that come from restricted supertype bounds)- See Also:
-
EFFECTIVELY_FINAL
public static final long EFFECTIVELY_FINALFlag that marks an 'effectively final' local variable- See Also:
-
CLASH
public static final long CLASHFlag that marks non-override equivalent methods with the same signature- See Also:
-
DEFAULT
public static final long DEFAULTFlag that marks either a default method or an interface containing default methods.- See Also:
-
AccessFlags
public static final int AccessFlagsModifier masks.- See Also:
-
LocalClassFlags
public static final int LocalClassFlagsModifier masks.- See Also:
-
MemberClassFlags
public static final int MemberClassFlagsModifier masks.- See Also:
-
ClassFlags
public static final int ClassFlagsModifier masks.- See Also:
-
InterfaceVarFlags
public static final int InterfaceVarFlagsModifier masks.- See Also:
-
VarFlags
public static final int VarFlagsModifier masks.- See Also:
-
ConstructorFlags
public static final int ConstructorFlagsModifier masks.- See Also:
-
InterfaceMethodFlags
public static final int InterfaceMethodFlagsModifier masks.- See Also:
-
MethodFlags
public static final int MethodFlagsModifier masks.- See Also:
-
LocalVarFlags
public static final long LocalVarFlags- See Also:
-
modifierSets
-
-
Constructor Details
-
Flags
private Flags()
-
-
Method Details
-
toString
-
asFlagSet
-
asModifierSet
-
asModifierSet
-
testAny
public static boolean testAny(int value, int flags) -
testAll
public static boolean testAll(int value, int flags) -
testAny
public static boolean testAny(long value, long flags) -
testAll
public static boolean testAll(long value, long flags) -
isEnum
-