Class Flags


  • public class Flags
    extends java.lang.Object
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Flags.Flag  
      static class  Flags.Kind  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ABSTRACT  
      static int ACC_BRIDGE  
      static int ACC_FINAL  
      static int ACC_MANDATED  
      static int ACC_MODULE  
      static int ACC_OPEN  
      static int ACC_STATIC_PHASE  
      static int ACC_SUPER  
      static int ACC_SYNTHETIC  
      static int ACC_TRANSITIVE  
      static int ACC_VARARGS  
      static int AccessFlags
      Modifier masks.
      static int ACYCLIC
      Flag for class symbols to indicate it has been checked and found acyclic.
      static long ACYCLIC_ANN
      Flag for annotation type symbols to indicate it has been checked and found acyclic.
      static int ANNOTATION
      Flag that marks attribute interfaces, added in classfile v49.0.
      static long AnnotationTypeElementMask  
      static int ANONCONSTR
      Flag for synthesized default constructors of anonymous classes.
      static long ANONYMOUS
      Flag that marks anonymous inner classes.
      static int BLOCK
      Flag is set for compiler-generated anonymous method symbols that `own' an initializer block.
      static long BRIDGE
      Flag that marks bridge methods.
      static long CLASH
      Flag that marks non-override equivalent methods with the same signature
      static int CLASS_SEEN
      Flag is set for class symbols if a class file was found for this class.
      static int ClassFlags
      Modifier masks.
      static long COMPACT_RECORD_CONSTRUCTOR
      Flag to mark a record constructor as a compact one
      static int COMPOUND
      Flag is set for compiler-generated compound classes representing multiple variable bounds
      static int ConstructorFlags
      Modifier masks.
      static long DEFAULT
      Flag that marks either a default method or an interface containing default methods.
      static long DEOBFUSCATED
      Indicates a class has been run through the deobfuscating preprocessor.
      static int DEPRECATED
      Flag is set if symbol is deprecated.
      static long EFFECTIVELY_FINAL
      Flag that marks an 'effectively final' local variable
      static int ENUM
      An enumeration type or an enumeration constant, added in classfile v49.0.
      static int EXISTS
      Flag is set for package symbols if a package has a member or directory and therefore exists.
      static int ExportsOpensFlags
      Modifier masks.
      static long ExtendedClassFlags  
      static long ExtendedInterfaceFlags  
      static long ExtendedMemberClassFlags  
      static long ExtendedMemberStaticClassFlags  
      static long ExtendedStandardFlags  
      static int FINAL  
      static int GENERATED_MEMBER
      Flag is set for compiler-generated record members, it could be applied to accessors and fields
      static long GENERATEDCONSTR
      Flag that marks a generated default constructor.
      static int HASINIT
      Flag is set for a variable symbol if the variable's definition has an initializer part.
      static long HYPOTHETICAL
      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 int INTERFACE  
      static int InterfaceMethodFlags
      Modifier masks.
      static long InterfaceMethodMask  
      static int InterfaceVarFlags
      Modifier masks.
      static int IPROXY
      Flag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).
      static long LOAD_BODY_FAILED
      Indicates whether an unsuccessful attempt has been made to load a method's body.
      static int LocalClassFlags
      Modifier masks.
      static long LocalVarFlags  
      static int LOCKED
      Flag for class symbols is set and later re-set as a lock in Enter to detect cycles in the superclass/superinterface relations.
      static int MANDATED
      Added in SE8, represents constructs implicitly declared in source.
      static int MemberClassFlags
      Modifier masks.
      static int MemberStaticClassFlags
      Modifier masks.
      static int MethodFlags
      Modifier masks.
      static long ModifierFlags  
      private static java.util.Map<java.lang.Long,​java.util.Set<javax.lang.model.element.Modifier>> modifierSets  
      static long MODULE
      Flag to indicate class symbol is for module-info
      static int ModuleFlags
      Modifier masks.
      static int NATIVE  
      static long NON_SEALED
      Flag to indicate that the class/interface was declared with the non-sealed modifier.
      static int NOOUTERTHIS
      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 long OVERRIDE_BRIDGE
      Flag that marks a special kind of bridge methods (the ones that come from restricted supertype bounds)
      static long PARAMETER
      Flag that marks formal parameters.
      static int PRIVATE  
      static long PROPRIETARY
      Flag that marks an internal proprietary class.
      static int PROTECTED  
      static int PUBLIC  
      static long ReceiverParamFlags  
      static long RECORD
      Flag to indicate that a class is a record.
      static int RecordMethodFlags
      Modifier masks.
      static int RequiresFlags
      Modifier masks.
      static long SEALED
      Flag to indicate sealed class/interface declaration.
      static int SOURCE_SEEN
      Flag is set for class symbols if a source file was found for this class.
      static int StandardFlags  
      static int STATIC  
      static int StaticLocalFlags
      Modifier masks.
      static int STRICTFP  
      static long SUPER
      Mirror of ACC_SUPER.
      static int SYNCHRONIZED  
      static int SYNTHETIC  
      static int TRANSIENT  
      static int UNATTRIBUTED
      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 long UNINITIALIZED_FIELD
      Flag to mark a record field that was not initialized in the compact constructor
      static long UNION
      Flag that marks a a multi-catch parameter
      static long VARARGS
      Flag that marks varargs methods.
      static int VarFlags
      Modifier masks.
      static int VOLATILE  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Flags()  
    • Field Detail

      • ANNOTATION

        public static final int ANNOTATION
        Flag that marks attribute interfaces, added in classfile v49.0.
        See Also:
        Constant Field Values
      • ENUM

        public static final int ENUM
        An enumeration type or an enumeration constant, added in classfile v49.0.
        See Also:
        Constant Field Values
      • MANDATED

        public static final int MANDATED
        Added in SE8, represents constructs implicitly declared in source.
        See Also:
        Constant Field Values
      • DEPRECATED

        public static final int DEPRECATED
        Flag is set if symbol is deprecated.
        See Also:
        Constant Field Values
      • HASINIT

        public static final int HASINIT
        Flag is set for a variable symbol if the variable's definition has an initializer part.
        See Also:
        Constant Field Values
      • BLOCK

        public static final int BLOCK
        Flag is set for compiler-generated anonymous method symbols that `own' an initializer block.
        See Also:
        Constant Field Values
      • IPROXY

        public static final int IPROXY
        Flag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).
        See Also:
        Constant Field Values
      • NOOUTERTHIS

        public static final int NOOUTERTHIS
        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. 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:
        Constant Field Values
      • EXISTS

        public static final int EXISTS
        Flag is set for package symbols if a package has a member or directory and therefore exists.
        See Also:
        Constant Field Values
      • COMPOUND

        public static final int COMPOUND
        Flag is set for compiler-generated compound classes representing multiple variable bounds
        See Also:
        Constant Field Values
      • CLASS_SEEN

        public static final int CLASS_SEEN
        Flag is set for class symbols if a class file was found for this class.
        See Also:
        Constant Field Values
      • SOURCE_SEEN

        public static final int SOURCE_SEEN
        Flag is set for class symbols if a source file was found for this class.
        See Also:
        Constant Field Values
      • LOCKED

        public static final int LOCKED
        Flag 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:
        Constant Field Values
      • UNATTRIBUTED

        public static final int UNATTRIBUTED
        Flag 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:
        Constant Field Values
      • ANONCONSTR

        public static final int ANONCONSTR
        Flag for synthesized default constructors of anonymous classes.
        See Also:
        Constant Field Values
      • ACYCLIC

        public static final int ACYCLIC
        Flag for class symbols to indicate it has been checked and found acyclic.
        See Also:
        Constant Field Values
      • BRIDGE

        public static final long BRIDGE
        Flag that marks bridge methods.
        See Also:
        Constant Field Values
      • PARAMETER

        public static final long PARAMETER
        Flag that marks formal parameters.
        See Also:
        Constant Field Values
      • VARARGS

        public static final long VARARGS
        Flag that marks varargs methods.
        See Also:
        Constant Field Values
      • ACYCLIC_ANN

        public static final long ACYCLIC_ANN
        Flag for annotation type symbols to indicate it has been checked and found acyclic.
        See Also:
        Constant Field Values
      • GENERATEDCONSTR

        public static final long GENERATEDCONSTR
        Flag that marks a generated default constructor.
        See Also:
        Constant Field Values
      • HYPOTHETICAL

        public static final long HYPOTHETICAL
        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.
        See Also:
        Constant Field Values
      • PROPRIETARY

        public static final long PROPRIETARY
        Flag that marks an internal proprietary class.
        See Also:
        Constant Field Values
      • UNION

        public static final long UNION
        Flag that marks a a multi-catch parameter
        See Also:
        Constant Field Values
      • OVERRIDE_BRIDGE

        public static final long OVERRIDE_BRIDGE
        Flag that marks a special kind of bridge methods (the ones that come from restricted supertype bounds)
        See Also:
        Constant Field Values
      • EFFECTIVELY_FINAL

        public static final long EFFECTIVELY_FINAL
        Flag that marks an 'effectively final' local variable
        See Also:
        Constant Field Values
      • CLASH

        public static final long CLASH
        Flag that marks non-override equivalent methods with the same signature
        See Also:
        Constant Field Values
      • DEFAULT

        public static final long DEFAULT
        Flag that marks either a default method or an interface containing default methods.
        See Also:
        Constant Field Values
      • ANONYMOUS

        public static final long ANONYMOUS
        Flag that marks anonymous inner classes.
        See Also:
        Constant Field Values
      • LOAD_BODY_FAILED

        public static final long LOAD_BODY_FAILED
        Indicates whether an unsuccessful attempt has been made to load a method's body.
        See Also:
        Constant Field Values
      • DEOBFUSCATED

        public static final long DEOBFUSCATED
        Indicates a class has been run through the deobfuscating preprocessor.
        See Also:
        Constant Field Values
      • MODULE

        public static final long MODULE
        Flag to indicate class symbol is for module-info
        See Also:
        Constant Field Values
      • RECORD

        public static final long RECORD
        Flag 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:
        Constant Field Values
      • COMPACT_RECORD_CONSTRUCTOR

        public static final long COMPACT_RECORD_CONSTRUCTOR
        Flag to mark a record constructor as a compact one
        See Also:
        Constant Field Values
      • UNINITIALIZED_FIELD

        public static final long UNINITIALIZED_FIELD
        Flag to mark a record field that was not initialized in the compact constructor
        See Also:
        Constant Field Values
      • GENERATED_MEMBER

        public static final int GENERATED_MEMBER
        Flag is set for compiler-generated record members, it could be applied to accessors and fields
        See Also:
        Constant Field Values
      • SEALED

        public static final long SEALED
        Flag to indicate sealed class/interface declaration.
        See Also:
        Constant Field Values
      • NON_SEALED

        public static final long NON_SEALED
        Flag to indicate that the class/interface was declared with the non-sealed modifier.
        See Also:
        Constant Field Values
      • ExportsOpensFlags

        public static final int ExportsOpensFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • LocalClassFlags

        public static final int LocalClassFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • StaticLocalFlags

        public static final int StaticLocalFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • MemberClassFlags

        public static final int MemberClassFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • MemberStaticClassFlags

        public static final int MemberStaticClassFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • InterfaceVarFlags

        public static final int InterfaceVarFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • ConstructorFlags

        public static final int ConstructorFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • InterfaceMethodFlags

        public static final int InterfaceMethodFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • RecordMethodFlags

        public static final int RecordMethodFlags
        Modifier masks.
        See Also:
        Constant Field Values
      • ExtendedInterfaceFlags

        public static final long ExtendedInterfaceFlags
        See Also:
        Constant Field Values
      • ExtendedMemberClassFlags

        public static final long ExtendedMemberClassFlags
        See Also:
        Constant Field Values
      • ExtendedMemberStaticClassFlags

        public static final long ExtendedMemberStaticClassFlags
        See Also:
        Constant Field Values
      • AnnotationTypeElementMask

        public static final long AnnotationTypeElementMask
        See Also:
        Constant Field Values
      • modifierSets

        private static final java.util.Map<java.lang.Long,​java.util.Set<javax.lang.model.element.Modifier>> modifierSets
    • Constructor Detail

      • Flags

        private Flags()
    • Method Detail

      • toString

        public static java.lang.String toString​(long flags)
      • toString

        public static java.lang.String toString​(long flags,
                                                Flags.Kind kind)
      • asFlagSet

        public static java.util.EnumSet<Flags.Flag> asFlagSet​(long mask)
      • asFlagSet

        public static java.util.EnumSet<Flags.Flag> asFlagSet​(long mask,
                                                              Flags.Kind kind)
      • asModifierSet

        public static java.util.Set<javax.lang.model.element.Modifier> asModifierSet​(long flags)
      • 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)
      • fromStandardFlags

        public static long fromStandardFlags​(long accessFlags,
                                             Flags.Kind kind)