code: public List<String> getValues(final String key) {
          Validate.notEmpty(key, "name cannot be empty");
          
          @SuppressWarnings("unchecked")
          final List<String> result = (List<String>) values.get(key.toLowerCase());
          return result == null || result.isEmpty() ? null : new ArrayList<String>(result);
      }
docs: Returns all values for the given key
  @param key key (case insensitive)
  @return all values of the given header or {@code null}, if there is no such a key in this instance