private static String sanitizeSegments()

in spectator-ext-ipc/src/main/java/com/netflix/spectator/ipc/http/PathSanitizer.java [71:98]


  private static String sanitizeSegments(String path, Set<String> allowed) {
    StringBuilder builder = new StringBuilder();
    int length = path.length();
    int pos = path.isEmpty() || path.charAt(0) != '/' ? 0 : 1;
    int segmentsAdded = 0;

    while (pos < length && segmentsAdded < 5) {
      String segment;
      int e = path.indexOf('/', pos);
      if (e > 0) {
        segment = path.substring(pos, e);
        pos = e + 1;
      } else {
        segment = path.substring(pos);
        pos = length;
      }

      if (!segment.isEmpty()) {
        if (shouldSuppressSegment(segment, allowed))
          appendIfSpaceAvailable(builder, "-");
        else
          appendIfSpaceAvailable(builder, segment);
        ++segmentsAdded;
      }
    }

    return builder.toString();
  }