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

org.test4j.mock.processor.MockProcessor Maven / Gradle / Ivy

package org.test4j.mock.processor;

import com.google.auto.service.AutoService;
import org.test4j.mock.Mocks;
import org.test4j.mock.processor.filer.MocksAttribute;
import org.test4j.mock.processor.filer.MocksFiler;
import org.test4j.mock.processor.filer.StubsBeanFiler;

import javax.annotation.processing.Processor;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
import java.util.Set;

@AutoService(Processor.class)
@SupportedSourceVersion(SourceVersion.RELEASE_8)
@SupportedAnnotationTypes("org.test4j.mock.Mocks")
public class MockProcessor extends BaseProcessor {

    private static final String ATTR_VALUE = "value()";
    private static final String ATTR_BEANS = "beans()";

    @Override
    protected Class getAnnotationClass() {
        return Mocks.class;
    }

    @Override
    protected void doProcessor(Element element, Mocks mocks) {
        String fullName = ((TypeElement) element).getQualifiedName().toString();
        Set stubs = MocksAttribute.getClasses((TypeElement) element, ATTR_VALUE);
        Set beans = MocksAttribute.getClasses((TypeElement) element, ATTR_BEANS);
        stubs.addAll(beans);
        if (!stubs.isEmpty()) {
            new MocksFiler(fullName, mocks.suffixMocks(), stubs).writeFiler();
        }
        if (!beans.isEmpty()) {
            new StubsBeanFiler(fullName, mocks.suffixConfiguration(), beans).writeFiler();
        }
//        this.addMocksField(this, trees, (TypeElement) element);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy