Class ServerHttpResponseDecorator
- java.lang.Object
- org.springframework.http.server.reactive.ServerHttpResponseDecorator
- All Implemented Interfaces:
HttpMessage
,ReactiveHttpOutputMessage
,ServerHttpResponse
- Direct Known Subclasses:
HttpHeadResponseDecorator
public class ServerHttpResponseDecorator extends Object implements ServerHttpResponse
Wraps anotherServerHttpResponse
and delegates all methods to it. Sub-classes can override specific methods selectively.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description ServerHttpResponseDecorator(ServerHttpResponse delegate)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCookie(ResponseCookie cookie)
Add the givenResponseCookie
.void
beforeCommit(Supplier<? extends reactor.core.publisher.Mono<Void>> action)
Register an action to apply just before the HttpOutputMessage is committed.DataBufferFactory
bufferFactory()
Return aDataBufferFactory
that can be used to create the body.MultiValueMap<String,ResponseCookie>
getCookies()
Return a mutable map with the cookies to send to the server.ServerHttpResponse
getDelegate()
HttpHeaders
getHeaders()
Return the headers of this message.HttpStatus
getStatusCode()
Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server.boolean
isCommitted()
Whether the HttpOutputMessage is committed.reactor.core.publisher.Mono<Void>
setComplete()
Indicate that message handling is complete, allowing for any cleanup or end-of-processing tasks to be performed such as applying header changes made viaHttpMessage.getHeaders()
to the underlying HTTP message (if not applied already).boolean
setStatusCode(HttpStatus status)
Set the HTTP status code of the response.String
toString()
reactor.core.publisher.Mono<Void>
writeAndFlushWith(org.reactivestreams.Publisher<? extends org.reactivestreams.Publisher<? extends DataBuffer>> body)
Use the givenPublisher
ofPublishers
to write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after eachPublisher<DataBuffer>
.reactor.core.publisher.Mono<Void>
writeWith(org.reactivestreams.Publisher<? extends DataBuffer> body)
Use the givenPublisher
to write the body of the message to the underlying HTTP layer.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.http.server.reactive.ServerHttpResponse
getRawStatusCode, setRawStatusCode
Constructor Detail
ServerHttpResponseDecorator
public ServerHttpResponseDecorator(ServerHttpResponse delegate)
Method Detail
getDelegate
public ServerHttpResponse getDelegate()
setStatusCode
public boolean setStatusCode(@Nullable HttpStatus status)
Description copied from interface:ServerHttpResponse
Set the HTTP status code of the response.- Specified by:
setStatusCode
in interfaceServerHttpResponse
- Parameters:
status
- the HTTP status as anHttpStatus
enum value- Returns:
false
if the status code change wasn't processed because the HTTP response is committed,true
if successfully set.
getStatusCode
public HttpStatus getStatusCode()
Description copied from interface:ServerHttpResponse
Return the status code that has been set, or otherwise fall back on the status of the response from the underlying server. The return value may benull
if the status code value is outside theHttpStatus
enum range, or if there is no default value from the underlying server.- Specified by:
getStatusCode
in interfaceServerHttpResponse
getHeaders
public HttpHeaders getHeaders()
Description copied from interface:HttpMessage
Return the headers of this message.- Specified by:
getHeaders
in interfaceHttpMessage
- Returns:
- a corresponding HttpHeaders object (never
null
)
getCookies
public MultiValueMap<String,ResponseCookie> getCookies()
Description copied from interface:ServerHttpResponse
Return a mutable map with the cookies to send to the server.- Specified by:
getCookies
in interfaceServerHttpResponse
addCookie
public void addCookie(ResponseCookie cookie)
Description copied from interface:ServerHttpResponse
Add the givenResponseCookie
.- Specified by:
addCookie
in interfaceServerHttpResponse
- Parameters:
cookie
- the cookie to add
bufferFactory
public DataBufferFactory bufferFactory()
Description copied from interface:ReactiveHttpOutputMessage
Return aDataBufferFactory
that can be used to create the body.- Specified by:
bufferFactory
in interfaceReactiveHttpOutputMessage
- Returns:
- a buffer factory
- See Also:
ReactiveHttpOutputMessage.writeWith(Publisher)
beforeCommit
public void beforeCommit(Supplier<? extends reactor.core.publisher.Mono<Void>> action)
Description copied from interface:ReactiveHttpOutputMessage
Register an action to apply just before the HttpOutputMessage is committed.Note: the supplied action must be properly deferred, e.g. via
Mono.defer(java.util.function.Supplier<? extends reactor.core.publisher.Mono<? extends T>>)
orMono.fromRunnable(java.lang.Runnable)
, to ensure it's executed in the right order, relative to other actions.- Specified by:
beforeCommit
in interfaceReactiveHttpOutputMessage
- Parameters:
action
- the action to apply
isCommitted
public boolean isCommitted()
Description copied from interface:ReactiveHttpOutputMessage
Whether the HttpOutputMessage is committed.- Specified by:
isCommitted
in interfaceReactiveHttpOutputMessage
writeWith
public reactor.core.publisher.Mono<Void> writeWith(org.reactivestreams.Publisher<? extends DataBuffer> body)
Description copied from interface:ReactiveHttpOutputMessage
Use the givenPublisher
to write the body of the message to the underlying HTTP layer.- Specified by:
writeWith
in interfaceReactiveHttpOutputMessage
- Parameters:
body
- the body content publisher- Returns:
- a
Mono
that indicates completion or error
writeAndFlushWith
public reactor.core.publisher.Mono<Void> writeAndFlushWith(org.reactivestreams.Publisher<? extends org.reactivestreams.Publisher<? extends DataBuffer>> body)
Description copied from interface:ReactiveHttpOutputMessage
Use the givenPublisher
ofPublishers
to write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after eachPublisher<DataBuffer>
.- Specified by:
writeAndFlushWith
in interfaceReactiveHttpOutputMessage
- Parameters:
body
- the body content publisher- Returns:
- a
Mono
that indicates completion or error
setComplete
public reactor.core.publisher.Mono<Void> setComplete()
Description copied from interface:ReactiveHttpOutputMessage
Indicate that message handling is complete, allowing for any cleanup or end-of-processing tasks to be performed such as applying header changes made viaHttpMessage.getHeaders()
to the underlying HTTP message (if not applied already).This method should be automatically invoked at the end of message processing so typically applications should not have to invoke it. If invoked multiple times it should have no side effects.
- Specified by:
setComplete
in interfaceReactiveHttpOutputMessage
- Returns:
- a
Mono
that indicates completion or error