private Map extractFieldsAnnotations()

in maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java [464:496]


    private Map<String, JavaAnnotatedElement> extractFieldsAnnotations(
            JavaClass javaClass, Map<String, JavaClass> javaClassesMap) {
        try {
            Map<String, JavaAnnotatedElement> rawParams = new TreeMap<>();

            // we have to add the parent fields first, so that they will be overwritten by the local fields if
            // that actually happens...
            JavaClass superClass = javaClass.getSuperJavaClass();

            if (superClass != null) {
                if (!superClass.getFields().isEmpty()) {
                    rawParams = extractFieldsAnnotations(superClass, javaClassesMap);
                }
                // maybe sources comes from scan of sources artifact
                superClass = javaClassesMap.get(superClass.getFullyQualifiedName());
                if (superClass != null && !superClass.getFields().isEmpty()) {
                    rawParams = extractFieldsAnnotations(superClass, javaClassesMap);
                }
            } else {

                rawParams = new TreeMap<>();
            }

            for (JavaField field : javaClass.getFields()) {
                rawParams.put(field.getName(), field);
            }

            return rawParams;
        } catch (NoClassDefFoundError e) {
            LOGGER.warn("Failed extracting parameters from " + javaClass);
            throw e;
        }
    }