org.springframework.data.repository.query

## Class SpelQueryContext

- java.lang.Object
- - org.springframework.data.repository.query.SpelQueryContext

Direct Known Subclasses:
  SpelQueryContext.EvaluatingSpelQueryContext

    public class SpelQueryContext
    extends Object

Source of `SpelQueryContext.SpelExtractor` encapsulating configuration often common for all queries.

Since:
  2.1
Author:
  Jens Schauder, Gerrit Meier, Mark Paluch

### Nested Class Summary

Nested Classes
`static class` `SpelQueryContext.EvaluatingSpelQueryContext` An extension of `SpelQueryContext` that can create `SpelEvaluator` instances as it also knows about a `QueryMethodEvaluationContextProvider`.
`class` `SpelQueryContext.SpelExtractor` Parses a query string, identifies the contained SpEL expressions, replaces them with bind parameters and offers a `Map` from those bind parameters to the SpEL expression.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static SpelQueryContext` `of(BiFunction<Integer,String,String> parameterNameSource, BiFunction<String,String,String> replacementSource)`
`SpelQueryContext.SpelExtractor` `parse(String query)` Parses the query for SpEL expressions using the pattern: <prefix>#{<spel>} with prefix being the character ':' or '?'.
`SpelQueryContext.EvaluatingSpelQueryContext` `withEvaluationContextProvider(QueryMethodEvaluationContextProvider provider)` Createsa `SpelQueryContext.EvaluatingSpelQueryContext` from the current one and the given `QueryMethodEvaluationContextProvider`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### of

    public static SpelQueryContext of(BiFunction<Integer,String,String> parameterNameSource,
                                      BiFunction<String,String,String> replacementSource)

#### parse

    public SpelQueryContext.SpelExtractor parse(String query)

Parses the query for SpEL expressions using the pattern:

     <prefix>#{<spel>}

with prefix being the character ':' or '?'. Parsing honors quoted Strings enclosed in single or double quotation marks.

Parameters:
  `query` - a query containing SpEL expressions in the format described above. Must not be null.
Returns:
  A `SpelQueryContext.SpelExtractor` which makes the query with SpEL expressions replaced by bind parameters and a map from bind parameter to SpEL expression available. Guaranteed to be not null.

#### withEvaluationContextProvider

    public SpelQueryContext.EvaluatingSpelQueryContext withEvaluationContextProvider(QueryMethodEvaluationContextProvider provider)

Createsa `SpelQueryContext.EvaluatingSpelQueryContext` from the current one and the given `QueryMethodEvaluationContextProvider`.

Parameters:
  `provider` - must not be null.
Returns: