Package org.codehaus.groovy.control.customizers

# Class ImportCustomizer

java.lang.Object
org.codehaus.groovy.control.customizers.CompilationCustomizer
org.codehaus.groovy.control.customizers.ImportCustomizer

All Implemented Interfaces:
  `CompilationUnit.IPrimaryClassNodeOperation`

public class ImportCustomizer extends CompilationCustomizer
This compilation customizer allows adding various types of imports to the compilation unit. Supports adding:

- standard imports via `addImports(String...)` or `addImport(String, String)`
- star imports via `addStarImports(String...)`
- static imports via `addStaticImport(String, String)` or `addStaticImport(String, String, String)`
- static star imports via `addStaticStars(String...)`
- module imports via `addModuleImports(String...)`

Since:
  1.8.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ImportCustomizer()`
  Creates an import customizer that runs during conversion.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ImportCustomizer`
  `addImport(String alias, String className)`
  Adds a regular import with an explicit alias.
  `ImportCustomizer`
  `addImports(String... classNames)`
  Adds one or more regular imports.
  `ImportCustomizer`
  `addModuleImports(String... moduleNames)`
  Adds module imports.
  `ImportCustomizer`
  `addStarImports(String... packageNames)`
  Adds one or more star imports.
  `ImportCustomizer`
  `addStaticImport(String className, String fieldName)`
  Adds a static import for a single member without an alias.
  `ImportCustomizer`
  `addStaticImport(String alias, String className, String fieldName)`
  Adds a static import for a single member with an alias.
  `ImportCustomizer`
  `addStaticStars(String... classNames)`
  Adds one or more static star imports.
  `void`
  `call(SourceUnit source, GeneratorContext context, ClassNode classNode)`
  Applies the configured imports to the module represented by the current class.

  ### Methods inherited from class org.codehaus.groovy.control.customizers.CompilationCustomizer

  `getPhase`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.codehaus.groovy.control.CompilationUnit.IPrimaryClassNodeOperation

  `doPhaseOperation, needSortedInput`

- ## Constructor Details

  - ### ImportCustomizer

    public ImportCustomizer()
    Creates an import customizer that runs during conversion.

- ## Method Details

  - ### call

    public void call(SourceUnit source, GeneratorContext context, ClassNode classNode)
    Applies the configured imports to the module represented by the current class.
    Parameters:
      `source` - the source unit being customized
      `context` - the current generator context
      `classNode` - the class node being customized

  - ### addImport

    public ImportCustomizer addImport(String alias, String className)
    Adds a regular import with an explicit alias.
    Parameters:
      `alias` - the import alias
      `className` - the fully qualified class name to import
    Returns:
      this customizer

  - ### addStaticImport

    public ImportCustomizer addStaticImport(String className, String fieldName)
    Adds a static import for a single member without an alias.
    Parameters:
      `className` - the fully qualified declaring class name
      `fieldName` - the static member name
    Returns:
      this customizer

  - ### addStaticImport

    public ImportCustomizer addStaticImport(String alias, String className, String fieldName)
    Adds a static import for a single member with an alias.
    Parameters:
      `alias` - the alias to expose
      `className` - the fully qualified declaring class name
      `fieldName` - the static member name
    Returns:
      this customizer

  - ### addImports

    public ImportCustomizer addImports(String... classNames)
    Adds one or more regular imports.
    Parameters:
      `classNames` - the fully qualified class names to import
    Returns:
      this customizer

  - ### addStarImports

    public ImportCustomizer addStarImports(String... packageNames)
    Adds one or more star imports.
    Parameters:
      `packageNames` - the package names to import from
    Returns:
      this customizer

  - ### addStaticStars

    public ImportCustomizer addStaticStars(String... classNames)
    Adds one or more static star imports.
    Parameters:
      `classNames` - the fully qualified class names to import members from
    Returns:
      this customizer

  - ### addModuleImports

    public ImportCustomizer addModuleImports(String... moduleNames)
    Adds module imports. Each module name (e.g. `"java.sql"`) is expanded at compilation time into star imports for all packages exported by that module, including packages from transitively required modules (per JEP 476).
    Parameters:
      `moduleNames` - the JPMS module names to import
    Since:
      6.0.0