Interface AstModifyingAnnotationProcessor


  • @Experimental("This interface may change in future revisions")
    public interface AstModifyingAnnotationProcessor
    A contract to be implemented by other annotation processors which - against the design philosophy of JSR 269 - alter the types under compilation.

    This contract will be queried by MapStruct when examining types referenced by mappers to be generated, most notably the source and target types of mapping methods. If at least one AST-modifying processor announces further changes to such type, the generation of the affected mapper(s) will be deferred to a future round in the annotation processing cycle.

    Implementations are discovered via the service loader, i.e. a JAR providing an AST-modifying processor needs to declare its implementation in a file META-INF/services/org.mapstruct.ap.spi.AstModifyingAnnotationProcessor.

    Author:
    Gunnar Morling
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean isTypeComplete​(TypeMirror type)
      Whether the specified type has been fully processed by this processor or not (i.e. this processor will amend the given type's structure after this invocation).
    • Method Detail

      • isTypeComplete

        boolean isTypeComplete​(TypeMirror type)
        Whether the specified type has been fully processed by this processor or not (i.e. this processor will amend the given type's structure after this invocation).
        Parameters:
        type - The type of interest
        Returns:
        true if this processor has fully processed the given type (or has no interest in processing this type altogether), false otherwise.