Package org.eclipse.jdt.core.dom
Class ModuleDeclaration
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.ModuleDeclaration
Module declaration AST node type representing the module descriptor file (added in JLS9 API).
ModuleDeclaration: [ Javadoc ] { Annotation } [ open ] module Name { { RequiresDirective | ExportsDirective | OpensDirective | UsesDirective | ProvidesDirective } }
- Since:
- 3.14
- Restriction:
- This class is not intended to be subclassed by clients.
- Restriction:
- This class is not intended to be instantiated by clients.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final ChildListPropertyDescriptor
The "annotations" structural property of this node type (element type:Annotation
).static final ChildPropertyDescriptor
The "javadoc" structural property of this node type (child type:Javadoc
).static final ChildListPropertyDescriptor
The "moduleDirectives" structural property of this node type (element type:ModuleDirective
).static final ChildPropertyDescriptor
The "name" structural property of this node type (child type:Name
).static final SimplePropertyDescriptor
The "open" structural property of this node type (type:Boolean
).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_FRAGMENT, STRING_LITERAL, STRING_TEMPLATE_COMPONENT, STRING_TEMPLATE_EXPRESSION, 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 TypeMethodDescriptionReturns the live ordered list of annotations of this declaration.Returns the doc comment node.getName()
Returns the name of this module declaration.boolean
isOpen()
Returns whether this module declaration is open or not.Returns the live list of statements in this module.static List
propertyDescriptors
(int apiLevel) Returns a list of structural property descriptors for this node type.Resolves and returns the binding for the module.void
setJavadoc
(Javadoc docComment) Sets or clears the doc comment node.void
Sets the module name in to the given name.void
setOpen
(boolean isOpen) Sets whether this module declaration is open or not.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
-
Field Details
-
JAVADOC_PROPERTY
The "javadoc" structural property of this node type (child type:Javadoc
). -
ANNOTATIONS_PROPERTY
The "annotations" structural property of this node type (element type:Annotation
). -
OPEN_PROPERTY
The "open" structural property of this node type (type:Boolean
). -
NAME_PROPERTY
The "name" structural property of this node type (child type:Name
). -
MODULE_DIRECTIVES_PROPERTY
The "moduleDirectives" structural property of this node type (element type:ModuleDirective
).
-
-
Method Details
-
propertyDescriptors
Returns a list of structural property descriptors for this node type. Clients must not modify the result.- Parameters:
apiLevel
- the API level; one of theAST.JLS*
constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor
)
-
getJavadoc
Returns the doc comment node.- Returns:
- the doc comment node, or
null
if none
-
setJavadoc
Sets or clears the doc comment node.- Parameters:
docComment
- the doc comment node, ornull
if none- Throws:
IllegalArgumentException
- if the doc comment string is invalid
-
annotations
Returns the live ordered list of annotations of this declaration.- Returns:
- the live list of annotations
(element type:
Annotation
)
-
isOpen
public boolean isOpen()Returns whether this module declaration is open or not.- Returns:
true
if this is open, elsefalse
-
setOpen
public void setOpen(boolean isOpen) Sets whether this module declaration is open or not.- Parameters:
isOpen
-true
if this is an open module, andfalse
if not
-
getName
Returns the name of this module declaration.- Returns:
- the module name
-
setName
Sets the module name in to the given name.- Parameters:
name
- the new module name- Throws:
IllegalArgumentException
- if:- the node belongs to a different AST
- the node already has a parent
-
moduleStatements
Returns the live list of statements in this module. Adding and removing nodes from this list affects this node dynamically. All nodes in this list must beModuleDirective
s; attempts to add any other type of node will trigger an exception.- Returns:
- the live list of statements in this module declaration
(element type:
ModuleDirective
)
-
resolveBinding
Resolves and returns the binding for the module.Note that bindings are generally unavailable unless requested when the AST is being built.
- Returns:
- the binding, or
null
if the binding cannot be resolved
-