org.eclipse.jdt.apt.core.env

## Interface EclipseAnnotationProcessorEnvironment

All Superinterfaces:
  AnnotationProcessorEnvironment

    public interface EclipseAnnotationProcessorEnvironment
    extends AnnotationProcessorEnvironment

Extended the APT `AnnotationProcessorEnvironment` to expose extra API.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addTypeDependency(String fullyQualifiedTypeName)` Add a type dependency on the type named `fullyQualifiedTypeName`
`CompilationUnit` `getAST()` Return the AST of the file currently being processed.
`IJavaProject` `getJavaProject()`
`EclipseMessager` `getMessager()` Returns the messager used to report errors, warnings, and other notices.
`Phase` `getPhase()` Indicate whether the processor is being called during a build or during editing (that is, during reconcile).

### Methods inherited from interface com.sun.mirror.apt.AnnotationProcessorEnvironment

`addListener, getDeclarationsAnnotatedWith, getDeclarationUtils, getFiler, getOptions, getPackage, getSpecifiedTypeDeclarations, getTypeDeclaration, getTypeDeclarations, getTypeUtils, removeListener`

### Method Detail

#### getAST

    CompilationUnit getAST()

Return the AST of the file currently being processed.

Returns:
  the root of the fully flushed out DOM/AST of the file that is currently being processed. This AST will contain binding information. Return `null` for if called by a batch processor.

#### getMessager

    EclipseMessager getMessager()

Description copied from interface: `AnnotationProcessorEnvironment`
Returns the messager used to report errors, warnings, and other notices.

Specified by:
  `getMessager` in interface `AnnotationProcessorEnvironment`
Returns:
  a messager for registering diagnostics.

#### getPhase

    Phase getPhase()

Indicate whether the processor is being called during a build or during editing (that is, during reconcile).

Note that processors that behave differently depending on phase may cause inconsistent results, such as problems showing up in the Problems view but not in the editor window. If the goal is to improve edit-time performance by skipping processing during reconcile, it is recommended to use the `PROCESSING_IN_EDITOR_DISABLED` option instead.

Returns:
  the current processing phase: either `Phase.RECONCILE` or `Phase.BUILD`

#### getJavaProject

    IJavaProject getJavaProject()

Returns:
  the java project associated with the current processing phase

#### addTypeDependency

    void addTypeDependency(String fullyQualifiedTypeName)

Add a type dependency on the type named `fullyQualifiedTypeName`

Parameters:
  `fullyQualifiedTypeName` - the fully qualified (dot-separated) name of a type.
Throws:
  `IllegalArgumentException` - if `fullyQualifiedTypeName` cannot be resolved to a type.