Class Flags


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

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

      Fields 
      Modifier and Type Field Description
      static int ABSTRACT  
      static int ACC_BRIDGE  
      static int ACC_SUPER  
      static int ACC_SYNTHETIC  
      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 int ANONCONSTR
      Flag for synthesized default constructors of anonymous 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 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 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 FINAL  
      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 int InterfaceVarFlags
      Modifier masks.
      static int IPROXY
      Flag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).
      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 MemberClassFlags
      Modifier masks.
      static int MethodFlags
      Modifier masks.
      static int ModifierFlags  
      private static java.util.Map<java.lang.Long,​java.util.Set<javax.lang.model.element.Modifier>> modifierSets  
      static int NATIVE  
      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 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 STRICTFP  
      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 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()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.util.EnumSet<Flags.Flag> asFlagSet​(long mask)  
      static java.util.Set<javax.lang.model.element.Modifier> asModifierSet​(long flags)  
      static java.util.Set<javax.lang.model.element.Modifier> 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 java.lang.String toString​(long flags)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
      • 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
      • LocalClassFlags

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

        public static final int MemberClassFlags
        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
      • 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)
      • asFlagSet

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

        public static java.util.Set<javax.lang.model.element.Modifier> asModifierSet​(long flags)
      • asModifierSet

        public static java.util.Set<javax.lang.model.element.Modifier> asModifierSet​(MemberType memberType,
                                                                                     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

        public static boolean isEnum​(MemberInfo symbol)