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

## Field Summary

Fields
Modifier and Type
Field
Description
`static final SimplePropertyDescriptor`
`KEYWORD_PROPERTY`
The "keyword" structural property of this node type (type: `ModuleModifier.ModuleModifierKeyword`).
`static final int`
`NONE`
Module Modifier constant (bit mask, value 0) indicating no module modifiers.
`static final int`
`STATIC_PHASE`
"static" module modifier constant (bit mask).
`static final 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, 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, EitherOr_MultiPattern, 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, 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, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT`

## Method Summary

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

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

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