Package org.codehaus.groovy.control

## Class ErrorCollector

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

- All Implemented Interfaces:
    `java.io.Serializable`

      public class ErrorCollector
      extends java.lang.Object
      implements java.io.Serializable

  A base class for collecting messages and errors during processing. Each CompilationUnit should have an ErrorCollector, and the SourceUnits should share their ErrorCollector with the CompilationUnit.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected CompilerConfiguration` | `configuration` | Configuration and other settings that control processing
    `protected java.util.LinkedList` | `errors` | ErrorMessages collected during processing
    `protected java.util.LinkedList` | `warnings` | WarningMessages collected during processing

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ErrorCollector​(CompilerConfiguration configuration)` | Initialize the ErrorReporter.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addCollectorContents​(ErrorCollector er)` |
    `void` | `addError​(java.lang.String text, CSTNode context, SourceUnit source)` | Convenience wrapper for addError().
    `void` | `addError​(Message message)` | Adds a non-fatal error to the message set, which may cause a failure if the error threshold is exceeded.
    `void` | `addError​(Message message, boolean fatal)` | Adds an optionally-fatal error to the message set.
    `void` | `addError​(SyntaxException error, SourceUnit source)` | Convenience wrapper for addError().
    `void` | `addErrorAndContinue​(Message message)` | Adds an error to the message set, but does not cause a failure.
    `void` | `addErrorAndContinue​(SyntaxException error, SourceUnit source)` |
    `void` | `addException​(java.lang.Exception cause, SourceUnit source)` |
    `void` | `addFatalError​(Message message)` | Adds a fatal exception to the message set and throws the unit as a PhaseFailedException.
    `void` | `addWarning​(int importance, java.lang.String text, java.lang.Object data, CSTNode context, SourceUnit source)` | Convenience wrapper for addWarning() that won't create an object unless it is relevant.
    `void` | `addWarning​(int importance, java.lang.String text, CSTNode context, SourceUnit source)` | Convenience wrapper for addWarning() that won't create an object unless it is relevant.
    `void` | `addWarning​(WarningMessage message)` | Adds a WarningMessage to the message set.
    `protected void` | `failIfErrors()` | Causes the current phase to fail by throwing a CompilationFailedException.
    `CompilerConfiguration` | `getConfiguration()` |
    `Message` | `getError​(int index)` | Returns the specified error message, or null.
    `int` | `getErrorCount()` | Returns the number of errors.
    `java.util.List` | `getErrors()` | Returns the list of errors, or null if there are none.
    `java.lang.Exception` | `getException​(int index)` | Convenience routine to return the specified error's underlying Exception, or null if it isn't one.
    `Message` | `getLastError()` | Returns the last error reported
    `SyntaxException` | `getSyntaxError​(int index)` | Convenience routine to return the specified error's underlying SyntaxException, or null if it isn't one.
    `WarningMessage` | `getWarning​(int index)` | Returns the specified warning message, or null.
    `int` | `getWarningCount()` | Returns the number of warnings.
    `java.util.List` | `getWarnings()` | Returns the list of warnings, or null if there are none.
    `boolean` | `hasErrors()` | Returns true if there are any errors pending.
    `boolean` | `hasWarnings()` | Returns true if there are any warnings pending.
    `void` | `write​(java.io.PrintWriter writer, Janitor janitor)` | Writes error messages to the specified PrintWriter.

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

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

- - ### Field Detail

    - #### warnings

          protected java.util.LinkedList warnings

      WarningMessages collected during processing

    - #### errors

          protected java.util.LinkedList errors

      ErrorMessages collected during processing

    - #### configuration

          protected CompilerConfiguration configuration

      Configuration and other settings that control processing

  - ### Constructor Detail

    - #### ErrorCollector

          public ErrorCollector​(CompilerConfiguration configuration)

      Initialize the ErrorReporter.

  - ### Method Detail

    - #### addCollectorContents

          public void addCollectorContents​(ErrorCollector er)

    - #### addErrorAndContinue

          public void addErrorAndContinue​(SyntaxException error,
                                          SourceUnit source)
                                   throws CompilationFailedException

      Throws:
        `CompilationFailedException`

    - #### addErrorAndContinue

          public void addErrorAndContinue​(Message message)

      Adds an error to the message set, but does not cause a failure. The message is not required to have a source line and column specified, but it is best practice to try and include that information.

    - #### addError

          public void addError​(Message message)
                        throws CompilationFailedException

      Adds a non-fatal error to the message set, which may cause a failure if the error threshold is exceeded. The message is not required to have a source line and column specified, but it is best practice to try and include that information.
      Throws:
        `CompilationFailedException`

    - #### addError

          public void addError​(Message message,
                               boolean fatal)
                        throws CompilationFailedException

      Adds an optionally-fatal error to the message set. The message is not required to have a source line and column specified, but it is best practice to try and include that information.
      Parameters:
        `fatal` - if true then then processing will stop
      Throws:
        `CompilationFailedException`

    - #### addError

          public void addError​(SyntaxException error,
                               SourceUnit source)
                        throws CompilationFailedException

      Convenience wrapper for addError().
      Throws:
        `CompilationFailedException`

    - #### addError

          public void addError​(java.lang.String text,
                               CSTNode context,
                               SourceUnit source)
                        throws CompilationFailedException

      Convenience wrapper for addError().
      Throws:
        `CompilationFailedException`

    - #### addFatalError

          public void addFatalError​(Message message)
                             throws CompilationFailedException

      Adds a fatal exception to the message set and throws the unit as a PhaseFailedException.
      Throws:
        `CompilationFailedException`

    - #### addException

          public void addException​(java.lang.Exception cause,
                                   SourceUnit source)
                            throws CompilationFailedException

      Throws:
        `CompilationFailedException`

    - #### hasErrors

          public boolean hasErrors()

      Returns true if there are any errors pending.

    - #### getConfiguration

          public CompilerConfiguration getConfiguration()

      Returns:
        the compiler configuration used to create this error collector

    - #### hasWarnings

          public boolean hasWarnings()

      Returns true if there are any warnings pending.

    - #### getWarnings

          public java.util.List getWarnings()

      Returns the list of warnings, or null if there are none.

    - #### getErrors

          public java.util.List getErrors()

      Returns the list of errors, or null if there are none.

    - #### getWarningCount

          public int getWarningCount()

      Returns the number of warnings.

    - #### getErrorCount

          public int getErrorCount()

      Returns the number of errors.

    - #### getWarning

          public WarningMessage getWarning​(int index)

      Returns the specified warning message, or null.

    - #### getError

          public Message getError​(int index)

      Returns the specified error message, or null.

    - #### getLastError

          public Message getLastError()

      Returns the last error reported

    - #### getSyntaxError

          public SyntaxException getSyntaxError​(int index)

      Convenience routine to return the specified error's underlying SyntaxException, or null if it isn't one.

    - #### getException

          public java.lang.Exception getException​(int index)

      Convenience routine to return the specified error's underlying Exception, or null if it isn't one.

    - #### addWarning

          public void addWarning​(WarningMessage message)

      Adds a WarningMessage to the message set.

    - #### addWarning

          public void addWarning​(int importance,
                                 java.lang.String text,
                                 CSTNode context,
                                 SourceUnit source)

      Convenience wrapper for addWarning() that won't create an object unless it is relevant.

    - #### addWarning

          public void addWarning​(int importance,
                                 java.lang.String text,
                                 java.lang.Object data,
                                 CSTNode context,
                                 SourceUnit source)

      Convenience wrapper for addWarning() that won't create an object unless it is relevant.

    - #### failIfErrors

          protected void failIfErrors()
                               throws CompilationFailedException

      Causes the current phase to fail by throwing a CompilationFailedException.
      Throws:
        `CompilationFailedException`

    - #### write

          public void write​(java.io.PrintWriter writer,
                            Janitor janitor)

      Writes error messages to the specified PrintWriter.