code: public FilterValues<S> withValues(Object... values) {
          if (values == null) {
              return this;
          }
          if (values.length > getBlankParameterCount()) {
              throw new IllegalStateException("Too many values supplied");
          }
          FilterValues<S> filterValues = this;
          for (Object value : values) {
              filterValues = filterValues.with(value);
          }
          return filterValues;
      }
docs: Returns a new FilterValues instance with the next blank parameters filled in.
  
  @param values parameter values to fill in; if null or empty, this
  FilterValues instance is returned
  @throws IllegalStateException if no blank parameters or if too many
  parameter values supplied
  @throws IllegalArgumentException if type doesn't match