org.eclipse.jdt.core.dom

## Class ModuleModifier

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

    public final class ModuleModifier
    extends ASTNode

Module Modifier node - represents the modifiers for the requires directive in module declaration (added in JLS9 API).

     ModuleModifier:
        static
        transitive

The numeric values of these flags match the ones for class files as described in the Java Virtual Machine Specification. Note that the value of static does not correspond to the value of `Modifier.STATIC`!

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

### Nested Class Summary

Nested Classes
`static class` `ModuleModifier.ModuleModifierKeyword` Module Modifier keywords (typesafe enumeration).

### Field Summary

Fields
`static SimplePropertyDescriptor` `KEYWORD_PROPERTY` The "keyword" structural property of this node type (type: `ModuleModifier.ModuleModifierKeyword`).
`static int` `NONE` Module Modifier constant (bit mask, value 0) indicating no module modifiers.
`static int` `STATIC_PHASE` "static" module modifier constant (bit mask).
`static int` `TRANSITIVE` "transitive" module 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, 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, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, 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_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`ModuleModifier.ModuleModifierKeyword` `getKeyword()` Returns the modifier keyword of this modifier node.
`boolean` `isStatic()` Answer true if the receiver is the static module modifier, false otherwise.
`static boolean` `isStatic(int flags)` Returns whether the given flags includes the "static" module modifier.
`boolean` `isTransitive()` Answer true if the receiver is the transitive module modifier, false otherwise.
`static boolean` `isTransitive(int flags)` Returns whether the given flags includes the "transitive" module modifier.
`static List` `propertyDescriptors(int apiLevel)` Returns a list of structural property descriptors for this node type.
`void` `setKeyword(ModuleModifier.ModuleModifierKeyword modifierKeyord)` Sets the module modifier keyword of this module 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

#### KEYWORD_PROPERTY

    public static final SimplePropertyDescriptor KEYWORD_PROPERTY

The "keyword" structural property of this node type (type: `ModuleModifier.ModuleModifierKeyword`).

#### NONE

    public static final int NONE

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

See Also:
  Constant Field Values

#### STATIC_PHASE

    public static final int STATIC_PHASE

"static" module modifier constant (bit mask). Applicable to requires directive.

Note that the value of static does not correspond to the value of `Modifier.STATIC`!

See Also:
  Constant Field Values

#### TRANSITIVE

    public static final int TRANSITIVE

"transitive" module modifier constant (bit mask). Applicable only to requires directive.

See Also:
  Constant Field Values

### Method Detail

#### isTransitive

    public static boolean isTransitive(int flags)

Returns whether the given flags includes the "transitive" module modifier.

Parameters:
  `flags` - the module modifier flags
Returns:
  `true` if the `TRANSITIVE` bit is set, and `false` otherwise

#### isStatic

    public static boolean isStatic(int flags)

Returns whether the given flags includes the "static" module modifier.

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

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

#### getKeyword

    public ModuleModifier.ModuleModifierKeyword getKeyword()

Returns the modifier keyword of this modifier node.

Returns:
  the modifier keyword

#### setKeyword

    public void setKeyword(ModuleModifier.ModuleModifierKeyword modifierKeyord)

Sets the module modifier keyword of this module modifier node.

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

#### isStatic

    public boolean isStatic()

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

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

#### isTransitive

    public boolean isTransitive()

Answer true if the receiver is the transitive module modifier, false otherwise.

Returns:
  true if the receiver is the transitive module modifier, false otherwise