Skip to content

Commit abe69bc

Browse files
committed
Polishing.
Refactor ContextualValueExpressionEvaluator into Function, refactor BindingContext into nested class. Simplify tests. Rename tests to reflect what they are actually doing. Reformat code.
1 parent 21a1551 commit abe69bc

12 files changed

+302
-394
lines changed

src/main/java/org/springframework/data/ldap/repository/query/AbstractLdapRepositoryQuery.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.springframework.data.repository.query.QueryMethod;
2727
import org.springframework.data.repository.query.RepositoryQuery;
2828
import org.springframework.data.repository.query.ResultProcessor;
29-
import org.springframework.data.repository.query.ValueExpressionDelegate;
3029
import org.springframework.ldap.core.LdapOperations;
3130
import org.springframework.ldap.query.LdapQuery;
3231
import org.springframework.util.Assert;

src/main/java/org/springframework/data/ldap/repository/query/AnnotatedLdapRepositoryQuery.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
public class AnnotatedLdapRepositoryQuery extends AbstractLdapRepositoryQuery {
4040

4141
private final Query queryAnnotation;
42-
private final ValueExpressionDelegate valueExpressionDelegate;
43-
private final StringBasedQuery stringBasedQuery;
44-
private final StringBasedQuery stringBasedBase;
42+
private final StringBasedQuery query;
43+
private final StringBasedQuery base;
44+
private final ValueEvaluationContextProvider valueContextProvider;
4545

4646
/**
4747
* Construct a new instance.
@@ -81,34 +81,32 @@ public AnnotatedLdapRepositoryQuery(LdapQueryMethod queryMethod, Class<?> entity
8181
Assert.notNull(queryMethod.getQueryAnnotation(), "Annotation must be present");
8282
Assert.hasLength(queryMethod.getQueryAnnotation().value(), "Query filter must be specified");
8383

84-
queryAnnotation = queryMethod.getRequiredQueryAnnotation();
85-
this.valueExpressionDelegate = valueExpressionDelegate;
86-
stringBasedQuery = new StringBasedQuery(queryAnnotation.value(), queryMethod.getParameters(), valueExpressionDelegate);
87-
stringBasedBase = new StringBasedQuery(queryAnnotation.base(), queryMethod.getParameters(), valueExpressionDelegate);
84+
this.queryAnnotation = queryMethod.getRequiredQueryAnnotation();
85+
this.query = new StringBasedQuery(queryAnnotation.value(), queryMethod.getParameters(), valueExpressionDelegate);
86+
this.base = new StringBasedQuery(queryAnnotation.base(), queryMethod.getParameters(), valueExpressionDelegate);
87+
this.valueContextProvider = valueExpressionDelegate.createValueContextProvider(getQueryMethod().getParameters());
8888
}
8989

9090
@Override
9191
protected LdapQuery createQuery(LdapParameterAccessor parameters) {
9292

93-
ValueEvaluationContextProvider valueContextProvider = valueExpressionDelegate
94-
.createValueContextProvider(getQueryMethod().getParameters());
93+
String query = bind(parameters, valueContextProvider, this.query);
94+
String base = bind(parameters, valueContextProvider, this.base);
9595

96-
String boundQuery = bind(parameters, valueContextProvider, stringBasedQuery);
97-
98-
String boundBase = bind(parameters, valueContextProvider, stringBasedBase);
99-
100-
return query().base(boundBase) //
96+
return query().base(base) //
10197
.searchScope(queryAnnotation.searchScope()) //
10298
.countLimit(queryAnnotation.countLimit()) //
10399
.timeLimit(queryAnnotation.timeLimit()) //
104-
.filter(boundQuery);
100+
.filter(query, parameters.getBindableParameterValues());
105101
}
106102

107103
private String bind(LdapParameterAccessor parameters, ValueEvaluationContextProvider valueContextProvider, StringBasedQuery query) {
104+
108105
ValueEvaluationContext evaluationContext = valueContextProvider
109106
.getEvaluationContext(parameters.getBindableParameterValues(), query.getExpressionDependencies());
107+
110108
return query.bindQuery(parameters,
111-
new ContextualValueExpressionEvaluator(valueExpressionDelegate, evaluationContext));
109+
expression -> expression.evaluate(evaluationContext));
112110
}
113111

114112
}

src/main/java/org/springframework/data/ldap/repository/query/BindingContext.java

Lines changed: 0 additions & 177 deletions
This file was deleted.

src/main/java/org/springframework/data/ldap/repository/query/ContextualValueExpressionEvaluator.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/main/java/org/springframework/data/ldap/repository/query/LdapParameterAccessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* @author Mark Paluch
2424
* @since 2.6
2525
*/
26-
interface LdapParameterAccessor extends ParameterAccessor {
26+
public interface LdapParameterAccessor extends ParameterAccessor {
2727

2828
/**
2929
* Returns the bindable parameter values of the underlying query method.

0 commit comments

Comments
 (0)