org.springframework.data.spel

## Class ReactiveExtensionAwareEvaluationContextProvider

- java.lang.Object
- - org.springframework.data.spel.ReactiveExtensionAwareEvaluationContextProvider

All Implemented Interfaces:
  EvaluationContextProvider, ReactiveEvaluationContextProvider

    public class ReactiveExtensionAwareEvaluationContextProvider
    extends Object
    implements ReactiveEvaluationContextProvider

A reactive `EvaluationContextProvider` that assembles an `EvaluationContext` from a list of `ReactiveEvaluationContextExtension` and `EvaluationContextExtension` instances.

Since:
  2.4
Author:
  Mark Paluch

### Field Summary

### Fields inherited from interface org.springframework.data.spel.EvaluationContextProvider

`DEFAULT`

### Constructor Summary

Constructors
Constructor and Description
`ReactiveExtensionAwareEvaluationContextProvider()`
`ReactiveExtensionAwareEvaluationContextProvider(Collection<? extends ExtensionIdAware> extensions)` Creates a new `ReactiveExtensionAwareEvaluationContextProvider` for the given `EvaluationContextExtension`s.
`ReactiveExtensionAwareEvaluationContextProvider(ListableBeanFactory beanFactory)` Create a new `ReactiveExtensionAwareEvaluationContextProvider` with extensions looked up lazily from the given `ListableBeanFactory`.

### Method Summary

All Methods Instance Methods Concrete Methods
`EvaluationContext` `getEvaluationContext(Object rootObject)` Return a `EvaluationContext` built using the given parameter values.
`EvaluationContext` `getEvaluationContext(Object rootObject, ExpressionDependencies dependencies)` Return a tailored `EvaluationContext` built using the given parameter values and considering `expression dependencies`.
`reactor.core.publisher.Mono<StandardEvaluationContext>` `getEvaluationContextLater(Object rootObject)` Return a `EvaluationContext` built using the given parameter values.
`reactor.core.publisher.Mono<StandardEvaluationContext>` `getEvaluationContextLater(Object rootObject, ExpressionDependencies dependencies)` Return a tailored `EvaluationContext` built using the given parameter values and considering `expression dependencies`.

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

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

### Constructor Detail

#### ReactiveExtensionAwareEvaluationContextProvider

    public ReactiveExtensionAwareEvaluationContextProvider()

#### ReactiveExtensionAwareEvaluationContextProvider

    public ReactiveExtensionAwareEvaluationContextProvider(ListableBeanFactory beanFactory)

Create a new `ReactiveExtensionAwareEvaluationContextProvider` with extensions looked up lazily from the given `ListableBeanFactory`.

Parameters:
  `beanFactory` - the `ListableBeanFactory` to lookup extensions from.

#### ReactiveExtensionAwareEvaluationContextProvider

    public ReactiveExtensionAwareEvaluationContextProvider(Collection<? extends ExtensionIdAware> extensions)

Creates a new `ReactiveExtensionAwareEvaluationContextProvider` for the given `EvaluationContextExtension`s.

Parameters:
  `extensions` - must not be null.

### Method Detail

#### getEvaluationContext

    public EvaluationContext getEvaluationContext(Object rootObject)

Description copied from interface: `EvaluationContextProvider`
Return a `EvaluationContext` built using the given parameter values.

Specified by:
  `getEvaluationContext` in interface `EvaluationContextProvider`
Parameters:
  `rootObject` - the root object to set in the `EvaluationContext`.
Returns:

#### getEvaluationContext

    public EvaluationContext getEvaluationContext(Object rootObject,
                                                  ExpressionDependencies dependencies)

Description copied from interface: `EvaluationContextProvider`
Return a tailored `EvaluationContext` built using the given parameter values and considering `expression dependencies`. The returned `EvaluationContext` may contain a reduced visibility of methods and properties/fields according to the required `expression dependencies`.

Specified by:
  `getEvaluationContext` in interface `EvaluationContextProvider`
Parameters:
  `rootObject` - the root object to set in the `EvaluationContext`.
  `dependencies` - the requested expression dependencies to be available.
Returns:

#### getEvaluationContextLater

    public reactor.core.publisher.Mono<StandardEvaluationContext> getEvaluationContextLater(Object rootObject)

Description copied from interface: `ReactiveEvaluationContextProvider`
Return a `EvaluationContext` built using the given parameter values.

Specified by:
  `getEvaluationContextLater` in interface `ReactiveEvaluationContextProvider`
Parameters:
  `rootObject` - the root object to set in the `EvaluationContext`.
Returns:
  a mono that emits exactly one `EvaluationContext`.

#### getEvaluationContextLater

    public reactor.core.publisher.Mono<StandardEvaluationContext> getEvaluationContextLater(Object rootObject,
                                                                                            ExpressionDependencies dependencies)

Description copied from interface: `ReactiveEvaluationContextProvider`
Return a tailored `EvaluationContext` built using the given parameter values and considering `expression dependencies`. The returned `EvaluationContext` may contain a reduced visibility of methods and properties/fields according to the required `expression dependencies`.

Specified by:
  `getEvaluationContextLater` in interface `ReactiveEvaluationContextProvider`
Parameters:
  `rootObject` - the root object to set in the `EvaluationContext`.
  `dependencies` - the requested expression dependencies to be available.
Returns:
  a mono that emits exactly one `EvaluationContext`.