Class ImportDeclaration
ImportDeclaration: import [ static ] Name [ . * ] ;
- Since:
- 2.0
- Restriction:
- This class is not intended to be instantiated by clients.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final ChildListPropertyDescriptor
The "modifiers" structural property of this node type (element type:IExtendedModifier
) (added in JLS23 API).static final ChildPropertyDescriptor
The "name" structural property of this node type (child type:Name
).static final SimplePropertyDescriptor
The "onDemand" structural property of this node type (type:Boolean
).static final SimplePropertyDescriptor
The "static" structural property of this node type (type:Boolean
) (added in JLS3 API).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 TypeMethodDescriptionint
Returns the modifiers explicitly specified on this declaration.getName()
Returns the name imported by this declaration.boolean
Returns whether this import declaration is an on-demand or a single-type import.boolean
isStatic()
Returns whether this import declaration is a static import (added in JLS3 API).Returns the live ordered list of modifiers of this declaration (added in JLS23 API).static List
propertyDescriptors
(int apiLevel) Returns a list of structural property descriptors for this node type.Resolves and returns the binding for the package, type, field, or method named in this import declaration.void
Sets the name of this import declaration to the given name.void
setOnDemand
(boolean onDemand) Sets whether this import declaration is an on-demand or a single-type import.void
setStatic
(boolean isStatic) Sets whether this import declaration is a static import (added in JLS3 API).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
-
NAME_PROPERTY
The "name" structural property of this node type (child type:Name
).- Since:
- 3.0
-
ON_DEMAND_PROPERTY
The "onDemand" structural property of this node type (type:Boolean
).- Since:
- 3.0
-
STATIC_PROPERTY
The "static" structural property of this node type (type:Boolean
) (added in JLS3 API).- Since:
- 3.1
-
MODIFIERS_PROPERTY
The "modifiers" structural property of this node type (element type:IExtendedModifier
) (added in JLS23 API).- Since:
- 3.40
- Restriction:
- preview feature
-
-
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
) - Since:
- 3.0
-
modifiers
Returns the live ordered list of modifiers of this declaration (added in JLS23 API).- Returns:
- the live list of modifiers (element type:
IExtendedModifier
) - Throws:
UnsupportedOperationException
- if this operation is used in an AST below JLS23- Since:
- 3.39
- Restriction:
- preview feature
-
getModifiers
public int getModifiers()Returns the modifiers explicitly specified on this declaration.This method is a convenience method that computes these flags based on availability:
- At JLS23 it is computed from from
modifiers()
. - At JLS3 only the information from
isStatic()
is available. - At lower JLS
0
is constantly returned.
- Returns:
- the bit-wise "or" of
Modifier
constants - Since:
- 3.39
- See Also:
- Restriction:
- preview feature
- At JLS23 it is computed from from
-
getName
Returns the name imported by this declaration.For a regular on-demand import, this is the name of a package. For a static on-demand import, this is the qualified name of a type. For a regular single-type import, this is the qualified name of a type. For a static single-type import, this is the qualified name of a static member of a type.
- Returns:
- the imported name node
-
setName
Sets the name of this import declaration to the given name.For a regular on-demand import, this is the name of a package. For a static on-demand import, this is the qualified name of a type. For a regular single-type import, this is the qualified name of a type. For a static single-type import, this is the qualified name of a static member of a type.
- Parameters:
name
- the new import name- Throws:
IllegalArgumentException
- if:- the node belongs to a different AST
- the node already has a parent
-
isOnDemand
public boolean isOnDemand()Returns whether this import declaration is an on-demand or a single-type import.- Returns:
true
if this is an on-demand import, andfalse
if this is a single type import
-
setOnDemand
public void setOnDemand(boolean onDemand) Sets whether this import declaration is an on-demand or a single-type import.- Parameters:
onDemand
-true
if this is an on-demand import, andfalse
if this is a single type import
-
isStatic
public boolean isStatic()Returns whether this import declaration is a static import (added in JLS3 API).- Returns:
true
if this is a static import, andfalse
if this is a regular import- Throws:
UnsupportedOperationException
- if this operation is used in a JLS2 AST- Since:
- 3.1
-
setStatic
public void setStatic(boolean isStatic) Sets whether this import declaration is a static import (added in JLS3 API). Note, that in JLS23 API this method creates aModifier
without source positions (or removes, ifisStatic == false
), so it should not be invoked in situations where valid source positions are required.- Parameters:
isStatic
-true
if this is a static import, andfalse
if this is a regular import- Throws:
UnsupportedOperationException
- if this operation is used in a JLS2 AST- Since:
- 3.1
- See Also:
-
resolveBinding
Resolves and returns the binding for the package, type, field, or method named in this import declaration.The name specified in a non-static single-type import can resolve to a type (only). The name specified in a non-static on-demand import can itself resolve to either a package or a type. For static imports (introduced in JLS3), the name specified in a static on-demand import can itself resolve to a type (only). The name specified in a static single import can resolve to a type, field, or method; in cases where the name could be resolved to more than one element with that name (for example, two methods both named "max", or a method and a field), this method returns one of the plausible bindings.
Note that bindings are generally unavailable unless requested when the AST is being built.
- Returns:
- a package, type, field, or method binding, or
null
if the binding cannot be resolved
-