in dataenum-processor/src/main/java/com/spotify/dataenum/processor/DataEnumProcessor.java [56:96]
public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {
Filer filer = processingEnv.getFiler();
Messager messager = processingEnv.getMessager();
AccessSelector accessSelector =
new AccessSelector(roundEnvironment.getElementsAnnotatedWith(ConstructorAccess.class));
for (Element element : roundEnvironment.getElementsAnnotatedWith(DataEnum.class)) {
try {
Spec spec = SpecParser.parse(element, new ProcessingContext(processingEnv));
if (spec == null) {
continue;
}
OutputSpec outputSpec = OutputSpecFactory.create(spec);
TypeSpec outputTypeSpec =
SpecTypeFactory.create(
outputSpec,
accessSelector.accessModifierFor(outputSpec.outputClass().packageName()),
element);
JavaFile.Builder javaFileBuilder =
JavaFile.builder(outputSpec.outputClass().packageName(), outputTypeSpec);
if (needsCheckNotNull(spec)) {
javaFileBuilder.addStaticImport(DataenumUtils.class, "checkNotNull");
}
if (needsNullSafeEquals(spec)) {
javaFileBuilder.addStaticImport(DataenumUtils.class, "equal");
}
JavaFile javaFile = javaFileBuilder.build();
javaFile.writeTo(filer);
} catch (IOException | ParserException e) {
messager.printMessage(Diagnostic.Kind.ERROR, e.getMessage());
}
}
return false;
}