public boolean process()

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