Skip to content

Commit c55dc63

Browse files
committed
Avoid repetitive ComparisonNode::getArguments invocation be underlying list is being copied.
1 parent efb43b8 commit c55dc63

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAPredicateConverter.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ private ResolvedExpression resolveExpression(ComparisonNode node, From root, Sel
240240
String jsonSelector = PathUtils.expectBestMapping(node.getSelector(), propertyPathMapper);
241241
String jsonbPath = JsonbSupport.jsonPathOfSelector(attribute, jsonSelector);
242242
if(jsonbPath.contains(".")) {
243-
ComparisonNode jsonbNode = new ComparisonNode(node.getOperator(), jsonbPath, node.getArguments());
243+
ComparisonNode jsonbNode = node.withSelector(jsonbPath);
244244
return JsonbSupport.jsonbPathExistsExpression(builder, jsonbNode, path);
245245
} else {
246246
return ResolvedExpression.ofPath(path.as(String.class), String.class);
@@ -291,9 +291,10 @@ private Predicate expressionPredicate(ComparisonNode node, ResolvedExpression.Pa
291291
Expression expression = resolvedExpression.expression();
292292
Class type = resolvedExpression.type();
293293
var op = node.getOperator();
294-
if (node.getArguments().size() > 1) {
294+
var arguments = node.getArguments();
295+
if (arguments.size() > 1) {
295296
List<Object> listObject = new ArrayList<>();
296-
for (String argument : node.getArguments()) {
297+
for (String argument : arguments) {
297298
listObject.add(convert(argument, type));
298299
}
299300
if (op.equals(IN)) {
@@ -320,7 +321,7 @@ private Predicate expressionPredicate(ComparisonNode node, ResolvedExpression.Pa
320321
if (op.equals(NOT_NULL)) {
321322
return builder.isNotNull(expression);
322323
}
323-
Object argument = convert(node.getArguments().get(0), type);
324+
Object argument = convert(arguments.get(0), type);
324325
if (op.equals(IN)) {
325326
return builder.equal(expression, argument);
326327
}

0 commit comments

Comments
 (0)