Package com.sun.mirror.apt

# Interface AnnotationProcessorEnvironment

All Known Subinterfaces:
  `EclipseAnnotationProcessorEnvironment`

public interface AnnotationProcessorEnvironment
The environment encapsulating the state needed by an annotation processor. An annotation processing tool makes this environment available to all annotation processors.

When an annotation processing tool is invoked, it is given a set of type declarations on which to operate. These are referred to as the specified types. The type declarations said to be included in this invocation consist of the specified types and any types nested within them.

`DeclarationFilter` provides a simple way to select just the items of interest when a method returns a collection of declarations.

Since:
  1.5
Version:
  1.7 04/07/19
Author:
  Joseph D. Darcy, Scott Seligman

## Method Summary

Modifier and Type
Method
Description
`void`
`addListener(AnnotationProcessorListener listener)`
Add a listener.
`Collection<Declaration>`
`getDeclarationsAnnotatedWith(AnnotationTypeDeclaration a)`
Returns the declarations annotated with the given annotation type.
`Declarations`
`getDeclarationUtils()`
Returns an implementation of some utility methods for operating on declarations.
`Filer`
`getFiler()`
Returns the filer used to create new source, class, or auxiliary files.
`Messager`
`getMessager()`
Returns the messager used to report errors, warnings, and other notices.
`Map<String,String>`
`getOptions()`
Returns the options passed to the annotation processing tool.
`PackageDeclaration`
`getPackage(String name)`
Returns the declaration of a package given its fully qualified name.
`Collection<TypeDeclaration>`
`getSpecifiedTypeDeclarations()`
Returns the declarations of the types specified when the annotation processing tool was invoked.
`TypeDeclaration`
`getTypeDeclaration(String name)`
Returns the declaration of a type given its fully qualified name.
`Collection<TypeDeclaration>`
`getTypeDeclarations()`
A convenience method that returns the declarations of the types included in this invocation of the annotation processing tool.
`Types`
`getTypeUtils()`
Returns an implementation of some utility methods for operating on types.
`void`
`removeListener(AnnotationProcessorListener listener)`
Remove a listener.

## Method Details

### getOptions

Map<String,String> getOptions()
Returns the options passed to the annotation processing tool. Options are returned in the form of a map from option name (such as `"-encoding"`) to option value. For an option with no value (such as `"-help"`), the corresponding value in the map is `null`.

Options beginning with `"-A"` are processor-specific. Such options are unrecognized by the tool, but intended to be used by some annotation processor.

Returns:
  the options passed to the tool

### getMessager

Messager getMessager()
Returns the messager used to report errors, warnings, and other notices.

Returns:
  the messager

### getFiler

Filer getFiler()
Returns the filer used to create new source, class, or auxiliary files.

Returns:
  the filer

### getSpecifiedTypeDeclarations

Collection<TypeDeclaration> getSpecifiedTypeDeclarations()
Returns the declarations of the types specified when the annotation processing tool was invoked.

Returns:
  the types specified when the tool was invoked, or an empty collection if there were none

### getPackage

PackageDeclaration getPackage(String name)
Returns the declaration of a package given its fully qualified name.

Parameters:
  `name` - fully qualified package name, or "" for the unnamed package
Returns:
  the declaration of the named package, or null if it cannot be found

### getTypeDeclaration

TypeDeclaration getTypeDeclaration(String name)
Returns the declaration of a type given its fully qualified name.

Parameters:
  `name` - fully qualified type name
Returns:
  the declaration of the named type, or null if it cannot be found

### getTypeDeclarations

Collection<TypeDeclaration> getTypeDeclarations()
A convenience method that returns the declarations of the types included in this invocation of the annotation processing tool.

Returns:
  the declarations of the types included in this invocation of the tool, or an empty collection if there are none

### getDeclarationsAnnotatedWith

Collection<Declaration> getDeclarationsAnnotatedWith(AnnotationTypeDeclaration a)
Returns the declarations annotated with the given annotation type. Only declarations of the types included in this invocation of the annotation processing tool, or declarations of members, parameters, or type parameters declared within those, are returned.

Parameters:
  `a` - annotation type being requested
Returns:
  the declarations annotated with the given annotation type, or an empty collection if there are none

### getDeclarationUtils

Declarations getDeclarationUtils()
Returns an implementation of some utility methods for operating on declarations.

Returns:
  declaration utilities

### getTypeUtils

Types getTypeUtils()
Returns an implementation of some utility methods for operating on types.

Returns:
  type utilities

### addListener

void addListener(AnnotationProcessorListener listener)
Add a listener. If the listener is currently registered to listen, adding it again will have no effect.

Parameters:
  `listener` - The listener to add.
Throws:
  `NullPointerException` - if the listener is null

### removeListener

void removeListener(AnnotationProcessorListener listener)
Remove a listener. If the listener is not currently listening, the method call does nothing.

Parameters:
  `listener` - The listener to remove.
Throws:
  `NullPointerException` - if the listener is null