code: private Map<String, ReportPlugin> selectReportPlugins(ExecutableRule rule) throws ReportException {
          Set<String> selection = rule.getReport().getSelectedTypes();
          Map<String, ReportPlugin> reportPlugins = new HashMap<>();
          if (selection != null) {
              for (String type : selection) {
                  ReportPlugin candidate = this.selectableReportPlugins.get(type);
                  if (candidate == null) {
                      throw new ReportException("Unknown report selection '" + type + "' selected for '" + rule + "'");
                  }
                  reportPlugins.put(type, candidate);
              }
          }
          return reportPlugins;
      }
docs: Select the report writers for the given rule.
  
  @param rule
  The rule.
  @throws ReportException
  If no writer exists for a specified id.