R
- the generic type of this ResponseType
to be matched and converted.public interface ResponseType<R> extends Serializable
QueryBus
/QueryGateway
.
By wrapping the response type as a generic R
, we can easily service the expected response as a single
instance, a list, a page etc., based on the selected implementation even while the query handler return type might be
slightly different.
It is in charge of matching the response type of a query handler with the given generic R
.
If this match returns true, it signals the found query handler can handle the intended query.
As a follow up, the response retrieved from a query handler should move through the
convert(Object)
function to guarantee the right response type is returned.to instantiate a {@link ResponseType} implementation
Modifier and Type | Method and Description |
---|---|
default R |
convert(Object response)
|
default ResponseType<?> |
forSerialization()
Returns the
ResponseType instance that should be used when serializing responses. |
Class<?> |
getExpectedResponseType()
Gets actual response type or generic placeholder.
|
boolean |
matches(Type responseType)
Match the query handler its response
Type with the ResponseType implementation
its expected response type R . |
Class<R> |
responseMessagePayloadType()
Returns a
Class representing the type of the payload to be contained in the response message. |
boolean matches(Type responseType)
Type
with the ResponseType
implementation
its expected response type R
. Will return true if a response can be converted based on the given
responseType
and false if it cannot.responseType
- the response Type
of the query handler which is matched againstresponseType
and false if it cannotdefault R convert(Object response)
response
of type Object
into the type R
of this
ResponseType
instance. Should only be called if matches(Type)
returns true.
It is unspecified what this function does if the matches(Type)
returned false.response
- the Object
to convert into R
response
of type R
Class<R> responseMessagePayloadType()
Class
representing the type of the payload to be contained in the response message.Class
representing the type of the payload to be contained in the response messageClass<?> getExpectedResponseType()
default ResponseType<?> forSerialization()
ResponseType
instance that should be used when serializing responses. This method
has a default implementation that returns this
. Implementations that describe a Response Type
that is not suited for serialization, should return an alternative that is suitable, and ensure the
convert(Object)
is capable of converting that type of response to the request type in this instance.ResponseType
instance describing a type suitable for serializationCopyright © 2010–2020. All rights reserved.