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 = rewriter.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