All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 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