Package com.strobel.assembler.metadata
Class Flags
java.lang.Object
com.strobel.assembler.metadata.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
static 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 long
static final int
Flag for synthesized default constructors of anonymous classes.static final long
Flag that marks anonymous inner 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 long
Flag to mark a record constructor as a compact onestatic 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 long
Indicates a class has been run through the deobfuscating preprocessor.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
Modifier masks.static final long
static final long
static final long
static final long
static final long
static final int
static final int
Flag is set for compiler-generated record members, it could be applied to accessors and fieldsstatic 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 long
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 long
Indicates whether an unsuccessful attempt has been made to load a method's body.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
Added in SE8, represents constructs implicitly declared in source.static final int
Modifier masks.static final int
Modifier masks.static final int
Modifier masks.static final long
static final long
Flag to indicate class symbol is for module-infostatic final int
Modifier masks.static final int
static final long
Flag to indicate that the class/interface was declared with the non-sealed modifier.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 long
static final long
Flag to indicate that a class is a record.static final int
Modifier masks.static final int
Modifier masks.static final long
Flag to indicate sealed class/interface declaration.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
Modifier masks.static final int
static final long
Mirror of ACC_SUPER.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 to mark a record field that was not initialized in the compact constructorstatic 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) static EnumSet
<Flags.Flag> asFlagSet
(long mask, Flags.Kind kind) asModifierSet
(long flags) static long
fromStandardFlags
(long accessFlags, Flags.Kind kind) static boolean
isEnum
(TypeDefinition 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 int
toModifiers
(long flags) static String
toString
(long flags) static String
toString
(long flags, Flags.Kind kind)
-
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:
-
MANDATED
public static final int MANDATEDAdded in SE8, represents constructs implicitly declared in source.- See Also:
-
StandardFlags
public static final int StandardFlags- See Also:
-
ACC_FINAL
public static final int ACC_FINAL- 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_MODULE
public static final int ACC_MODULE- See Also:
-
ACC_OPEN
public static final int ACC_OPEN- See Also:
-
ACC_SYNTHETIC
public static final int ACC_SYNTHETIC- See Also:
-
ACC_MANDATED
public static final int ACC_MANDATED- See Also:
-
ACC_TRANSITIVE
public static final int ACC_TRANSITIVE- See Also:
-
ACC_STATIC_PHASE
public static final int ACC_STATIC_PHASE- 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:
-
ANONYMOUS
public static final long ANONYMOUSFlag that marks anonymous inner classes.- See Also:
-
SUPER
public static final long SUPERMirror of ACC_SUPER.- See Also:
-
LOAD_BODY_FAILED
public static final long LOAD_BODY_FAILEDIndicates whether an unsuccessful attempt has been made to load a method's body.- See Also:
-
DEOBFUSCATED
public static final long DEOBFUSCATEDIndicates a class has been run through the deobfuscating preprocessor.- See Also:
-
MODULE
public static final long MODULEFlag to indicate class symbol is for module-info- See Also:
-
RECORD
public static final long RECORDFlag to indicate that a class is a record. The flag is also used to mark fields that are part of the state vector of a record and to mark the canonical constructor- See Also:
-
COMPACT_RECORD_CONSTRUCTOR
public static final long COMPACT_RECORD_CONSTRUCTORFlag to mark a record constructor as a compact one- See Also:
-
UNINITIALIZED_FIELD
public static final long UNINITIALIZED_FIELDFlag to mark a record field that was not initialized in the compact constructor- See Also:
-
GENERATED_MEMBER
public static final int GENERATED_MEMBERFlag is set for compiler-generated record members, it could be applied to accessors and fields- See Also:
-
SEALED
public static final long SEALEDFlag to indicate sealed class/interface declaration.- See Also:
-
NON_SEALED
public static final long NON_SEALEDFlag to indicate that the class/interface was declared with the non-sealed modifier.- See Also:
-
ModuleFlags
public static final int ModuleFlagsModifier masks.- See Also:
-
RequiresFlags
public static final int RequiresFlagsModifier masks.- See Also:
-
ExportsOpensFlags
public static final int ExportsOpensFlagsModifier masks.- See Also:
-
AccessFlags
public static final int AccessFlagsModifier masks.- See Also:
-
LocalClassFlags
public static final int LocalClassFlagsModifier masks.- See Also:
-
StaticLocalFlags
public static final int StaticLocalFlagsModifier masks.- See Also:
-
MemberClassFlags
public static final int MemberClassFlagsModifier masks.- See Also:
-
MemberStaticClassFlags
public static final int MemberStaticClassFlagsModifier 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:
-
RecordMethodFlags
public static final int RecordMethodFlagsModifier masks.- See Also:
-
ExtendedInterfaceFlags
public static final long ExtendedInterfaceFlags- See Also:
-
ExtendedStandardFlags
public static final long ExtendedStandardFlags- See Also:
-
ExtendedMemberClassFlags
public static final long ExtendedMemberClassFlags- See Also:
-
ExtendedMemberStaticClassFlags
public static final long ExtendedMemberStaticClassFlags- See Also:
-
ExtendedClassFlags
public static final long ExtendedClassFlags- See Also:
-
ModifierFlags
public static final long ModifierFlags- See Also:
-
InterfaceMethodMask
public static final long InterfaceMethodMask- See Also:
-
AnnotationTypeElementMask
public static final long AnnotationTypeElementMask- See Also:
-
LocalVarFlags
public static final long LocalVarFlags- See Also:
-
ReceiverParamFlags
public static final long ReceiverParamFlags- See Also:
-
modifierSets
-
-
Constructor Details
-
Flags
private Flags()
-
-
Method Details
-
toString
-
toString
-
asFlagSet
-
asFlagSet
-
asModifierSet
-
toModifiers
public static int toModifiers(long flags) -
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
-
fromStandardFlags
-