Package org.pf4j.processor
Class ExtensionAnnotationProcessor
- java.lang.Object
-
- javax.annotation.processing.AbstractProcessor
-
- org.pf4j.processor.ExtensionAnnotationProcessor
-
- All Implemented Interfaces:
javax.annotation.processing.Processor
public class ExtensionAnnotationProcessor extends javax.annotation.processing.AbstractProcessor
ProcessesExtension
annotations and generates anExtensionStorage
. You can specify the concreteExtensionStorage
via processor's environment options (ProcessingEnvironment.getOptions()
) or system property. In both variants the option/property name ispf4j.storageClassName
.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.util.Set<java.lang.String>>
extensions
private static java.lang.String
IGNORE_EXTENSION_POINT
private boolean
ignoreExtensionPoint
private java.util.Map<java.lang.String,java.util.Set<java.lang.String>>
oldExtensions
private ExtensionStorage
storage
private static java.lang.String
STORAGE_CLASS_NAME
-
Constructor Summary
Constructors Constructor Description ExtensionAnnotationProcessor()
-
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)
-
-
-
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
-
storage
private ExtensionStorage storage
-
ignoreExtensionPoint
private boolean ignoreExtensionPoint
-
-
Method Detail
-
init
public void init(javax.annotation.processing.ProcessingEnvironment processingEnv)
- Specified by:
init
in interfacejavax.annotation.processing.Processor
- Overrides:
init
in classjavax.annotation.processing.AbstractProcessor
-
getSupportedSourceVersion
public javax.lang.model.SourceVersion getSupportedSourceVersion()
- Specified by:
getSupportedSourceVersion
in interfacejavax.annotation.processing.Processor
- Overrides:
getSupportedSourceVersion
in classjavax.annotation.processing.AbstractProcessor
-
getSupportedAnnotationTypes
public java.util.Set<java.lang.String> getSupportedAnnotationTypes()
- Specified by:
getSupportedAnnotationTypes
in interfacejavax.annotation.processing.Processor
- Overrides:
getSupportedAnnotationTypes
in classjavax.annotation.processing.AbstractProcessor
-
getSupportedOptions
public java.util.Set<java.lang.String> getSupportedOptions()
- Specified by:
getSupportedOptions
in interfacejavax.annotation.processing.Processor
- Overrides:
getSupportedOptions
in classjavax.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 interfacejavax.annotation.processing.Processor
- Specified by:
process
in classjavax.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()
-
getStorage
public ExtensionStorage getStorage()
-
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)
-
-