Skip to content

Commit 370e894

Browse files
committed
Refactor matchOperator to use method reference comparator for efficiency
1 parent 938e591 commit 370e894

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

internal-api/src/main/java/datadog/trace/bootstrap/config/provider/StableConfigParser.java

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.List;
1515
import java.util.Locale;
1616
import java.util.Map;
17+
import java.util.function.Predicate;
1718
import org.slf4j.Logger;
1819
import org.slf4j.LoggerFactory;
1920

@@ -115,22 +116,32 @@ private static boolean matchOperator(String value, String operator, List<String>
115116
return false;
116117
}
117118
value = value.toLowerCase(Locale.ROOT);
119+
120+
Predicate<String> comparator;
121+
switch (operator) {
122+
case "equals":
123+
comparator = value::equals;
124+
break;
125+
case "starts_with":
126+
comparator = value::startsWith;
127+
break;
128+
case "ends_with":
129+
comparator = value::endsWith;
130+
break;
131+
case "contains":
132+
comparator = value::contains;
133+
break;
134+
default:
135+
return false;
136+
}
137+
118138
for (String match : matches) {
119139
if (match == null) {
120140
continue;
121141
}
122142
match = match.toLowerCase(Locale.ROOT);
123-
switch (operator) {
124-
case "equals":
125-
return value.equals(match);
126-
case "starts_with":
127-
return value.startsWith(match);
128-
case "ends_with":
129-
return value.endsWith(match);
130-
case "contains":
131-
return value.contains(match);
132-
default:
133-
return false;
143+
if (comparator.test(match)) {
144+
return true;
134145
}
135146
}
136147
return false;

0 commit comments

Comments
 (0)