com.sun.mirror.apt

## Interface AnnotationProcessorFactory

-     public interface AnnotationProcessorFactory

  A factory for creating annotation processors. Each factory is responsible for creating processors for one or more annotation types. The factory is said to support these types.

  Each implementation of an `AnnotationProcessorFactory` must provide a public no-argument constructor to be used by tools to instantiate the factory.

  Since:
    1.5

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `AnnotationProcessor` | `getProcessorFor(Set<AnnotationTypeDeclaration> atds, AnnotationProcessorEnvironment env)` Returns an annotation processor for a set of annotation types.
    `Collection<String>` | `supportedAnnotationTypes()` Returns the names of the annotation types supported by this factory.
    `Collection<String>` | `supportedOptions()` Returns the options recognized by this factory or by any of the processors it may create.

- - ### Method Detail

    - #### supportedOptions

          Collection<String> supportedOptions()

      Returns the options recognized by this factory or by any of the processors it may create. Only processor-specific options are included, each of which begins with `"-A"`. For example, if this factory recognizes options such as `-Adebug -Aloglevel=3`, it will return the strings `"-Adebug"` and `"-Aloglevel"`.

      A tool might use this information to determine if any options provided by a user are unrecognized by any processor, in which case it may wish to report an error.

      Returns:
        the options recognized by this factory or by any of the processors it may create, or an empty collection if none

    - #### supportedAnnotationTypes

          Collection<String> supportedAnnotationTypes()

      Returns the names of the annotation types supported by this factory. An element of the result may be the canonical (fully qualified) name of a supported annotation type. Alternately it may be of the form `"name.*"` representing the set of all annotation types with canonical names beginning with `"name."` Finally, `"*"` by itself represents the set of all annotation types.
      Returns:
        the names of the annotation types supported by this factory

    - #### getProcessorFor

          AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds,
                                            AnnotationProcessorEnvironment env)

      Returns an annotation processor for a set of annotation types. The set will be empty if the factory supports "`*`" and the specified type declarations have no annotations. Note that the set of annotation types may be empty for other reasons, such as giving the factory an opportunity to register a listener. An `AnnotationProcessorFactory` must gracefully handle an empty set of annotations; an appropriate response to an empty set will often be returning `AnnotationProcessors.NO_OP`.
      Parameters:
        `atds` - type declarations of the annotation types to be processed
        `env` - environment to use during processing
      Returns:
        an annotation processor for the given annotation types, or `null` if the types are not supported or the processor cannot be created

Copyright © 2004, 2014, Oracle and/or its affiliates. All rights reserved.