org.springframework.web.servlet.mvc.method

## Class RequestMappingInfo

- java.lang.Object
- - org.springframework.web.servlet.mvc.method.RequestMappingInfo

All Implemented Interfaces:
  RequestCondition<RequestMappingInfo>

    public final class RequestMappingInfo
    extends Object
    implements RequestCondition<RequestMappingInfo>

Encapsulates the following request mapping conditions:

1. `PatternsRequestCondition`
2. `RequestMethodsRequestCondition`
3. `ParamsRequestCondition`
4. `HeadersRequestCondition`
5. `ConsumesRequestCondition`
6. `ProducesRequestCondition`
7. `RequestCondition<?>` (optional, custom request condition)

Since:
  3.1
Author:
  Arjen Poutsma, Rossen Stoyanchev

### Constructor Summary

Constructors
Constructor and Description
`RequestMappingInfo(PatternsRequestCondition patterns, RequestMethodsRequestCondition methods, ParamsRequestCondition params, HeadersRequestCondition headers, ConsumesRequestCondition consumes, ProducesRequestCondition produces, RequestCondition<?> custom)` Creates a new instance with the given request conditions.
`RequestMappingInfo(RequestMappingInfo info, RequestCondition<?> customRequestCondition)` Re-create a RequestMappingInfo with the given custom request condition.

### Method Summary

Methods
`RequestMappingInfo` `combine(RequestMappingInfo other)` Combines "this" request mapping info (i.e.
`int` `compareTo(RequestMappingInfo other, HttpServletRequest request)` Compares "this" info (i.e.
`boolean` `equals(Object obj)`
`ConsumesRequestCondition` `getConsumesCondition()` Returns the "consumes" condition of this `RequestMappingInfo`; or instance with 0 consumes expressions, never `null`
`RequestCondition<?>` `getCustomCondition()` Returns the "custom" condition of this `RequestMappingInfo`; or `null`
`HeadersRequestCondition` `getHeadersCondition()` Returns the "headers" condition of this `RequestMappingInfo`; or instance with 0 header expressions, never `null`
`RequestMappingInfo` `getMatchingCondition(HttpServletRequest request)` Checks if all conditions in this request mapping info match the provided request and returns a potentially new request mapping info with conditions tailored to the current request.
`RequestMethodsRequestCondition` `getMethodsCondition()` Returns the HTTP request methods of this `RequestMappingInfo`; or instance with 0 request methods, never `null`
`ParamsRequestCondition` `getParamsCondition()` Returns the "parameters" condition of this `RequestMappingInfo`; or instance with 0 parameter expressions, never `null`
`PatternsRequestCondition` `getPatternsCondition()` Returns the URL patterns of this `RequestMappingInfo`; or instance with 0 patterns, never `null`
`ProducesRequestCondition` `getProducesCondition()` Returns the "produces" condition of this `RequestMappingInfo`; or instance with 0 produces expressions, never `null`
`int` `hashCode()`
`String` `toString()`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### RequestMappingInfo

    public RequestMappingInfo(PatternsRequestCondition patterns,
                      RequestMethodsRequestCondition methods,
                      ParamsRequestCondition params,
                      HeadersRequestCondition headers,
                      ConsumesRequestCondition consumes,
                      ProducesRequestCondition produces,
                      RequestCondition<?> custom)

Creates a new instance with the given request conditions.

#### RequestMappingInfo

    public RequestMappingInfo(RequestMappingInfo info,
                      RequestCondition<?> customRequestCondition)

Re-create a RequestMappingInfo with the given custom request condition.

### Method Detail

#### getPatternsCondition

    public PatternsRequestCondition getPatternsCondition()

Returns the URL patterns of this `RequestMappingInfo`; or instance with 0 patterns, never `null`

#### getMethodsCondition

    public RequestMethodsRequestCondition getMethodsCondition()

Returns the HTTP request methods of this `RequestMappingInfo`; or instance with 0 request methods, never `null`

#### getParamsCondition

    public ParamsRequestCondition getParamsCondition()

Returns the "parameters" condition of this `RequestMappingInfo`; or instance with 0 parameter expressions, never `null`

#### getHeadersCondition

    public HeadersRequestCondition getHeadersCondition()

Returns the "headers" condition of this `RequestMappingInfo`; or instance with 0 header expressions, never `null`

#### getConsumesCondition

    public ConsumesRequestCondition getConsumesCondition()

Returns the "consumes" condition of this `RequestMappingInfo`; or instance with 0 consumes expressions, never `null`

#### getProducesCondition

    public ProducesRequestCondition getProducesCondition()

Returns the "produces" condition of this `RequestMappingInfo`; or instance with 0 produces expressions, never `null`

#### getCustomCondition

    public RequestCondition<?> getCustomCondition()

Returns the "custom" condition of this `RequestMappingInfo`; or `null`

#### combine

    public RequestMappingInfo combine(RequestMappingInfo other)

Combines "this" request mapping info (i.e. the current instance) with another request mapping info instance.

Example: combine type- and method-level request mappings.

Specified by:
  `combine` in interface `RequestCondition<RequestMappingInfo>`
Parameters:
  `other` - the condition to combine with.
Returns:
  a new request mapping info instance; never `null`

#### getMatchingCondition

    public RequestMappingInfo getMatchingCondition(HttpServletRequest request)

Checks if all conditions in this request mapping info match the provided request and returns a potentially new request mapping info with conditions tailored to the current request.

For example the returned instance may contain the subset of URL patterns that match to the current request, sorted with best matching patterns on top.

Specified by:
  `getMatchingCondition` in interface `RequestCondition<RequestMappingInfo>`
Returns:
  a new instance in case all conditions match; or `null` otherwise

#### compareTo

    public int compareTo(RequestMappingInfo other,
                HttpServletRequest request)

Compares "this" info (i.e. the current instance) with another info in the context of a request.

Note: it is assumed both instances have been obtained via `getMatchingCondition(HttpServletRequest)` to ensure they have conditions with content relevant to current request.

Specified by:
  `compareTo` in interface `RequestCondition<RequestMappingInfo>`

#### equals

    public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`