Class 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 Detail

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