public MojoDescriptor buildComponentDescriptor()

in maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java [80:119]


    public MojoDescriptor buildComponentDescriptor(PlexusConfiguration c, PluginDescriptor pluginDescriptor)
            throws PlexusConfigurationException {
        MojoDescriptor mojoDescriptor = super.buildComponentDescriptor(c, pluginDescriptor);

        // ----------------------------------------------------------------------
        // Parameters
        // ----------------------------------------------------------------------

        PlexusConfiguration[] parameterConfigurations = c.getChild("parameters").getChildren("parameter");

        List<Parameter> parameters = new ArrayList<>(mojoDescriptor.getParameters());
        Map<String, Parameter> parameterMap = new LinkedHashMap<>(mojoDescriptor.getParameterMap());

        for (PlexusConfiguration d : parameterConfigurations) {
            String parameterName = d.getChild("name").getValue();
            // don't call getParameterMap() to not populate
            Parameter pd = parameterMap.get(parameterName);
            if (requireAddingMissingParameterSinceField) {
                addMissingParameterSinceField(pd, d);
            }
            PlexusConfiguration configTypeJavadocUrl = d.getChild("typeJavadocUrl", false);
            if (configTypeJavadocUrl != null) {
                String parameterTypeJavadocUrl = configTypeJavadocUrl.getValue();
                EnhancedParameterWrapper enhancedParameter = new EnhancedParameterWrapper(pd);
                enhancedParameter.setTypeJavadocUrl(URI.create(parameterTypeJavadocUrl));
                parameters.set(mojoDescriptor.getParameters().indexOf(pd), enhancedParameter);
                parameterMap.put(parameterName, enhancedParameter);
            }
        }

        // clear() is required for maven < 3.6.2
        mojoDescriptor.getParameters().clear();
        // set parameters
        mojoDescriptor.setParameters(parameters);
        // on maven < 3.6.2, getParameterMap is kept internally in a field
        // so update it in case we're on an old maven version
        mojoDescriptor.getParameterMap().putAll(parameterMap);

        return mojoDescriptor;
    }