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

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and 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 Detail

    - #### 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