docs: public static QueryTemplate create(String name,
                                       Iterable<String> values,
                                       Charset charset,
                                       CollectionFormat collectionFormat) {
      if (Util.isBlank(name)) {
        throw new IllegalArgumentException("name is required.");
      }
  
      if (values == null) {
        throw new IllegalArgumentException("values are required");
      }
  
      /* remove all empty values from the array */
      Collection<String> remaining = StreamSupport.stream(values.spliterator(), false)
          .filter(Util::isNotBlank)
          .collect(Collectors.toList());
  
      StringBuilder template = new StringBuilder();
      Iterator<String> iterator = remaining.iterator();
      while (iterator.hasNext()) {
        template.append(iterator.next());
        if (iterator.hasNext()) {
          template.append(COLLECTION_DELIMITER);
        }
      }
  
      return new QueryTemplate(template.toString(), name, remaining, charset, collectionFormat);
    }