src/main/java/org/owasp/url/QueryClassifierBuilder.java
public QueryClassifierBuilder valueMustMatch(
      String key,
      Predicate<? super Optional<String>> valueClassifier) {
    Predicate<? super Optional<String>> old = valueClassifiers.put(
        Preconditions.checkNotNull(key),
        Preconditions.checkNotNull(valueClassifier));
    if (old != null) {
      valueClassifiers.put(
          key,
          Predicates.and(old, valueClassifier));
    }
    return this;
  }
/**
   * Specify that any values associated with the given key must match the
   * given predicate.
   * <ul>
   *   <li>For valueMustMatch("foo", p) the URI "?foo=bar" will cause a call
   *       p.apply(of("bar")).
   *   <li>For valueMustMatch("foo", p) the URI "?foo=" will cause a call
   *       p.apply(of("")).
   *   <li>For valueMustMatch("foo", p) the URI "?foo" will cause a call
   *       p.apply(absent).
   * </ul>
   * <p>The value received by the predicate has been percent decoded.
   *
   * <p>This does not require that key appear.  If key appears multiple
   * times, the predicate will be applied to each value in the order
   * it appears.
   */
Specify that any values associated with the given key must match the
given predicate.

This does not require that key appear.  If key appears multiple
times, the predicate will be applied to each value in the order
it appears.
Specify that any values associated with the given key must match the given predicate . This does not require that key appear . If key appears multiple times the predicate will be applied to each value in the order it appears .
public QueryClassifierBuilder valueMustMatch(
      String key,
      Predicate<? super Optional<String>> valueClassifier) {
    Predicate<? super Optional<String>> old = valueClassifiers.put(
        Preconditions.checkNotNull(key),
        Preconditions.checkNotNull(valueClassifier));
    if (old != null) {
      valueClassifiers.put(
          key,
          Predicates.and(old, valueClassifier));
    }
    return this;
  }
public QueryClassifierBuilder valueMustMatch ( String key , Predicate < ? super Optional < String > > valueClassifier ) { Predicate < ? super Optional < String > > old = valueClassifiers . put ( Preconditions . checkNotNull ( key ) , Preconditions . checkNotNull ( valueClassifier ) ) ; if ( old != null ) { valueClassifiers . put ( key , Predicates . and ( old , valueClassifier ) ) ; } return this ; }
Specify that any values associated with the given key must match the
 given predicate.
Specify that any values associated with the given key must match the given predicate .