docs: private void generateCommunity(final Metadata m, final Element e) {
          if (m.getCommunity() == null) {
              return;
          }
          final Element communityElement = new Element("community", NS);
          if (m.getCommunity().getStarRating() != null) {
              final Element starRatingElement = new Element("starRating", NS);
              addNotNullAttribute(starRatingElement, "average", m.getCommunity().getStarRating().getAverage());
              addNotNullAttribute(starRatingElement, "count", m.getCommunity().getStarRating().getCount());
              addNotNullAttribute(starRatingElement, "min", m.getCommunity().getStarRating().getMin());
              addNotNullAttribute(starRatingElement, "max", m.getCommunity().getStarRating().getMax());
              if (starRatingElement.hasAttributes()) {
                  communityElement.addContent(starRatingElement);
              }
          }
          if (m.getCommunity().getStatistics() != null) {
              final Element statisticsElement = new Element("statistics", NS);
              addNotNullAttribute(statisticsElement, "views", m.getCommunity().getStatistics().getViews());
              addNotNullAttribute(statisticsElement, "favorites", m.getCommunity().getStatistics().getFavorites());
              if (statisticsElement.hasAttributes()) {
                  communityElement.addContent(statisticsElement);
              }
          }
          if (m.getCommunity().getTags() != null && !m.getCommunity().getTags().isEmpty()) {
              final Element tagsElement = new Element("tags", NS);
              for (final Tag tag : m.getCommunity().getTags()) {
                  if (!tagsElement.getTextTrim().isEmpty()) {
                      tagsElement.addContent(", ");
                  }
                  if (tag.getWeight() == null) {
                      tagsElement.addContent(tag.getName());
                  } else {
                      tagsElement.addContent(tag.getName());
                      tagsElement.addContent(":");
                      tagsElement.addContent(String.valueOf(tag.getWeight()));
                  }
              }
              if (!tagsElement.getTextTrim().isEmpty()) {
                  communityElement.addContent(tagsElement);
              }
          }
          if (!communityElement.getChildren().isEmpty()) {
              e.addContent(communityElement);
          }
      }