Package org.eclipse.jdt.core.dom

## Class Modifier

- java.lang.Object
- - org.eclipse.jdt.core.dom.ASTNode
  - - org.eclipse.jdt.core.dom.Modifier

All Implemented Interfaces:
  `IExtendedModifier`

    public final class Modifier
    extends ASTNode
    implements IExtendedModifier

Modifier node.

     Modifier:
        public
        protected
        private
        static
        abstract
        final
        native
        synchronized
        transient
        volatile
        strictfp
        default
        sealed
        non-sealed

The numeric values of these flags match the ones for class files as described in the Java Virtual Machine Specification (except for `DEFAULT`). Note that the Java model class `Flags` also provides the same constants as this class.

Since:
  2.0
Restriction:
  This class is not intended to be instantiated by clients.

### Nested Class Summary

Nested Classes
`static class` `Modifier.ModifierKeyword` Modifier keywords (typesafe enumeration).

### Field Summary

Fields
`static int` `ABSTRACT` "abstract" modifier constant (bit mask).
`static int` `DEFAULT` "default" modifier constant (bit mask) (added in JLS8 API).
`static int` `FINAL` "final" modifier constant (bit mask).
`static SimplePropertyDescriptor` `KEYWORD_PROPERTY` The "keyword" structural property of this node type (type: `Modifier.ModifierKeyword`).
`static int` `NATIVE` "native" modifier constant (bit mask).
`static int` `NON_SEALED` "non-sealed" modifier constant (bit mask).
`static int` `NONE` Modifier constant (bit mask, value 0) indicating no modifiers.
`static int` `PRIVATE` "private" modifier constant (bit mask).
`static int` `PROTECTED` "protected" modifier constant (bit mask).
`static int` `PUBLIC` "public" modifier constant (bit mask).
`static int` `SEALED` "sealed" modifier constant (bit mask).
`static int` `STATIC` "static" modifier constant (bit mask).
`static int` `STRICTFP` "strictfp" modifier constant (bit mask).
`static int` `SYNCHRONIZED` "synchronized" modifier constant (bit mask).
`static int` `TRANSIENT` "transient" modifier constant (bit mask).
`static int` `VOLATILE` "volatile" modifier constant (bit mask).

### Fields inherited from class org.eclipse.jdt.core.dom.ASTNode

`ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Modifier.ModifierKeyword` `getKeyword()` Returns the modifier keyword of this modifier node.
`boolean` `isAbstract()` Answer true if the receiver is the abstract modifier, false otherwise.
`static boolean` `isAbstract​(int flags)` Returns whether the given flags includes the "abstract" modifier.
`boolean` `isAnnotation()` Returns whether this extended modifier is an annotation.
`boolean` `isDefault()` Answer true if the receiver is the default modifier, false otherwise.
`static boolean` `isDefault​(int flags)` Returns whether the given flags includes the "default" modifier.
`boolean` `isFinal()` Answer true if the receiver is the final modifier, false otherwise.
`static boolean` `isFinal​(int flags)` Returns whether the given flags includes the "final" modifier.
`boolean` `isModifier()` Returns whether this extended modifier is a standard modifier.
`boolean` `isNative()` Answer true if the receiver is the native modifier, false otherwise.
`static boolean` `isNative​(int flags)` Returns whether the given flags includes the "native" modifier.
`boolean` `isNonSealed()` Answer true if the receiver is the non-sealed modifier, false otherwise.
`static boolean` `isNonSealed​(int flags)` Returns whether the given flags includes the "non-sealed" modifier.
`boolean` `isPrivate()` Answer true if the receiver is the private modifier, false otherwise.
`static boolean` `isPrivate​(int flags)` Returns whether the given flags includes the "private" modifier.
`boolean` `isProtected()` Answer true if the receiver is the protected modifier, false otherwise.
`static boolean` `isProtected​(int flags)` Returns whether the given flags includes the "protected" modifier.
`boolean` `isPublic()` Answer true if the receiver is the public modifier, false otherwise.
`static boolean` `isPublic​(int flags)` Returns whether the given flags includes the "public" modifier.
`boolean` `isSealed()` Answer true if the receiver is the sealed modifier, false otherwise.
`static boolean` `isSealed​(int flags)` Returns whether the given flags includes the "sealed" modifier.
`boolean` `isStatic()` Answer true if the receiver is the static modifier, false otherwise.
`static boolean` `isStatic​(int flags)` Returns whether the given flags includes the "static" modifier.
`boolean` `isStrictfp()` Answer true if the receiver is the strictfp modifier, false otherwise.
`static boolean` `isStrictfp​(int flags)` Returns whether the given flags includes the "strictfp" modifier.
`boolean` `isSynchronized()` Answer true if the receiver is the synchronized modifier, false otherwise.
`static boolean` `isSynchronized​(int flags)` Returns whether the given flags includes the "synchronized" modifier.
`boolean` `isTransient()` Answer true if the receiver is the transient modifier, false otherwise.
`static boolean` `isTransient​(int flags)` Returns whether the given flags includes the "transient" modifier.
`boolean` `isVolatile()` Answer true if the receiver is the volatile modifier, false otherwise.
`static boolean` `isVolatile​(int flags)` Returns whether the given flags includes the "volatile" modifier.
`static List` `propertyDescriptors​(int apiLevel)` Returns a list of structural property descriptors for this node type.
`void` `setKeyword​(Modifier.ModifierKeyword modifierKeyord)` Sets the modifier keyword of this modifier node.

