private void parseAdapterAnnotation()

in src/main/java/org/apache/sling/maven/bundlesupport/GenerateAdapterMetadataMojo.java [178:202]


    private void parseAdapterAnnotation(
            AnnotationParameterValueList annotationParameterValues,
            String annotatedClassName,
            final Map<String, Object> adaptableDescription)
            throws JsonException {
        AnnotationParameterValue conditionParameterValue = annotationParameterValues.get("condition");
        String condition = null;
        if (conditionParameterValue != null) {
            condition = (String) conditionParameterValue.getValue();
        }
        if (StringUtils.isEmpty(condition)) {
            condition = String.format(DEFAULT_CONDITION, annotatedClassName);
        }
        Object[] adapterClasses =
                (Object[]) annotationParameterValues.get("value").getValue();

        if (adapterClasses == null) {
            throw new IllegalArgumentException("Adapter annotation is malformed. Expecting a list of adapter classes");
        }

        for (final Object adapterClass : adapterClasses) {
            String adapterClassName = ((AnnotationClassRef) adapterClass).getName();
            JsonSupport.accumulate(adaptableDescription, condition, adapterClassName);
        }
    }