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
Modifier and Type
Class
Description
`static class`
`Modifier.ModifierKeyword`
Modifier keywords (typesafe enumeration).

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ABSTRACT`
"abstract" modifier constant (bit mask).
`static final int`
`DEFAULT`
"default" modifier constant (bit mask) (added in JLS8 API).
`static final int`
`FINAL`
"final" modifier constant (bit mask).
`static final SimplePropertyDescriptor`
`KEYWORD_PROPERTY`
The "keyword" structural property of this node type (type: `Modifier.ModifierKeyword`).
`static final int`
`NATIVE`
"native" modifier constant (bit mask).
`static final int`
`NON_SEALED`
"non-sealed" modifier constant (bit mask).
`static final int`
`NONE`
Modifier constant (bit mask, value 0) indicating no modifiers.
`static final int`
`PRIVATE`
"private" modifier constant (bit mask).
`static final int`
`PROTECTED`
"protected" modifier constant (bit mask).
`static final int`
`PUBLIC`
"public" modifier constant (bit mask).
`static final int`
`SEALED`
"sealed" modifier constant (bit mask).
`static final int`
`STATIC`
"static" modifier constant (bit mask).
`static final int`
`STRICTFP`
"strictfp" modifier constant (bit mask).
`static final int`
`SYNCHRONIZED`
"synchronized" modifier constant (bit mask).
`static final int`
`TRANSIENT`
"transient" modifier constant (bit mask).
`static final int`
`VOLATILE`
"volatile" modifier constant (bit mask).
`static final int`
`WHEN`
"when" 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, ENHANCED_FOR_WITH_RECORD_PATTERN, 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, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, 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, RECORD_PATTERN, 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, TAG_PROPERTY, 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

Modifier and Type
Method
Description
`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 Details

### 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

### WHEN

public static final int WHEN
"when" modifier constant (bit mask). Applicable only to types.

Since:
  3.32
See Also:
  - Constant Field Values
Restriction:
  preview feature

### 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 Details

### 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