org.eclipse.wst.jsdt.core.dom
Class ImportDeclaration

java.lang.Object
  extended by org.eclipse.wst.jsdt.core.dom.ASTNode
      extended by org.eclipse.wst.jsdt.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 [ . * ] ;
 

Note: This Class only applies to ECMAScript 4 which is not yet supported

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.


Field Summary
static SimplePropertyDescriptor ISFILE_PROPERTY
           
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.wst.jsdt.core.dom.ASTNode
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, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, MODIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, WITH_STATEMENT
 
Method Summary
 Name getName()
          Returns the name imported by this declaration.
 boolean isFileImport()
           
 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 java.util.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 setIsFileImport(boolean isFileImport)
           
 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.wst.jsdt.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
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME_PROPERTY

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


ON_DEMAND_PROPERTY

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


STATIC_PROPERTY

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


ISFILE_PROPERTY

public static final SimplePropertyDescriptor ISFILE_PROPERTY
Method Detail

propertyDescriptors

public static java.util.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)

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:
java.lang.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

setIsFileImport

public void setIsFileImport(boolean isFileImport)

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:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST

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:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST

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

isFileImport

public boolean isFileImport()