public static WildcardMatcher valueOf()

in common/src/main/java/co/elastic/otel/common/config/WildcardMatcher.java [82:110]


  public static WildcardMatcher valueOf(final String wildcardString) {
    String matcher = wildcardString;
    boolean ignoreCase = true;
    if (matcher.startsWith(CASE_SENSITIVE_PREFIX)) {
      ignoreCase = false;
      matcher = matcher.substring(CASE_SENSITIVE_PREFIX.length());
    } else if (matcher.startsWith(CASE_INSENSITIVE_PREFIX)) {
      matcher = matcher.substring(CASE_INSENSITIVE_PREFIX.length());
    }

    String[] split = matcher.split("\\*");
    if (split.length == 1) {
      return new SimpleWildcardMatcher(
          split[0], matcher.startsWith(WILDCARD), matcher.endsWith(WILDCARD), ignoreCase);
    }

    List<SimpleWildcardMatcher> matchers = new ArrayList<>(split.length);
    for (int i = 0; i < split.length; i++) {
      boolean isFirst = i == 0;
      boolean isLast = i == split.length - 1;
      matchers.add(
          new SimpleWildcardMatcher(
              split[i],
              !isFirst || matcher.startsWith(WILDCARD),
              !isLast || matcher.endsWith(WILDCARD),
              ignoreCase));
    }
    return new CompoundWildcardMatcher(wildcardString, matcher, matchers);
  }