private void processAnnotation(TypeElement annotationElement, RoundEnvironment roundEnv) {
        roundEnv.getElementsAnnotatedWith(annotationElement)
                .stream()
                .filter(element -> element.getKind() == ElementKind.METHOD)
                // Element is always ExecutableElement because it is a method.
                .forEachOrdered(element -> {
                    try {
                        processMethod((ExecutableElement) element);
                    } catch (IOException e) {
                        final StringWriter writer = new StringWriter();
                        e.printStackTrace(new PrintWriter(writer));
                        processingEnv.getMessager().printMessage(
                                Kind.ERROR,
                                "Could not process all elements" + System.lineSeparator() + writer,
                                element);
                    }
                });
    }
Processor that creates a properties file based on the JavaDoc/KDoc description of parameters for interfaces.
This file can be later used if the {@link Description} annotation does not exist for parameters or methods.
annotation-processor/src/main/java/com/linecorp/armeria/server/annotation/processor/DocumentationProcessor.java