private void writeProgrammingLanguage()

in src/main/java/org/apache/maven/plugin/doap/DoapMojo.java [903:974]


    private void writeProgrammingLanguage(XMLWriter writer, MavenProject project) {
        if (StringUtils.isEmpty(doapOptions.getProgrammingLanguage()) && (language == null || language.isEmpty())) {
            messages.addMessage(
                    new String[] {"doapOptions", "programmingLanguage"},
                    null,
                    UserMessages.REQUIRED_BY_ASF_OR_RECOMMENDED);
            return;
        }

        boolean addComment = false;
        String comment = "Programming language.";
        if (language != null && !language.isEmpty()) // backward compatible
        {
            getLog().warn("The <language/> parameter is deprecated, please use "
                    + messages.toConfiguration(new String[] {"doapOptions", "programmingLanguage"}, null)
                    + " parameter instead of.");

            language = language.trim();

            if (asfExtOptions.isIncluded()) {
                String asfLanguage = ASFExtOptionsUtil.getProgrammingLanguageSupportedByASF(language);
                if (asfLanguage == null) {
                    messages.getErrorMessages()
                            .add("The deprecated " + messages.toConfiguration(new String[] {"language"}, language)
                                    + " parameter is not supported by ASF. Should be one of "
                                    + Arrays.toString(ASFExtOptionsUtil.PROGRAMMING_LANGUAGES));
                } else {
                    DoapUtil.writeComment(writer, comment);
                    addComment = true;
                    DoapUtil.writeElement(
                            writer, doapOptions.getXmlnsPrefix(), "programming-language", asfLanguage.trim());
                }
            } else {
                DoapUtil.writeComment(writer, comment);
                addComment = true;
                DoapUtil.writeElement(writer, doapOptions.getXmlnsPrefix(), "programming-language", language.trim());
            }
        }

        if (StringUtils.isNotEmpty(doapOptions.getProgrammingLanguage())) {
            String[] languages = StringUtils.split(doapOptions.getProgrammingLanguage(), ",");
            for (String language : languages) {
                language = language.trim();

                if (asfExtOptions.isIncluded()) {
                    String asfLanguage = ASFExtOptionsUtil.getProgrammingLanguageSupportedByASF(language);
                    if (asfLanguage == null) {
                        messages.getErrorMessages()
                                .add("The "
                                        + messages.toConfiguration(
                                                new String[] {"doapOptions", "programmingLanguage"}, language)
                                        + " parameter is not supported by ASF. "
                                        + "Should be one of "
                                        + Arrays.toString(ASFExtOptionsUtil.PROGRAMMING_LANGUAGES));
                    } else {
                        if (!addComment) {
                            DoapUtil.writeComment(writer, comment);
                            addComment = true;
                        }
                        DoapUtil.writeElement(
                                writer, doapOptions.getXmlnsPrefix(), "programming-language", asfLanguage);
                    }
                } else {
                    if (!addComment) {
                        DoapUtil.writeComment(writer, comment);
                        addComment = true;
                    }
                    DoapUtil.writeElement(writer, doapOptions.getXmlnsPrefix(), "programming-language", language);
                }
            }
        }
    }