
com.grosner.processor.handler.BaseContainerHandler Maven / Gradle / Ivy
The newest version!
package com.grosner.processor.handler;
import com.google.common.collect.Sets;
import com.grosner.processor.model.ProcessorManager;
import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.Element;
import java.lang.annotation.Annotation;
import java.util.Iterator;
import java.util.Set;
/**
* Author: andrewgrosner
* Contributors: { }
* Description:
*/
public abstract class BaseContainerHandler implements Handler {
@Override
public void handle(ProcessorManager processorManager, RoundEnvironment roundEnvironment) {
final Set annotatedElements = Sets.newHashSet(roundEnvironment.getElementsAnnotatedWith(getAnnotationClass()));
processElements(processorManager, (Set) annotatedElements);
if (annotatedElements.size() > 0) {
Iterator extends Element> iterator = annotatedElements.iterator();
while (iterator.hasNext()) {
Element element = iterator.next();
onProcessElement(processorManager, element);
}
}
}
protected abstract Class getAnnotationClass();
public void processElements(ProcessorManager processorManager, Set annotatedElements) {
}
protected abstract void onProcessElement(ProcessorManager processorManager, Element element);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy