@@ -98,21 +98,39 @@ private ValueExpressionQueryRewriter(ValueExpressionParser expressionParser,
98
98
}
99
99
100
100
/**
101
- * Creates a new {@link ValueExpressionQueryRewriter} using the given {@link ValueExpressionParser} and rewrite
102
- * functions.
101
+ * Creates a new {ValueExpressionQueryRewriter using the given {@link ValueExpressionParser} and rewrite functions.
103
102
*
104
103
* @param expressionParser the expression parser to use.
105
104
* @param parameterNameSource function to generate parameter names. Typically, a function of the form
106
105
* {@code (index, expression) -> "__some_placeholder_" + index}.
107
106
* @param replacementSource function to generate replacements. Typically, a concatenation of the prefix and the
108
107
* parameter name such as {@code String::concat}.
109
- * @return
108
+ * @return a ValueExpressionQueryRewriter instance to rewrite queries and extract parsed {@link ValueExpression}s.
110
109
*/
111
110
public static ValueExpressionQueryRewriter of (ValueExpressionParser expressionParser ,
112
111
BiFunction <Integer , String , String > parameterNameSource , BiFunction <String , String , String > replacementSource ) {
113
112
return new ValueExpressionQueryRewriter (expressionParser , parameterNameSource , replacementSource );
114
113
}
115
114
115
+ /**
116
+ * Creates a new {@link ValueExpressionQueryRewriter} using the given {@link ValueExpressionParser} and rewrite
117
+ * functions.
118
+ *
119
+ * @param delegate the ValueExpressionDelegate to use for parsing and to obtain EvaluationContextAccessor from.
120
+ * @param parameterNameSource function to generate parameter names. Typically, a function of the form
121
+ * {@code (index, expression) -> "__some_placeholder_" + index}.
122
+ * @param replacementSource function to generate replacements. Typically, a concatenation of the prefix and the
123
+ * parameter name such as {@code String::concat}.
124
+ * @return a EvaluatingValueExpressionQueryRewriter instance to rewrite queries and extract parsed
125
+ * {@link ValueExpression}s.
126
+ * @since 3.4
127
+ */
128
+ public static EvaluatingValueExpressionQueryRewriter of (ValueExpressionDelegate delegate ,
129
+ BiFunction <Integer , String , String > parameterNameSource , BiFunction <String , String , String > replacementSource ) {
130
+ return of ((ValueExpressionParser ) delegate , parameterNameSource , replacementSource )
131
+ .withEvaluationContextAccessor (delegate .getEvaluationContextAccessor ());
132
+ }
133
+
116
134
/**
117
135
* Parses the query for {@link org.springframework.data.expression.ValueExpression value expressions} using the
118
136
* pattern:
@@ -137,15 +155,15 @@ public ParsedQuery parse(String query) {
137
155
* Creates a {@link EvaluatingValueExpressionQueryRewriter} from the current one and the given
138
156
* {@link QueryMethodValueEvaluationContextAccessor}.
139
157
*
140
- * @param factory must not be {@literal null}.
141
- * @return
158
+ * @param accessor must not be {@literal null}.
159
+ * @return EvaluatingValueExpressionQueryRewriter instance to rewrite and evaluate Value Expressions.
142
160
*/
143
161
public EvaluatingValueExpressionQueryRewriter withEvaluationContextAccessor (
144
- QueryMethodValueEvaluationContextAccessor factory ) {
162
+ QueryMethodValueEvaluationContextAccessor accessor ) {
145
163
146
- Assert .notNull (factory , "QueryMethodValueEvaluationContextAccessor must not be null" );
164
+ Assert .notNull (accessor , "QueryMethodValueEvaluationContextAccessor must not be null" );
147
165
148
- return new EvaluatingValueExpressionQueryRewriter (expressionParser , factory , parameterNameSource ,
166
+ return new EvaluatingValueExpressionQueryRewriter (expressionParser , accessor , parameterNameSource ,
149
167
replacementSource );
150
168
}
151
169
0 commit comments