src/main/java/org/owasp/url/FragmentClassifierBuilder.java
public FragmentClassifierBuilder match(Predicate<? super Optional<String>> p) {
    if (this.fragmentPred == null) {
      this.fragmentPred = p;
    } else {
      this.fragmentPred = Predicates.or(this.fragmentPred, p);
    }
    return this;
  }
/**
   * If there is no fragment then p will receive the absent optional.
   * If there is a fragment then p will receive it with the leading "#".
   * RFC 3986 says
   * <blockquote>
   *    two URIs that differ only by the suffix "#" are considered
   *    different regardless of the scheme.
   * </blockquote>
   */
If there is no fragment then p will receive the absent optional.
If there is a fragment then p will receive it with the leading "#".
RFC 3986 says

two URIs that differ only by the suffix "#" are considered
different regardless of the scheme.
If there is no fragment then p will receive the absent optional . If there is a fragment then p will receive it with the leading " # " . RFC 3986 says two URIs that differ only by the suffix " # " are considered different regardless of the scheme .
public FragmentClassifierBuilder match(Predicate<? super Optional<String>> p) {
    if (this.fragmentPred == null) {
      this.fragmentPred = p;
    } else {
      this.fragmentPred = Predicates.or(this.fragmentPred, p);
    }
    return this;
  }
public FragmentClassifierBuilder match ( Predicate < ? super Optional < String > > p ) { if ( this . fragmentPred == null ) { this . fragmentPred = p ; } else { this . fragmentPred = Predicates . or ( this . fragmentPred , p ) ; } return this ; }
If there is no fragment then p will receive the absent optional.
If there is no fragment then p will receive the absent optional .