@@ -98,21 +98,39 @@ private ValueExpressionQueryRewriter(ValueExpressionParser expressionParser,
9898 }
9999
100100 /**
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.
103102 *
104103 * @param expressionParser the expression parser to use.
105104 * @param parameterNameSource function to generate parameter names. Typically, a function of the form
106105 * {@code (index, expression) -> "__some_placeholder_" + index}.
107106 * @param replacementSource function to generate replacements. Typically, a concatenation of the prefix and the
108107 * parameter name such as {@code String::concat}.
109- * @return
108+ * @return a ValueExpressionQueryRewriter instance to rewrite queries and extract parsed {@link ValueExpression}s.
110109 */
111110 public static ValueExpressionQueryRewriter of (ValueExpressionParser expressionParser ,
112111 BiFunction <Integer , String , String > parameterNameSource , BiFunction <String , String , String > replacementSource ) {
113112 return new ValueExpressionQueryRewriter (expressionParser , parameterNameSource , replacementSource );
114113 }
115114
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+
116134 /**
117135 * Parses the query for {@link org.springframework.data.expression.ValueExpression value expressions} using the
118136 * pattern:
@@ -137,15 +155,15 @@ public ParsedQuery parse(String query) {
137155 * Creates a {@link EvaluatingValueExpressionQueryRewriter} from the current one and the given
138156 * {@link QueryMethodValueEvaluationContextAccessor}.
139157 *
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.
142160 */
143161 public EvaluatingValueExpressionQueryRewriter withEvaluationContextAccessor (
144- QueryMethodValueEvaluationContextAccessor factory ) {
162+ QueryMethodValueEvaluationContextAccessor accessor ) {
145163
146- Assert .notNull (factory , "QueryMethodValueEvaluationContextAccessor must not be null" );
164+ Assert .notNull (accessor , "QueryMethodValueEvaluationContextAccessor must not be null" );
147165
148- return new EvaluatingValueExpressionQueryRewriter (expressionParser , factory , parameterNameSource ,
166+ return new EvaluatingValueExpressionQueryRewriter (expressionParser , accessor , parameterNameSource ,
149167 replacementSource );
150168 }
151169
0 commit comments