Package org.codehaus.groovy.control

## Class ProcessingUnit

- java.lang.Object
- - org.codehaus.groovy.control.ProcessingUnit

- Direct Known Subclasses:
    `CompilationUnit`, `SourceUnit`

      public abstract class ProcessingUnit
      extends Object

  A base class for data structures that can collect messages and errors during processing.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected GroovyClassLoader` | `classLoader` | The ClassLoader to use during processing
    `protected CompilerConfiguration` | `configuration` | Configuration and other settings that control processing
    `protected ErrorCollector` | `errorCollector` | a helper to share errors and report them
    `protected int` | `phase` | The current phase
    `protected boolean` | `phaseComplete` | True if phase is finished

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ProcessingUnit​(CompilerConfiguration configuration, GroovyClassLoader classLoader, ErrorCollector errorCollector)` | Initializes the ProcessingUnit to the empty state.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `completePhase()` | Marks the current phase complete and processes any errors.
    `void` | `configure​(CompilerConfiguration configuration)` | Reconfigures the ProcessingUnit.
    `GroovyClassLoader` | `getClassLoader()` | Returns the class loader in use by this ProcessingUnit.
    `CompilerConfiguration` | `getConfiguration()` | Gets the CompilerConfiguration for this ProcessingUnit.
    `ErrorCollector` | `getErrorCollector()` | Errors found during the compilation should be reported through the ErrorCollector.
    `int` | `getPhase()` | Returns the current phase.
    `String` | `getPhaseDescription()` | Returns the description for the current phase.
    `void` | `gotoPhase​(int phase)` | Wraps up any pending operations for the current phase and switches to the given phase.
    `boolean` | `isPhaseComplete()` |
    `void` | `nextPhase()` | A synonym for `gotoPhase(getPhase() + 1)`.
    `void` | `setClassLoader​(GroovyClassLoader loader)` | Sets the class loader for use by this ProcessingUnit.
    `void` | `setConfiguration​(CompilerConfiguration configuration)` | Sets the CompilerConfiguration for this ProcessingUnit.

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

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

- - ### Field Detail

    - #### phase

          protected int phase

      The current phase

    - #### phaseComplete

          protected boolean phaseComplete

      True if phase is finished

    - #### configuration

          protected CompilerConfiguration configuration

      Configuration and other settings that control processing

    - #### classLoader

          protected GroovyClassLoader classLoader

      The ClassLoader to use during processing

    - #### errorCollector

          protected ErrorCollector errorCollector

      a helper to share errors and report them

  - ### Constructor Detail

    - #### ProcessingUnit

          public ProcessingUnit​(CompilerConfiguration configuration,
                                GroovyClassLoader classLoader,
                                ErrorCollector errorCollector)

      Initializes the ProcessingUnit to the empty state.

  - ### Method Detail

    - #### configure

          public void configure​(CompilerConfiguration configuration)

      Reconfigures the ProcessingUnit.

    - #### getConfiguration

          public CompilerConfiguration getConfiguration()

      Gets the CompilerConfiguration for this ProcessingUnit.

    - #### setConfiguration

          public final void setConfiguration​(CompilerConfiguration configuration)

      Sets the CompilerConfiguration for this ProcessingUnit.

    - #### getClassLoader

          public GroovyClassLoader getClassLoader()

      Returns the class loader in use by this ProcessingUnit.

    - #### setClassLoader

          public void setClassLoader​(GroovyClassLoader loader)

      Sets the class loader for use by this ProcessingUnit.

    - #### getErrorCollector

          public ErrorCollector getErrorCollector()

      Errors found during the compilation should be reported through the ErrorCollector.

    - #### getPhase

          public int getPhase()

      Returns the current phase.

    - #### getPhaseDescription

          public String getPhaseDescription()

      Returns the description for the current phase.

    - #### isPhaseComplete

          public boolean isPhaseComplete()

    - #### completePhase

          public void completePhase()
                             throws CompilationFailedException

      Marks the current phase complete and processes any errors.
      Throws:
        `CompilationFailedException`

    - #### nextPhase

          public void nextPhase()
                         throws CompilationFailedException

      A synonym for `gotoPhase(getPhase() + 1)`.
      Throws:
        `CompilationFailedException`

    - #### gotoPhase

          public void gotoPhase​(int phase)
                         throws CompilationFailedException

      Wraps up any pending operations for the current phase and switches to the given phase.
      Throws:
        `CompilationFailedException`