/** JVM access flags. */ export declare enum Modifier { /** * `ACC_PUBLIC` access flag, integer value `1`. * * Applicable for: * - `class` - Declared public; may be accessed from outside its package. * - `field` - Declared public; may be accessed from outside its package. * - `method` - Declared public; may be accessed from outside its package. * - `inner_class` - Marked or implicitly public in source. */ PUBLIC = 1, /** * `ACC_PRIVATE` access flag, integer value `2`. * * Applicable for: * - `field` - Declared private; accessible only within the defining class and other classes belonging to the same nest (§5.4.4). * - `method` - Declared private; accessible only within the defining class and other classes belonging to the same nest (§5.4.4). * - `inner_class` - Marked private in source. */ PRIVATE = 2, /** * `ACC_PROTECTED` access flag, integer value `4`. * * Applicable for: * - `field` - Declared protected; may be accessed within subclasses. * - `method` - Declared protected; may be accessed within subclasses. * - `inner_class` - Marked protected in source. */ PROTECTED = 4, /** * `ACC_STATIC` access flag, integer value `8`. * * Applicable for: * - `field` - Declared static. * - `method` - Declared static. * - `inner_class` - Marked or implicitly static in source. */ STATIC = 8, /** * `ACC_FINAL` access flag, integer value `16`. * * Applicable for: * - `class` - Declared final; no subclasses allowed. * - `field` - Declared final; never directly assigned to after object construction (JLS §17.5). * - `method` - Declared final; must not be overridden (§5.4.5). * - `inner_class` - Marked or implicitly final in source. */ FINAL = 16, /** * `ACC_OPEN` access flag, integer value `32`. * * Applicable for: * - `module` - Indicates that this module is open. */ OPEN = 32, /** * `ACC_TRANSITIVE` access flag, integer value `32`. * * Applicable for: * - `module` - Indicates that any module which depends on the current module, implicitly declares a dependence on the module indicated by this entry. */ TRANSITIVE = 32, /** * `ACC_SUPER` access flag, integer value `32`. * * Applicable for: * - `class` - Treat superclass methods specially when invoked by the invokespecial instruction. */ SUPER = 32, /** * `ACC_SYNCHRONIZED` access flag, integer value `32`. * * Applicable for: * - `method` - Declared synchronized; invocation is wrapped by a monitor use. */ SYNCHRONIZED = 32, /** * `ACC_STATIC_PHASE` access flag, integer value `64`. * * Applicable for: * - `module` - Indicates that this dependence is mandatory in the static phase, i.e., at compile time, but is optional in the dynamic phase, i.e., at run time. */ STATIC_PHASE = 64, /** * `ACC_VOLATILE` access flag, integer value `64`. * * Applicable for: * - `field` - Declared volatile; cannot be cached. */ VOLATILE = 64, /** * `ACC_BRIDGE` access flag, integer value `64`. * * Applicable for: * - `method` - A bridge method, generated by the compiler. */ BRIDGE = 64, /** * `ACC_TRANSIENT` access flag, integer value `128`. * * Applicable for: * - `field` - Declared transient; not written or read by a persistent object manager. */ TRANSIENT = 128, /** * `ACC_VARARGS` access flag, integer value `128`. * * Applicable for: * - `method` - Declared with variable number of arguments. */ VARARGS = 128, /** * `ACC_NATIVE` access flag, integer value `256`. * * Applicable for: * - `method` - Declared native; implemented in a language other than the Java programming language. */ NATIVE = 256, /** * `ACC_INTERFACE` access flag, integer value `512`. * * Applicable for: * - `class` - Is an interface, not a class. * - `inner_class` - Was an interface in source. */ INTERFACE = 512, /** * `ACC_ABSTRACT` access flag, integer value `1024`. * * Applicable for: * - `class` - Declared abstract; must not be instantiated. * - `method` - Declared abstract; no implementation is provided. * - `inner_class` - Marked or implicitly abstract in source. */ ABSTRACT = 1024, /** * `ACC_STRICT` access flag, integer value `2048`. * * Applicable for: * - `method` - In a class file whose major version number is at least 46 and at most 60: Declared strictfp. */ STRICT = 2048, /** * `ACC_SYNTHETIC` access flag, integer value `4096`. * * Applicable for: * - `class` - Declared synthetic; not present in the source code. * - `field` - Declared synthetic; not present in the source code. * - `method` - Declared synthetic; not present in the source code. * - `inner_class` - Declared synthetic; not present in the source code. */ SYNTHETIC = 4096, /** * `ACC_ANNOTATION` access flag, integer value `8192`. * * Applicable for: * - `class` - Declared as an annotation interface. * - `inner_class` - Declared as an annotation interface. */ ANNOTATION = 8192, /** * `ACC_ENUM` access flag, integer value `16384`. * * Applicable for: * - `class` - Declared as an enum class. * - `field` - Declared as an element of an enum class. * - `inner_class` - Declared as an enum class. */ ENUM = 16384, /** * `ACC_MANDATED` access flag, integer value `32768`. * * Applicable for: * - `parameter` - Indicates that the formal parameter was implicitly declared in source code, according to the specification of the language in which the source code was written (JLS §13.1). (The formal parameter is mandated by a language specification, so all compilers for the language must emit it.) * - `module` - Indicates that this module was implicitly declared. */ MANDATED = 32768, /** * `ACC_MODULE` access flag, integer value `32768`. * * Applicable for: * - `class` - Is a module, not a class or interface. */ MODULE = 32768 }