Package org.springframework.web.servlet.mvc.method.annotation

# Class RequestBodyAdviceAdapter

java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter

All Implemented Interfaces:
  `RequestBodyAdvice`

Direct Known Subclasses:
  `JsonViewRequestBodyAdvice`

public abstract class RequestBodyAdviceAdapter extends Object implements RequestBodyAdvice
A convenient starting point for implementing `RequestBodyAdvice` with default method implementations.

Subclasses are required to implement `RequestBodyAdvice.supports(org.springframework.core.MethodParameter, java.lang.reflect.Type, java.lang.Class<? extends org.springframework.http.converter.HttpMessageConverter<?>>)` to return true depending on when the advice applies.

Since:
  4.2
Author:
  Rossen Stoyanchev

## Constructor Summary

Constructors
Constructor
Description
`RequestBodyAdviceAdapter()`

## Method Summary

Modifier and Type
Method
Description
`Object`
`afterBodyRead(Object body, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)`
The default implementation returns the body that was passed in.
`org.springframework.http.HttpInputMessage`
`beforeBodyRead(org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)`
The default implementation returns the InputMessage that was passed in.
`Object`
`handleEmptyBody(Object body, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)`
The default implementation returns the body that was passed in.

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

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

### Methods inherited from interface org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdvice

`supports`

## Constructor Details

### RequestBodyAdviceAdapter

public RequestBodyAdviceAdapter()

## Method Details

### beforeBodyRead

public org.springframework.http.HttpInputMessage beforeBodyRead(org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType) throws IOException
The default implementation returns the InputMessage that was passed in.

Specified by:
  `beforeBodyRead` in interface `RequestBodyAdvice`
Parameters:
  `inputMessage` - the request
  `parameter` - the target method parameter
  `targetType` - the target type, not necessarily the same as the method parameter type, for example, for `HttpEntity<String>`.
  `converterType` - the converter used to deserialize the body
Returns:
  the input request or a new instance (never `null`)
Throws:
  `IOException`

### afterBodyRead

public Object afterBodyRead(Object body, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)
The default implementation returns the body that was passed in.

Specified by:
  `afterBodyRead` in interface `RequestBodyAdvice`
Parameters:
  `body` - set to the converter Object before the first advice is called
  `inputMessage` - the request
  `parameter` - the target method parameter
  `targetType` - the target type, not necessarily the same as the method parameter type, for example, for `HttpEntity<String>`.
  `converterType` - the converter used to deserialize the body
Returns:
  the same body or a new instance

### handleEmptyBody

@Nullable public Object handleEmptyBody(@Nullable Object body, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)
The default implementation returns the body that was passed in.

Specified by:
  `handleEmptyBody` in interface `RequestBodyAdvice`
Parameters:
  `body` - usually set to `null` before the first advice is called
  `inputMessage` - the request
  `parameter` - the method parameter
  `targetType` - the target type, not necessarily the same as the method parameter type, for example, for `HttpEntity<String>`.
  `converterType` - the selected converter type
Returns:
  the value to use, or `null` which may then raise an `HttpMessageNotReadableException` if the argument is required