### Methods inherited from class org.eclipse.jdt.core.dom.ASTNode

`accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### ABSTRACT

    public static final int ABSTRACT

"abstract" modifier constant (bit mask). Applicable to types and methods.

Since:
  2.0
See Also:
  Constant Field Values

#### FINAL

    public static final int FINAL

"final" modifier constant (bit mask). Applicable to types, methods, fields, and variables.

Since:
  2.0
See Also:
  Constant Field Values

#### KEYWORD_PROPERTY

    public static final SimplePropertyDescriptor KEYWORD_PROPERTY

The "keyword" structural property of this node type (type: `Modifier.ModifierKeyword`).

Since:
  3.0

#### NATIVE

    public static final int NATIVE

"native" modifier constant (bit mask). Applicable only to methods.

Since:
  2.0
See Also:
  Constant Field Values

#### NONE

    public static final int NONE

Modifier constant (bit mask, value 0) indicating no modifiers.

Since:
  2.0
See Also:
  Constant Field Values

#### PRIVATE

    public static final int PRIVATE

"private" modifier constant (bit mask). Applicable to types, methods, constructors, and fields.

Since:
  2.0
See Also:
  Constant Field Values

#### PROTECTED

    public static final int PROTECTED

"protected" modifier constant (bit mask). Applicable to types, methods, constructors, and fields.

Since:
  2.0
See Also:
  Constant Field Values

#### PUBLIC

    public static final int PUBLIC

"public" modifier constant (bit mask). Applicable to types, methods, constructors, and fields.

Since:
  2.0
See Also:
  Constant Field Values

#### STATIC

    public static final int STATIC

"static" modifier constant (bit mask). Applicable to types, methods, fields, and initializers.

Since:
  2.0
See Also:
  Constant Field Values

#### STRICTFP

    public static final int STRICTFP

"strictfp" modifier constant (bit mask). Applicable to types and methods.

Since:
  2.0
See Also:
  Constant Field Values

#### SYNCHRONIZED

    public static final int SYNCHRONIZED

"synchronized" modifier constant (bit mask). Applicable only to methods.

Since:
  2.0
See Also:
  Constant Field Values

#### TRANSIENT

    public static final int TRANSIENT

"transient" modifier constant (bit mask). Applicable only to fields.

Since:
  2.0
See Also:
  Constant Field Values

#### VOLATILE

    public static final int VOLATILE

"volatile" modifier constant (bit mask). Applicable only to fields.

Since:
  2.0
See Also:
  Constant Field Values

#### SEALED

    public static final int SEALED

"sealed" modifier constant (bit mask). Applicable only to types.

Since:
  3.24
See Also:
  Constant Field Values

#### NON_SEALED

    public static final int NON_SEALED

"non-sealed" modifier constant (bit mask). Applicable only to types.

Since:
  3.24
See Also:
  Constant Field Values

#### DEFAULT

    public static final int DEFAULT

"default" modifier constant (bit mask) (added in JLS8 API). Applicable only to methods in interfaces (but not for annotation methods with a default value).

Note that the value of this flag is internal and is not specified in the Java Virtual Machine Specification.

Since:
  3.10
See Also:
  Constant Field Values

### Method Detail

#### isAbstract

    public static boolean isAbstract​(int flags)

Returns whether the given flags includes the "abstract" modifier. Applicable to types and methods.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `ABSTRACT` bit is set, and `false` otherwise
Since:
  2.0

#### isFinal

    public static boolean isFinal​(int flags)

Returns whether the given flags includes the "final" modifier. Applicable to types, methods, fields, and variables.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `FINAL` bit is set, and `false` otherwise
Since:
  2.0

#### isNative

    public static boolean isNative​(int flags)

Returns whether the given flags includes the "native" modifier. Applicable only to methods.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `NATIVE` bit is set, and `false` otherwise
Since:
  2.0

#### isPrivate

    public static boolean isPrivate​(int flags)

Returns whether the given flags includes the "private" modifier. Applicable to types, methods, constructors, and fields.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `PRIVATE` bit is set, and `false` otherwise
Since:
  2.0

#### isProtected

    public static boolean isProtected​(int flags)

Returns whether the given flags includes the "protected" modifier. Applicable to types, methods, constructors, and fields.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `PROTECTED` bit is set, and `false` otherwise
Since:
  2.0

#### isPublic

    public static boolean isPublic​(int flags)

Returns whether the given flags includes the "public" modifier. Applicable to types, methods, constructors, and fields.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `PUBLIC` bit is set, and `false` otherwise
Since:
  2.0

#### isStatic

    public static boolean isStatic​(int flags)

Returns whether the given flags includes the "static" modifier. Applicable to types, methods, fields, and initializers.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `STATIC` bit is set, and `false` otherwise
Since:
  2.0

#### isStrictfp

    public static boolean isStrictfp​(int flags)

Returns whether the given flags includes the "strictfp" modifier. Applicable to types and methods.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `STRICTFP` bit is set, and `false` otherwise
Since:
  2.0

#### isSynchronized

    public static boolean isSynchronized​(int flags)

Returns whether the given flags includes the "synchronized" modifier. Applicable only to methods.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `SYNCHRONIZED` bit is set, and `false` otherwise
Since:
  2.0

#### isTransient

    public static boolean isTransient​(int flags)

Returns whether the given flags includes the "transient" modifier. Applicable only to fields.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `TRANSIENT` bit is set, and `false` otherwise
Since:
  2.0

#### isVolatile

    public static boolean isVolatile​(int flags)

Returns whether the given flags includes the "volatile" modifier. Applicable only to fields.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `VOLATILE` bit is set, and `false` otherwise
Since:
  2.0

#### isDefault

    public static boolean isDefault​(int flags)

Returns whether the given flags includes the "default" modifier. Applicable only to methods in interfaces.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `DEFAULT` bit is set and `false` otherwise
Since:
  3.10

#### isSealed

    public static boolean isSealed​(int flags)

Returns whether the given flags includes the "sealed" modifier. Applicable only to types.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `SEALED` bit is set and `false` otherwise
Since:
  3.24

#### isNonSealed

    public static boolean isNonSealed​(int flags)

Returns whether the given flags includes the "non-sealed" modifier. Applicable only to types.

Parameters:
  `flags` - the modifier flags
Returns:
  `true` if the `NON_SEALED` bit is set and `false` otherwise
Since:
  3.24

#### propertyDescriptors

    public static List propertyDescriptors​(int apiLevel)

Returns a list of structural property descriptors for this node type. Clients must not modify the result.

Parameters:
  `apiLevel` - the API level; one of the `AST.JLS*` constants
Returns:
  a list of property descriptors (element type: `StructuralPropertyDescriptor`)
Since:
  3.0

#### getKeyword

    public Modifier.ModifierKeyword getKeyword()

Returns the modifier keyword of this modifier node.

Returns:
  the modifier keyword
Since:
  3.0

#### isAbstract

    public boolean isAbstract()

Answer true if the receiver is the abstract modifier, false otherwise.

Returns:
  true if the receiver is the abstract modifier, false otherwise
Since:
  3.2

#### isAnnotation

    public boolean isAnnotation()

Description copied from interface: `IExtendedModifier`
Returns whether this extended modifier is an annotation.

Specified by:
  `isAnnotation` in interface `IExtendedModifier`
Returns:
  `true` if this is an annotation (instance of a subclass of `Annotation`), and `false` otherwise
See Also:
  `IExtendedModifier.isAnnotation()`

#### isFinal

    public boolean isFinal()

Answer true if the receiver is the final modifier, false otherwise.

Returns:
  true if the receiver is the final modifier, false otherwise
Since:
  3.2

#### isModifier

    public boolean isModifier()

Description copied from interface: `IExtendedModifier`
Returns whether this extended modifier is a standard modifier.

Specified by:
  `isModifier` in interface `IExtendedModifier`
Returns:
  `true` if this is a standard modifier (instance of `Modifier`), and `false` otherwise
See Also:
  `IExtendedModifier.isModifier()`

#### isNative

    public boolean isNative()

Answer true if the receiver is the native modifier, false otherwise.

Returns:
  true if the receiver is the native modifier, false otherwise
Since:
  3.2

#### isPrivate

    public boolean isPrivate()

Answer true if the receiver is the private modifier, false otherwise.

Returns:
  true if the receiver is the private modifier, false otherwise
Since:
  3.2

#### isProtected

    public boolean isProtected()

Answer true if the receiver is the protected modifier, false otherwise.

Returns:
  true if the receiver is the protected modifier, false otherwise
Since:
  3.2

#### isPublic

    public boolean isPublic()

Answer true if the receiver is the public modifier, false otherwise.

Returns:
  true if the receiver is the public modifier, false otherwise
Since:
  3.2

#### isStatic

    public boolean isStatic()

Answer true if the receiver is the static modifier, false otherwise.

Returns:
  true if the receiver is the static modifier, false otherwise
Since:
  3.2

#### isStrictfp

    public boolean isStrictfp()

Answer true if the receiver is the strictfp modifier, false otherwise.

Returns:
  true if the receiver is the strictfp modifier, false otherwise
Since:
  3.2

#### isSynchronized

    public boolean isSynchronized()

Answer true if the receiver is the synchronized modifier, false otherwise.

Returns:
  true if the receiver is the synchronized modifier, false otherwise
Since:
  3.2

#### isTransient

    public boolean isTransient()

Answer true if the receiver is the transient modifier, false otherwise.

Returns:
  true if the receiver is the transient modifier, false otherwise
Since:
  3.2

#### isVolatile

    public boolean isVolatile()

Answer true if the receiver is the volatile modifier, false otherwise.

Returns:
  true if the receiver is the volatile modifier, false otherwise
Since:
  3.2

#### isDefault

    public boolean isDefault()

Answer true if the receiver is the default modifier, false otherwise.

Returns:
  true if the receiver is the default modifier, false otherwise
Since:
  3.10

#### isSealed

    public boolean isSealed()

Answer true if the receiver is the sealed modifier, false otherwise.

Returns:
  true if the receiver is the sealed modifier, false otherwise
Since:
  3.24

#### isNonSealed

    public boolean isNonSealed()

Answer true if the receiver is the non-sealed modifier, false otherwise.

Returns:
  true if the receiver is the non-sealed modifier, false otherwise
Since:
  3.24

#### setKeyword

    public void setKeyword​(Modifier.ModifierKeyword modifierKeyord)

Sets the modifier keyword of this modifier node.

Parameters:
  `modifierKeyord` - the modifier keyword
Throws:
  `IllegalArgumentException` - if the argument is `null`
Since:
  3.0