Skip to content

Commit 34222ef

Browse files
committed
fix predicate builder
1 parent f0e18fc commit 34222ef

File tree

2 files changed

+9
-20
lines changed

2 files changed

+9
-20
lines changed

spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/MyUserPredicatesBuilder.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,25 @@
77

88
import com.mysema.query.types.expr.BooleanExpression;
99

10-
public class MyUserPredicatesBuilder {
11-
private List<SearchCriteria> params;
10+
public final class MyUserPredicatesBuilder {
11+
private final List<SearchCriteria> params;
1212

1313
public MyUserPredicatesBuilder() {
1414
params = new ArrayList<SearchCriteria>();
1515
}
1616

1717
public MyUserPredicatesBuilder with(final String key, final String operation, final Object value) {
18-
final MyUserPredicatesBuilder builder = new MyUserPredicatesBuilder();
19-
final List<SearchCriteria> newParams = new ArrayList<SearchCriteria>(params);
20-
newParams.add(new SearchCriteria(key, operation, value));
21-
builder.params = newParams;
22-
return builder;
18+
params.add(new SearchCriteria(key, operation, value));
19+
return this;
2320
}
2421

2522
public BooleanExpression build() {
26-
if (params.size() == 0)
23+
if (params.size() == 0) {
2724
return null;
25+
}
2826

2927
final List<BooleanExpression> predicates = new ArrayList<BooleanExpression>();
3028
MyUserPredicate predicate;
31-
3229
for (final SearchCriteria param : params) {
3330
predicate = new MyUserPredicate(param);
3431
final BooleanExpression exp = predicate.getPredicate();
@@ -37,14 +34,10 @@ public BooleanExpression build() {
3734
}
3835
}
3936

40-
if (predicates.size() == 0)
41-
return null;
42-
4337
BooleanExpression result = predicates.get(0);
4438
for (int i = 1; i < predicates.size(); i++) {
4539
result = result.and(predicates.get(i));
4640
}
4741
return result;
48-
4942
}
5043
}

spring-security-rest-full/src/main/java/org/baeldung/web/controller/UserController.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,16 @@ public List<User> findAllBySpecification(@RequestParam(value = "search") final S
7272
@RequestMapping(method = RequestMethod.GET, value = "/myusers")
7373
@ResponseBody
7474
public Iterable<MyUser> findAllByQuerydsl(@RequestParam(value = "search") final String search) {
75-
MyUserPredicatesBuilder builder = new MyUserPredicatesBuilder();
76-
75+
final MyUserPredicatesBuilder builder = new MyUserPredicatesBuilder();
7776
if (search != null) {
7877
final Pattern pattern = Pattern.compile("(\\w+?)(:|<|>)(\\w+?),");
7978
final Matcher matcher = pattern.matcher(search + ",");
8079
while (matcher.find()) {
81-
builder = builder.with(matcher.group(1), matcher.group(2), matcher.group(3));
80+
builder.with(matcher.group(1), matcher.group(2), matcher.group(3));
8281
}
8382
}
8483
final BooleanExpression exp = builder.build();
85-
if (exp == null)
86-
return mydao.findAll();
87-
else
88-
return mydao.findAll(exp);
84+
return mydao.findAll(exp);
8985
}
9086

9187
// API - WRITE

0 commit comments

Comments
 (0)