Class ExtensionAnnotationProcessor

  • All Implemented Interfaces:
    javax.annotation.processing.Processor

    public class ExtensionAnnotationProcessor
    extends javax.annotation.processing.AbstractProcessor
    Processes Extension annotations and generates an ExtensionStorage. You can specify the concrete ExtensionStorage via processor's environment options (ProcessingEnvironment.getOptions()) or system property. In both variants the option/property name is pf4j.storageClassName.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void error​(java.lang.String message, java.lang.Object... args)  
      void error​(javax.lang.model.element.Element element, java.lang.String message, java.lang.Object... args)  
      private java.util.List<javax.lang.model.element.TypeElement> findExtensionPoints​(javax.lang.model.element.TypeElement extensionElement)  
      java.lang.String getBinaryName​(javax.lang.model.element.TypeElement element)  
      private javax.lang.model.element.TypeElement getElement​(javax.lang.model.type.TypeMirror typeMirror)  
      private javax.lang.model.type.TypeMirror getExtensionPointType()  
      java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> getExtensions()  
      java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> getOldExtensions()  
      javax.annotation.processing.ProcessingEnvironment getProcessingEnvironment()  
      ExtensionStorage getStorage()  
      java.util.Set<java.lang.String> getSupportedAnnotationTypes()  
      java.util.Set<java.lang.String> getSupportedOptions()  
      javax.lang.model.SourceVersion getSupportedSourceVersion()  
      void info​(java.lang.String message, java.lang.Object... args)  
      void info​(javax.lang.model.element.Element element, java.lang.String message, java.lang.Object... args)  
      void init​(javax.annotation.processing.ProcessingEnvironment processingEnv)  
      private void initIgnoreExtensionPoint()  
      private void initStorage()  
      private boolean isExtension​(javax.lang.model.type.TypeMirror typeMirror)  
      boolean process​(java.util.Set<? extends javax.lang.model.element.TypeElement> annotations, javax.annotation.processing.RoundEnvironment roundEnv)  
      private void processExtensionElement​(javax.lang.model.element.Element element)  
      • Methods inherited from class javax.annotation.processing.AbstractProcessor

        getCompletions, isInitialized
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • STORAGE_CLASS_NAME

        private static final java.lang.String STORAGE_CLASS_NAME
        See Also:
        Constant Field Values
      • IGNORE_EXTENSION_POINT

        private static final java.lang.String IGNORE_EXTENSION_POINT
        See Also:
        Constant Field Values
      • extensions

        private java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> extensions
      • oldExtensions

        private java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> oldExtensions
      • ignoreExtensionPoint

        private boolean ignoreExtensionPoint
    • Constructor Detail

      • ExtensionAnnotationProcessor

        public ExtensionAnnotationProcessor()
    • Method Detail

      • init

        public void init​(javax.annotation.processing.ProcessingEnvironment processingEnv)
        Specified by:
        init in interface javax.annotation.processing.Processor
        Overrides:
        init in class javax.annotation.processing.AbstractProcessor
      • getSupportedSourceVersion

        public javax.lang.model.SourceVersion getSupportedSourceVersion()
        Specified by:
        getSupportedSourceVersion in interface javax.annotation.processing.Processor
        Overrides:
        getSupportedSourceVersion in class javax.annotation.processing.AbstractProcessor
      • getSupportedAnnotationTypes

        public java.util.Set<java.lang.String> getSupportedAnnotationTypes()
        Specified by:
        getSupportedAnnotationTypes in interface javax.annotation.processing.Processor
        Overrides:
        getSupportedAnnotationTypes in class javax.annotation.processing.AbstractProcessor
      • getSupportedOptions

        public java.util.Set<java.lang.String> getSupportedOptions()
        Specified by:
        getSupportedOptions in interface javax.annotation.processing.Processor
        Overrides:
        getSupportedOptions in class javax.annotation.processing.AbstractProcessor
      • process

        public boolean process​(java.util.Set<? extends javax.lang.model.element.TypeElement> annotations,
                               javax.annotation.processing.RoundEnvironment roundEnv)
        Specified by:
        process in interface javax.annotation.processing.Processor
        Specified by:
        process in class javax.annotation.processing.AbstractProcessor
      • getProcessingEnvironment

        public javax.annotation.processing.ProcessingEnvironment getProcessingEnvironment()
      • error

        public void error​(java.lang.String message,
                          java.lang.Object... args)
      • error

        public void error​(javax.lang.model.element.Element element,
                          java.lang.String message,
                          java.lang.Object... args)
      • info

        public void info​(java.lang.String message,
                         java.lang.Object... args)
      • info

        public void info​(javax.lang.model.element.Element element,
                         java.lang.String message,
                         java.lang.Object... args)
      • getBinaryName

        public java.lang.String getBinaryName​(javax.lang.model.element.TypeElement element)
      • getExtensions

        public java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> getExtensions()
      • getOldExtensions

        public java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> getOldExtensions()
      • findExtensionPoints

        private java.util.List<javax.lang.model.element.TypeElement> findExtensionPoints​(javax.lang.model.element.TypeElement extensionElement)
      • isExtension

        private boolean isExtension​(javax.lang.model.type.TypeMirror typeMirror)
      • getExtensionPointType

        private javax.lang.model.type.TypeMirror getExtensionPointType()
      • initStorage

        private void initStorage()
      • initIgnoreExtensionPoint

        private void initIgnoreExtensionPoint()
      • processExtensionElement

        private void processExtensionElement​(javax.lang.model.element.Element element)
      • getElement

        private javax.lang.model.element.TypeElement getElement​(javax.lang.model.type.TypeMirror typeMirror)