Interface RequestCondition<T>
- Type Parameters:
T
- the type of objects that this RequestCondition can be combined with and compared to
- All Known Implementing Classes:
AbstractRequestCondition
,CompositeRequestCondition
,ConsumesRequestCondition
,HeadersRequestCondition
,ParamsRequestCondition
,PatternsRequestCondition
,ProducesRequestCondition
,RequestConditionHolder
,RequestMappingInfo
,RequestMethodsRequestCondition
public interface RequestCondition<T>
Contract for request mapping conditions.Request conditions can be combined via
combine(Object)
, matched to a request viagetMatchingCondition(ServerWebExchange)
, and compared to each other viacompareTo(Object, ServerWebExchange)
to determine which is a closer match for a given request.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description T
combine(T other)
Combine this condition with another such as conditions from a type-level and method-level@RequestMapping
annotation.int
compareTo(T other, ServerWebExchange exchange)
Compare this condition to another condition in the context of a specific request.T
getMatchingCondition(ServerWebExchange exchange)
Check if the condition matches the request returning a potentially new instance created for the current request.
Method Detail
combine
T combine(T other)
Combine this condition with another such as conditions from a type-level and method-level@RequestMapping
annotation.- Parameters:
other
- the condition to combine with.- Returns:
- a request condition instance that is the result of combining the two condition instances.
getMatchingCondition
@Nullable T getMatchingCondition(ServerWebExchange exchange)
Check if the condition matches the request returning a potentially new instance created for the current request. For example a condition with multiple URL patterns may return a new instance only with those patterns that match the request.For CORS pre-flight requests, conditions should match to the would-be, actual request (e.g. URL pattern, query parameters, and the HTTP method from the "Access-Control-Request-Method" header). If a condition cannot be matched to a pre-flight request it should return an instance with empty content thus not causing a failure to match.
- Returns:
- a condition instance in case of a match or
null
otherwise.
compareTo
int compareTo(T other, ServerWebExchange exchange)
Compare this condition to another condition in the context of a specific request. This method assumes both instances have been obtained viagetMatchingCondition(ServerWebExchange)
to ensure they have content relevant to current request only.