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);
}