
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