private void writeContributors()

in src/main/java/org/apache/maven/plugin/doap/DoapMojo.java [1498:1545]


    private void writeContributors(XMLWriter writer, List<Contributor> contributors) {
        if (contributors == null || contributors.isEmpty()) {
            return;
        }

        boolean isDeveloper =
                Developer.class.isAssignableFrom(contributors.get(0).getClass());
        if (isDeveloper) {
            DoapUtil.writeComment(writer, "Main committers.");
        } else {
            DoapUtil.writeComment(writer, "Contributed persons.");
        }

        List<Contributor> maintainers = DoapUtil.getContributorsWithMaintainerRole(i18n, contributors);
        List<Contributor> developers = DoapUtil.getContributorsWithDeveloperRole(i18n, contributors);
        List<Contributor> documenters = DoapUtil.getContributorsWithDocumenterRole(i18n, contributors);
        List<Contributor> translators = DoapUtil.getContributorsWithTranslatorRole(i18n, contributors);
        List<Contributor> testers = DoapUtil.getContributorsWithTesterRole(i18n, contributors);
        List<Contributor> helpers = DoapUtil.getContributorsWithHelperRole(i18n, contributors);
        List<Contributor> unknowns = DoapUtil.getContributorsWithUnknownRole(i18n, contributors);

        // By default, all developers are maintainers and contributors are helpers
        if (isDeveloper) {
            maintainers.addAll(unknowns);
        } else {
            helpers.addAll(unknowns);
        }

        // all alphabetical
        if (developers.size() != 0) {
            writeContributor(writer, developers, "developer");
        }
        if (documenters.size() != 0) {
            writeContributor(writer, documenters, "documenter");
        }
        if (helpers.size() != 0) {
            writeContributor(writer, helpers, "helper");
        }
        if (maintainers.size() != 0) {
            writeContributor(writer, maintainers, "maintainer");
        }
        if (testers.size() != 0) {
            writeContributor(writer, testers, "tester");
        }
        if (translators.size() != 0) {
            writeContributor(writer, translators, "translator");
        }
    }