Package org.springframework.web.servlet.function

# Interface RequestPredicate

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface RequestPredicate
Represents a function that evaluates on a given `ServerRequest`. Instances of this function that evaluate on common request properties can be found in `RequestPredicates`.

Since:
  5.2
Author:
  Arjen Poutsma
See Also:
  - `RequestPredicates`
  - `RouterFunctions.route(RequestPredicate, HandlerFunction)`
  - `RouterFunctions.nest(RequestPredicate, RouterFunction)`

## Method Summary

Modifier and Type
Method
Description
`default void`
`accept(RequestPredicates.Visitor visitor)`
Accept the given visitor.
`default RequestPredicate`
`and(RequestPredicate other)`
Return a composed request predicate that tests against both this predicate AND the `other` predicate.
`default RequestPredicate`
`negate()`
Return a predicate that represents the logical negation of this predicate.
`default Optional<ServerRequest>`
`nest(ServerRequest request)`
Transform the given request into a request used for a nested route.
`default RequestPredicate`
`or(RequestPredicate other)`
Return a composed request predicate that tests against both this predicate OR the `other` predicate.
`boolean`
`test(ServerRequest request)`
Evaluate this predicate on the given request.

## Method Details

### test

boolean test(ServerRequest request)
Evaluate this predicate on the given request.

Parameters:
  `request` - the request to match against
Returns:
  `true` if the request matches the predicate; `false` otherwise

### and

default RequestPredicate and(RequestPredicate other)
Return a composed request predicate that tests against both this predicate AND the `other` predicate. When evaluating the composed predicate, if this predicate is `false`, then the `other` predicate is not evaluated.

Parameters:
  `other` - a predicate that will be logically-ANDed with this predicate
Returns:
  a predicate composed of this predicate AND the `other` predicate

### negate

default RequestPredicate negate()
Return a predicate that represents the logical negation of this predicate.

Returns:
  a predicate that represents the logical negation of this predicate

### or

default RequestPredicate or(RequestPredicate other)
Return a composed request predicate that tests against both this predicate OR the `other` predicate. When evaluating the composed predicate, if this predicate is `true`, then the `other` predicate is not evaluated.

Parameters:
  `other` - a predicate that will be logically-ORed with this predicate
Returns:
  a predicate composed of this predicate OR the `other` predicate

### nest

default Optional<ServerRequest> nest(ServerRequest request)
Transform the given request into a request used for a nested route. For instance, a path-based predicate can return a `ServerRequest` with a path remaining after a match.

The default implementation returns an `Optional` wrapping the given request if `test(ServerRequest)` evaluates to `true`; or `Optional.empty()` if it evaluates to `false`.

Parameters:
  `request` - the request to be nested
Returns:
  the nested request
See Also:
  - `RouterFunctions.nest(RequestPredicate, RouterFunction)`

### accept

default void accept(RequestPredicates.Visitor visitor)
Accept the given visitor. Default implementation calls `RequestPredicates.Visitor.unknown(RequestPredicate)`; composed `RequestPredicate` implementations are expected to call `accept` for all components that make up this request predicate.

Parameters:
  `visitor` - the visitor to accept