Eclipse JDT
Release 3.1

org.eclipse.jdt.core.dom
Class ImportDeclaration

java.lang.Object
  extended byorg.eclipse.jdt.core.dom.ASTNode
      extended byorg.eclipse.jdt.core.dom.ImportDeclaration

public class ImportDeclaration
extends ASTNode

Import declaration AST node type. For JLS2:

 ImportDeclaration:
    import Name [ . * ] ;
 
For JLS3, static was added:
 ImportDeclaration:
    import [ static ] Name [ . * ] ;
 

Since:
2.0

Field Summary
static ChildPropertyDescriptor NAME_PROPERTY
          The "name" structural property of this node type.
static SimplePropertyDescriptor ON_DEMAND_PROPERTY
          The "onDemand" structural property of this node type.
static SimplePropertyDescriptor STATIC_PROPERTY
          The "static" structural property of this node type (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, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVADOC, LABELED_STATEMENT, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
 
Method Summary
 Name getName()
          Returns the name imported by this declaration.
 boolean isOnDemand()
          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).
static List propertyDescriptors(int apiLevel)
          Returns a list of structural property descriptors for this node type.
 IBinding resolveBinding()
          Resolves and returns the binding for the package, type, field, or method named in this import declaration.
 void setName(Name name)
          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, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME_PROPERTY

public static final ChildPropertyDescriptor NAME_PROPERTY
The "name" structural property of this node type.

Since:
3.0

ON_DEMAND_PROPERTY

public static final SimplePropertyDescriptor ON_DEMAND_PROPERTY
The "onDemand" structural property of this node type.

Since:
3.0

STATIC_PROPERTY

public static final SimplePropertyDescriptor STATIC_PROPERTY
The "static" structural property of this node type (added in JLS3 API).

Since:
3.1
Method Detail

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

getName

public Name 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

public void setName(Name name)
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, and false 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, and false 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, and false 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).

Parameters:
isStatic - true if this is a static import, and false if this is a regular import
Throws:
UnsupportedOperationException - if this operation is used in a JLS2 AST
Since:
3.1

resolveBinding

public IBinding 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

Eclipse JDT
Release 3.1

Copyright (c) IBM Corp. and others 2000, 2005. All Rights Reserved.