Skip to content

Commit c1d8d93

Browse files
committed
Polishing.
1 parent ad38fd4 commit c1d8d93

File tree

2 files changed

+24
-15
lines changed

2 files changed

+24
-15
lines changed

src/main/java/org/springframework/data/repository/query/SpelQueryContext.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
* @author Gerrit Meier
5959
* @author Mark Paluch
6060
* @since 2.1
61-
* @deprecated since 3.3, use {@link ValueExpressionQueryRewriter.QueryExpressionEvaluator} instead.
61+
* @deprecated since 3.3, use {@link ValueExpressionQueryRewriter} instead.
6262
*/
6363
@Deprecated(since = "3.3")
6464
public class SpelQueryContext {

src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java

+23-14
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,20 @@
4141
* with bind variables.
4242
* <p>
4343
* Result of the parse process is a {@link ParsedQuery} which provides the transformed query string. Alternatively and
44-
* preferred one may provide a {@link QueryMethodEvaluationContextProvider} via
44+
* preferred one may provide a {@link QueryMethodValueEvaluationContextAccessor} via
4545
* {@link #withEvaluationContextAccessor(QueryMethodValueEvaluationContextAccessor)} which will yield the more powerful
4646
* {@link EvaluatingValueExpressionQueryRewriter}.
4747
* <p>
4848
* Typical usage looks like
4949
*
50-
* <pre>
51-
* <code>
52-
ExpressionQueryRewriter.ParsedQuery parsed = ExpressionQueryRewriter
53-
.of(valueExpressionParser, (counter, expression) -> String.format("__$synthetic$__%d", counter), String::concat)
54-
.withEvaluationContextProvider(evaluationContextProviderFactory);
55-
56-
ExpressionQueryRewriter.QueryExpressionEvaluator evaluator = queryContext.parse(query, queryMethod.getParameters());
57-
58-
evaluator.evaluate(objects).forEach(parameterMap::addValue);
59-
* </code>
50+
* <pre class="code">
51+
* ValueExpressionQueryRewriter.EvaluatingValueExpressionQueryRewriter rewriter = ValueExpressionQueryRewriter
52+
* .of(valueExpressionParser, (counter, expression) -> String.format("__$synthetic$__%d", counter), String::concat)
53+
* .withEvaluationContextAccessor(evaluationContextProviderFactory);
54+
*
55+
* ValueExpressionQueryRewriter.QueryExpressionEvaluator evaluator = parsed.parse(query, queryMethod.getParameters());
56+
*
57+
* evaluator.evaluate(objects).forEach(parameterMap::addValue);
6058
* </pre>
6159
*
6260
* @author Jens Schauder
@@ -74,16 +72,16 @@ public class ValueExpressionQueryRewriter {
7472
/**
7573
* A function from the index of a Value expression in a query and the actual Value Expression to the parameter name to
7674
* be used in place of the Value Expression. A typical implementation is expected to look like
77-
* <code>(index, expression) -> "__some_placeholder_" + index</code>
75+
* {@code (index, expression) -> "__some_placeholder_" + index}.
7876
*/
7977
private final BiFunction<Integer, String, String> parameterNameSource;
8078

8179
/**
8280
* A function from a prefix used to demarcate a Value Expression in a query and a parameter name as returned from
8381
* {@link #parameterNameSource} to a {@literal String} to be used as a replacement of the Value Expressions in the
8482
* query. The returned value should normally be interpretable as a bind parameter by the underlying persistence
85-
* mechanism. A typical implementation is expected to look like <code>(prefix, name) -> prefix + name</code> or
86-
* <code>(prefix, name) -> "{" + name + "}"</code>
83+
* mechanism. A typical implementation is expected to look like {@code (prefix, name) -> prefix + name} or
84+
* {@code (prefix, name) -> "{" + name + "}"}.
8785
*/
8886
private final BiFunction<String, String, String> replacementSource;
8987

@@ -99,6 +97,17 @@ private ValueExpressionQueryRewriter(ValueExpressionParser expressionParser,
9997
this.expressionParser = expressionParser;
10098
}
10199

100+
/**
101+
* Creates a new {@link ValueExpressionQueryRewriter} using the given {@link ValueExpressionParser} and rewrite
102+
* functions.
103+
*
104+
* @param expressionParser the expression parser to use.
105+
* @param parameterNameSource function to generate parameter names. Typically, a function of the form
106+
* {@code (index, expression) -> "__some_placeholder_" + index}.
107+
* @param replacementSource function to generate replacements. Typically, a concatenation of the prefix and the
108+
* parameter name such as {@code String::concat}.
109+
* @return
110+
*/
102111
public static ValueExpressionQueryRewriter of(ValueExpressionParser expressionParser,
103112
BiFunction<Integer, String, String> parameterNameSource, BiFunction<String, String, String> replacementSource) {
104113
return new ValueExpressionQueryRewriter(expressionParser, parameterNameSource, replacementSource);

0 commit comments

Comments
 (0)