Class ImportDeclaration

java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.ImportDeclaration

public class ImportDeclaration extends ASTNode
Import declaration AST node type.
 ImportDeclaration:
    import [ static ] Name [ . * ] ;
 
Since:
2.0
Restriction:
This class is not intended to be instantiated by clients.
  • Field Details

    • NAME_PROPERTY

      public static final ChildPropertyDescriptor NAME_PROPERTY
      The "name" structural property of this node type (child type: Name).
      Since:
      3.0
    • ON_DEMAND_PROPERTY

      public static final SimplePropertyDescriptor ON_DEMAND_PROPERTY
      The "onDemand" structural property of this node type (type: Boolean).
      Since:
      3.0
    • STATIC_PROPERTY

      public static final SimplePropertyDescriptor STATIC_PROPERTY
      The "static" structural property of this node type (type: Boolean) (added in JLS3 API).
      Since:
      3.1
    • MODIFIERS_PROPERTY

      public static final ChildListPropertyDescriptor 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

      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
    • modifiers

      public List 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
    • 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). Note, that in JLS23 API this method creates a Modifier without source positions (or removes, if isStatic == false), so it should not be invoked in situations where valid source positions are required.
      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
      See Also:
    • 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