Class Mod


  • public final class Mod
    extends java.lang.Object
    This class defines constants and convenience methods for the handling of modifiers as defined by the JVM.

    Notice: This class should be named IClass.IModifier, but changing the name would break existing client code. Thus it won't be renamed until there's a really good reason to do it (maybe with a major design change).

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static short ABSTRACT
      This flag is set on all interfaces, ABSTRACT classes and ABSTRACT methods, and is mutually exclusive with FINAL, NATIVE, PRIVATE, STATIC and SYNCHRONIZED.
      static short ANNOTATION
      This flag is set on annotation types (including nested annotation types), and requires that INTERFACE is also set.
      static short BRIDGE
      This flag is set on 'bridge methods' generated by the compiler.
      static short ENUM
      This flag is set on enumerated types (including nested enumerated types) and enumerated types' elements, and is mutually exclusive with INTERFACE.
      static short FINAL
      This flag is set on FINAL classes, FINAL fields and FINAL methods, and is mutually exclusive with VOLATILE and ABSTRACT.
      static short INTERFACE
      This flag is set on interfaces (including nested interfaces), and requires that ABSTRACT must also be set.
      static short NATIVE
      This flag is set on NATIVE methods, and is mutually exclusive with ABSTRACT.
      static short NONE
      An alias for '0' -- no modifiers.
      static short PACKAGE
      The flag indicating 'default accessibility' a.k.a.
      static short PPP
      The mask to select the accessibility flags from modifiers.
      static short PRIVATE
      The flag indicating 'private accessibility' of the modified element.
      static short PROTECTED
      The flag indicating 'protected accessibility' of the modified element.
      static short PUBLIC
      The flag indicating 'public accessibility' of the modified element.
      static short STATIC
      This flag is set on class or interface initialization methods, STATIC class fields, all interface fields, STATIC methods, and STATIC nested classes.
      static short STRICTFP
      This flag is set on STRICTFP methods, and is mutually exclusive with ABSTRACT.
      static short SUPER
      This flag is always set on classes, and never set on any other element.
      static short SYNCHRONIZED
      This flag is set on SYNCHRONIZED methods.
      static short SYNTHETIC
      This flag is set on classes, methods and fields that were generated by the compiler and do not appear in the source code.
      static short TRANSIENT
      This flag is set on TRANSIENT fields.
      static short VARARGS
      This flag is set on 'variable arity' (a.k.a.
      static short VOLATILE
      This flag is set on VOLATILE fields and is mutually exclusive with FINAL.
    • Field Detail

      • PPP

        public static final short PPP
        The mask to select the accessibility flags from modifiers.
        See Also:
        Constant Field Values
      • STATIC

        public static final short STATIC
        This flag is set on class or interface initialization methods, STATIC class fields, all interface fields, STATIC methods, and STATIC nested classes.
        See Also:
        Constant Field Values
      • FINAL

        public static final short FINAL
        This flag is set on FINAL classes, FINAL fields and FINAL methods, and is mutually exclusive with VOLATILE and ABSTRACT.
        See Also:
        Constant Field Values
      • SUPER

        public static final short SUPER
        This flag is always set on classes, and never set on any other element. Notice that it has the same value as SYNCHRONIZED, which is OK because SYNCHRONIZED is for methods and SUPER for classes.
        See Also:
        Constant Field Values
      • SYNCHRONIZED

        public static final short SYNCHRONIZED
        This flag is set on SYNCHRONIZED methods. Notice that it has the same value as SUPER, which is OK because SYNCHRONIZED is for methods and SUPER for classes.
        See Also:
        Constant Field Values
      • VOLATILE

        public static final short VOLATILE
        This flag is set on VOLATILE fields and is mutually exclusive with FINAL. Notice that it has the same value as BRIDGE, which is OK because BRIDGE is for methods and VOLATILE for fields.
        See Also:
        Constant Field Values
      • BRIDGE

        public static final short BRIDGE
        This flag is set on 'bridge methods' generated by the compiler. Notice that it has the same value as VOLATILE, which is OK because BRIDGE is for methods and VOLATILE for fields.
        See Also:
        Constant Field Values
      • TRANSIENT

        public static final short TRANSIENT
        This flag is set on TRANSIENT fields. Notice that it has the same value as VARARGS, which is OK because VARARGS is for methods and TRANSIENT for fields.
        See Also:
        Constant Field Values
      • VARARGS

        public static final short VARARGS
        This flag is set on 'variable arity' (a.k.a. 'varargs') methods and constructors. Notice that it has the same value as TRANSIENT, which is OK because VARARGS is for methods and TRANSIENT for fields.
        See Also:
        Constant Field Values
      • NATIVE

        public static final short NATIVE
        This flag is set on NATIVE methods, and is mutually exclusive with ABSTRACT.
        See Also:
        Constant Field Values
      • STRICTFP

        public static final short STRICTFP
        This flag is set on STRICTFP methods, and is mutually exclusive with ABSTRACT.
        See Also:
        Constant Field Values
      • SYNTHETIC

        public static final short SYNTHETIC
        This flag is set on classes, methods and fields that were generated by the compiler and do not appear in the source code.
        See Also:
        Constant Field Values
      • ANNOTATION

        public static final short ANNOTATION
        This flag is set on annotation types (including nested annotation types), and requires that INTERFACE is also set.
        See Also:
        Constant Field Values
      • ENUM

        public static final short ENUM
        This flag is set on enumerated types (including nested enumerated types) and enumerated types' elements, and is mutually exclusive with INTERFACE.
        See Also:
        Constant Field Values
    • Method Detail

      • isPublicAccess

        public static boolean isPublicAccess​(short sh)
        Returns:
        Whether the given modifier symbolizes PUBLIC accessibility
      • isPrivateAccess

        public static boolean isPrivateAccess​(short sh)
        Returns:
        Whether the given modifier symbolizes PRIVATE accessibility
      • isProtectedAccess

        public static boolean isProtectedAccess​(short sh)
        Returns:
        Whether the given modifier symbolizes PROTECTED accessibility
      • isPackageAccess

        public static boolean isPackageAccess​(short sh)
        Returns:
        Whether the given modifier symbolizes PACKAGE (a.k.a. 'default') accessibility
      • changeAccess

        public static short changeAccess​(short modifiers,
                                         short newAccess)
        Returns:
        The given modifiers, but with the accessibility part changed to newAccess
      • isStatic

        public static boolean isStatic​(short sh)
        Returns:
        Whether the given modifier includes STATIC
      • isFinal

        public static boolean isFinal​(short sh)
        Returns:
        Whether the given modifier includes INTERFACE
      • isSuper

        public static boolean isSuper​(short sh)
        Returns:
        Whether the given modifier includes SUPER
      • isSynchronized

        public static boolean isSynchronized​(short sh)
        Returns:
        Whether the given modifier includes SYNCHRONIZED
      • isVolatile

        public static boolean isVolatile​(short sh)
        Returns:
        Whether the given modifier includes VOLATILE
      • isBridge

        public static boolean isBridge​(short sh)
        Returns:
        Whether the given modifier includes BRIDGE
      • isTransient

        public static boolean isTransient​(short sh)
        Returns:
        Whether the given modifier includes TRANSIENT
      • isVarargs

        public static boolean isVarargs​(short sh)
        Returns:
        Whether the given modifier includes VARARGS
      • isNative

        public static boolean isNative​(short sh)
        Returns:
        Whether the given modifier includes NATIVE
      • isInterface

        public static boolean isInterface​(short sh)
        Returns:
        Whether the given modifier includes INTERFACE
      • isAbstract

        public static boolean isAbstract​(short sh)
        Returns:
        Whether the given modifier includes ABSTRACT
      • isStrictfp

        public static boolean isStrictfp​(short sh)
        Returns:
        Whether the given modifier includes STRICTFP
      • isSynthetic

        public static boolean isSynthetic​(short sh)
        Returns:
        Whether the given modifier includes SYNTHETIC
      • isAnnotation

        public static boolean isAnnotation​(short sh)
        Returns:
        Whether the given modifier includes ANNOTATION
      • isEnum

        public static boolean isEnum​(short sh)
        Returns:
        Whether the given modifier includes ENUM