public boolean process()

in src/it/MCOMPILER-391-processorpath-dep-mgmt/annotation-processor/src/main/java/mcompiler391/SimpleAnnotationProcessor.java [44:74]


    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        if (annotations.isEmpty()) {
            return true;
        }

        Filer filer = processingEnv.getFiler();
        Elements elementUtils = processingEnv.getElementUtils();
        Set<? extends Element> elements =
                roundEnv.getElementsAnnotatedWith(annotations.iterator().next());

        for (Element element : elements) {
            Name name = element.getSimpleName();
            PackageElement packageElement = elementUtils.getPackageOf(element);

            SimpleAnnotation annotation = element.getAnnotation(SimpleAnnotation.class);
            assertThatClassIsOnClasspath(annotation.onClasspath());

            try {
                Name packageName = packageElement.getQualifiedName();
                FileObject resource =
                        filer.createResource(StandardLocation.SOURCE_OUTPUT, packageName, name + ".txt", element);

                Writer writer = resource.openWriter();
                writer.write(name.toString());
                writer.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return !elements.isEmpty();
    }