code: private void addParameter(final String key, final String value,
          final Map<QueryParameter, String> newParams, final Set<QueryParameter> impl) {
  
          try {
              final QueryParameter ep = QueryParameter.valueOf(key.toUpperCase());
              if (!impl.contains(ep)) {
                  throw new JaxRxException(400, "Parameter '" + key
                      + "' is not supported by the implementation.");
              }
  
              // append multiple parameters
              final String old = newParams.get(ep);
              // skip multiple key/value combinations if different to OUTPUT
              if (ep != QueryParameter.OUTPUT && ep != QueryParameter.VAR && old != null)
                  return;
  
              // use \1 as delimiter for multiple values
              final char del = ep == QueryParameter.OUTPUT ? ',' : 0x01;
              newParams.put(ep, old == null ? value : old + del + value);
          } catch (final IllegalArgumentException ex) {
              throw new JaxRxException(400, "Parameter '" + key + "' is unknown.");
          }
      }
docs: Adds a key/value combination to the parameter map. Multiple output
  parameters are separated with commas.
  
  @param key
  The parameter key
  @param value
  The parameter value
  @param newParams
  New query parameter map
  @param impl
  Implementation parameters