public int matches()

in spectator-api/src/main/java/com/netflix/spectator/impl/matcher/IndexOfMatcher.java [106:129]


  public int matches(String str, int start, int length) {
    if (next == TrueMatcher.INSTANCE) {
      int pos = indexOf(str, start);
      return pos >= 0 ? pos + pattern.length() : Constants.NO_MATCH;
    } else if (next == EndMatcher.INSTANCE) {
      return endsWith(str, start) ? length : Constants.NO_MATCH;
    } else {
      final int end = start + length;
      final int stop = end - next.minLength();
      int pos = start;
      while (pos >= 0 && pos <= stop) {
        pos = indexOf(str, pos);
        if (pos >= 0) {
          int s = pos + pattern.length();
          int p = next.matches(str, s, end - s);
          if (p >= 0) {
            return p;
          }
          ++pos;
        }
      }
      return Constants.NO_MATCH;
    }
  }