- java.lang.Object
-
- org.refcodes.web.HttpRequestImpl
-
- org.refcodes.web.HttpClientRequestImpl
-
- org.refcodes.rest.RestResponseResult
-
- All Implemented Interfaces:
org.refcodes.component.Closable
,org.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
,org.refcodes.component.ConnectionStatusAccessor
,org.refcodes.component.LinkComponent
,org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>
,org.refcodes.component.Openable
,org.refcodes.component.Openable.OpenBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
,org.refcodes.component.OpenedAccessor
,org.refcodes.io.IoResultAccessor<RestResponse,InterruptedException>
,org.refcodes.mixin.ResponseAccessor<RestResponse>
,org.refcodes.mixin.ResultAccessor<RestResponse,InterruptedException>
,RestResponseConsumer
,org.refcodes.web.HeaderFieldsAccessor<org.refcodes.web.RequestHeaderFields>
,org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsBuilder<org.refcodes.web.RequestHeaderFields,RestResponseResult>
,org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsMutator<org.refcodes.web.RequestHeaderFields>
,org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsProperty<org.refcodes.web.RequestHeaderFields>
,org.refcodes.web.HttpBodyAccessor.HttpBodyProvider<org.refcodes.web.BadRequestException>
,org.refcodes.web.HttpClientRequest
,org.refcodes.web.HttpClientRequest.HttpClientRequestBuilder
,org.refcodes.web.HttpMethodAccessor
,org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<RestResponseResult>
,org.refcodes.web.HttpMethodAccessor.HttpMethodMutator
,org.refcodes.web.HttpMethodAccessor.HttpMethodProperty
,org.refcodes.web.HttpRequest
,org.refcodes.web.HttpRequestBuilder<RestResponseResult>
,org.refcodes.web.QueryFieldsAccessor
,org.refcodes.web.QueryFieldsAccessor.QueryFieldsMutator
,org.refcodes.web.QueryFieldsAccessor.QueryFieldsProperty
,org.refcodes.web.RedirectDepthAccessor
,org.refcodes.web.RedirectDepthAccessor.RedirectDepthBuilder<org.refcodes.web.HttpClientRequest.HttpClientRequestBuilder>
,org.refcodes.web.RedirectDepthAccessor.RedirectDepthMutator
,org.refcodes.web.RedirectDepthAccessor.RedirectDepthProperty
,org.refcodes.web.UrlAccessor
,org.refcodes.web.UrlAccessor.UrlBuilder
,org.refcodes.web.UrlAccessor.UrlMutator
public class RestResponseResult extends org.refcodes.web.HttpClientRequestImpl implements RestResponseConsumer, org.refcodes.web.HttpClientRequest, org.refcodes.web.QueryFieldsAccessor.QueryFieldsProperty, org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsProperty<org.refcodes.web.RequestHeaderFields>, org.refcodes.web.HttpClientRequest.HttpClientRequestBuilder, org.refcodes.web.HttpRequestBuilder<RestResponseResult>, org.refcodes.web.HttpMethodAccessor.HttpMethodProperty, org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<RestResponseResult>, org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>, org.refcodes.component.ConnectionStatusAccessor, org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsBuilder<org.refcodes.web.RequestHeaderFields,RestResponseResult>, org.refcodes.io.IoResultAccessor<RestResponse,InterruptedException>, org.refcodes.mixin.ResponseAccessor<RestResponse>
ARestResponseResult
handles a REST request asynchronously on theRestClient
instance's side to do the actual technical implementation of sending that request (or mocking the send-out of a request).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.component.Closable
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusMutator, org.refcodes.component.ConnectionStatusAccessor.ConnectionStatusProperty
-
Nested classes/interfaces inherited from interface org.refcodes.web.HeaderFieldsAccessor
org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsBuilder<T extends org.refcodes.web.HeaderFields<?,?>,B extends org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsBuilder<T,B>>, org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsMutator<T extends org.refcodes.web.HeaderFields<?,?>>, org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsProperty<T extends org.refcodes.web.HeaderFields<?,?>>
-
Nested classes/interfaces inherited from interface org.refcodes.web.HttpClientRequest
org.refcodes.web.HttpClientRequest.HttpClientRequestBuilder
-
Nested classes/interfaces inherited from interface org.refcodes.web.HttpMethodAccessor
org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<B extends org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<B>>, org.refcodes.web.HttpMethodAccessor.HttpMethodMutator, org.refcodes.web.HttpMethodAccessor.HttpMethodProperty
-
Nested classes/interfaces inherited from interface org.refcodes.component.LinkComponent
org.refcodes.component.LinkComponent.LinkAutomaton, org.refcodes.component.LinkComponent.LinkComponentBuilder<B extends org.refcodes.component.LinkComponent.LinkComponentBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.Openable
org.refcodes.component.Openable.OpenAutomaton, org.refcodes.component.Openable.OpenBuilder<B extends org.refcodes.component.Openable.OpenBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
org.refcodes.component.OpenedAccessor.OpenedMutator, org.refcodes.component.OpenedAccessor.OpenedProperty
-
Nested classes/interfaces inherited from interface org.refcodes.web.QueryFieldsAccessor
org.refcodes.web.QueryFieldsAccessor.QueryFieldsBuilder<B extends org.refcodes.web.QueryFieldsAccessor.QueryFieldsBuilder<?>>, org.refcodes.web.QueryFieldsAccessor.QueryFieldsMutator, org.refcodes.web.QueryFieldsAccessor.QueryFieldsProperty
-
Nested classes/interfaces inherited from interface org.refcodes.web.RedirectDepthAccessor
org.refcodes.web.RedirectDepthAccessor.RedirectDepthBuilder<B extends org.refcodes.web.RedirectDepthAccessor.RedirectDepthBuilder<B>>, org.refcodes.web.RedirectDepthAccessor.RedirectDepthMutator, org.refcodes.web.RedirectDepthAccessor.RedirectDepthProperty
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.ResponseAccessor
org.refcodes.mixin.ResponseAccessor.ResponseBuilder<RES extends Object,B extends org.refcodes.mixin.ResponseAccessor.ResponseBuilder<RES,B>>, org.refcodes.mixin.ResponseAccessor.ResponseMutator<RES extends Object>, org.refcodes.mixin.ResponseAccessor.ResponseProperty<RES extends Object>
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.ResultAccessor
org.refcodes.mixin.ResultAccessor.ResultBuilder<RES extends Object,B extends org.refcodes.mixin.ResultAccessor.ResultBuilder<RES,B>>, org.refcodes.mixin.ResultAccessor.ResultMutator<RES extends Object>, org.refcodes.mixin.ResultAccessor.ResultProperty<RES extends Object,EXC extends Exception>
-
-
Constructor Summary
Constructors Constructor Description RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, Object aRequest, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, Object aRequest, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.RequestHeaderFields aHeaderFields, Object aRequest, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.RequestHeaderFields aHeaderFields, Object aRequest, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.RestResponseResult(org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RestResponseResult
build(RestClient aRestClient)
This is a convenience method for easily instantiating the according builder.void
close()
org.refcodes.component.ConnectionStatus
getConnectionStatus()
org.refcodes.web.HttpMethod
getHttpMethod()
org.refcodes.web.FormFields
getQueryFields()
RestResponse
getResponse()
This method retrieves the receivedRestResponse
.RestResponse
getResult()
Returns the expectedRestResponse
result, if none result is available it blocks until one is available (or this instance is notified viaObject.notifyAll()
or one of theclose()
methods).org.refcodes.web.Url
getUrl()
boolean
hasResult()
Tests whether there is already a HTTP-Responsevoid
onResponse(RestResponseEvent aResponse)
The invoker provides a response context being aRestResponseEvent
describing the response being processed upon by yourlambda
's code.void
open()
void
setHeaderFields(org.refcodes.web.RequestHeaderFields aHeaderFields)
void
setHttpMethod(org.refcodes.web.HttpMethod aHttpMethod)
void
setQueryFields(org.refcodes.web.FormFields aQueryFields)
void
setUrl(org.refcodes.web.Url aUrl)
String
toString()
RestResponseResult
withClose()
RestResponseResult
withCloseIn(int aCloseInMillis)
RestResponseResult
withCloseQuietly()
RestResponseResult
withHeaderFields(org.refcodes.web.RequestHeaderFields aRequestHeaderFields)
RestResponseResult
withHttpMethod(org.refcodes.web.HttpMethod aHttpMethod)
RestResponseResult
withOpen()
<REQ> RestResponseResult
withRequest(REQ aRequest)
RestResponseResult
withUrl(org.refcodes.web.Url aUrl)
-
Methods inherited from class org.refcodes.web.HttpClientRequestImpl
getRedirectDepth, getRequest, setRedirectDepth, setRequest, toHttpBody
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsProperty
letHeaderFields
-
Methods inherited from interface org.refcodes.web.HttpClientRequest
getRequest, setRequest, toHttpBody
-
Methods inherited from interface org.refcodes.web.HttpClientRequest.HttpClientRequestBuilder
withRedirectDepth
-
Methods inherited from interface org.refcodes.web.HttpMethodAccessor.HttpMethodProperty
letHttpMethod
-
Methods inherited from interface org.refcodes.web.HttpRequestBuilder
withAddToHeaderFields, withAddToHeaderFields, withAddToHeaderFields, withAddToHeaderFields, withAddToHeaderFields, withAddToQueryFields, withAddToQueryFields, withAddToQueryFields
-
Methods inherited from interface org.refcodes.web.QueryFieldsAccessor.QueryFieldsProperty
letQueryFields
-
Methods inherited from interface org.refcodes.web.RedirectDepthAccessor.RedirectDepthMutator
setRedirectDepth
-
-
-
-
Constructor Detail
-
RestResponseResult
public RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, Object aRequest, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aHttpMethod
- the http methodaUrl
- TheUrl
from which to take the URL specific data.aRequest
- the requestaRedirectDepth
- The redirect depth provides the count of HTTP-Request and HTTP-Response cycles where the response represents a redirect as ofHttpStatusCode.isRedirectStatus()
. A value of -1 represents the default behavior, e.g. usingHttpURLConnection
's redirection means.aMediaTypeFactoryLookup
- the media type factory lookup
-
RestResponseResult
public RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, Object aRequest, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aHttpMethod
- the http methodaUrl
- TheUrl
from which to take the URL specific data.aRequest
- the requestaMediaTypeFactoryLookup
- the media type factory lookup
-
RestResponseResult
public RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.RequestHeaderFields aHeaderFields, Object aRequest, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aHttpMethod
- the http methodaUrl
- TheUrl
from which to take the URL specific data.aHeaderFields
- the Header-FieldsaRequest
- the requestaRedirectDepth
- The redirect depth provides the count of HTTP-Request and HTTP-Response cycles where the response represents a redirect as ofHttpStatusCode.isRedirectStatus()
. A value of -1 represents the default behavior, e.g. usingHttpURLConnection
's redirection means.aMediaTypeFactoryLookup
- the media type factory lookup
-
RestResponseResult
public RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.RequestHeaderFields aHeaderFields, Object aRequest, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aHttpMethod
- the http methodaUrl
- TheUrl
from which to take the URL specific data.aHeaderFields
- the Header-FieldsaRequest
- the requestaMediaTypeFactoryLookup
- the media type factory lookup
-
RestResponseResult
public RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aHttpMethod
- the http methodaUrl
- TheUrl
from which to take the URL specific data.aRedirectDepth
- The redirect depth provides the count of HTTP-Request and HTTP-Response cycles where the response represents a redirect as ofHttpStatusCode.isRedirectStatus()
. A value of -1 represents the default behavior, e.g. usingHttpURLConnection
's redirection means.aMediaTypeFactoryLookup
- the media type factory lookup
-
RestResponseResult
public RestResponseResult(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aHttpMethod
- the http methodaUrl
- TheUrl
from which to take the URL specific data.aMediaTypeFactoryLookup
- the media type factory lookup
-
RestResponseResult
public RestResponseResult(org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
Instantiates a newRestResponseResult
.- Parameters:
aMediaTypeFactoryLookup
- the media type factory lookup
-
-
Method Detail
-
getResult
public RestResponse getResult() throws InterruptedException
Returns the expectedRestResponse
result, if none result is available it blocks until one is available (or this instance is notified viaObject.notifyAll()
or one of theclose()
methods). To test for a result, callhasResult()
. The methodgetResult()
does not block and returns null if there is no result available yet.- Specified by:
getResult
in interfaceorg.refcodes.mixin.ResultAccessor<RestResponse,InterruptedException>
- Returns:
- The
RestResponse
as soon as it is available. - Throws:
InterruptedException
- thrown in case this blocking method is interrupted by invokingObject.notifyAll()
.
-
getResponse
public RestResponse getResponse()
This method retrieves the receivedRestResponse
. It does not block and returns null if there is no result available yet. To block till a result is available, please callgetResult()
.- Specified by:
getResponse
in interfaceorg.refcodes.mixin.ResponseAccessor<RestResponse>
-
getHttpMethod
public org.refcodes.web.HttpMethod getHttpMethod()
- Specified by:
getHttpMethod
in interfaceorg.refcodes.web.HttpMethodAccessor
- Overrides:
getHttpMethod
in classorg.refcodes.web.HttpRequestImpl
-
setHttpMethod
public void setHttpMethod(org.refcodes.web.HttpMethod aHttpMethod)
- Specified by:
setHttpMethod
in interfaceorg.refcodes.web.HttpMethodAccessor.HttpMethodMutator
-
open
public void open() throws IOException
- Specified by:
open
in interfaceorg.refcodes.component.Openable
- Throws:
IOException
-
close
public void close() throws IOException
- Specified by:
close
in interfaceorg.refcodes.component.Closable
- Throws:
IOException
-
getConnectionStatus
public org.refcodes.component.ConnectionStatus getConnectionStatus()
- Specified by:
getConnectionStatus
in interfaceorg.refcodes.component.ConnectionStatusAccessor
-
setHeaderFields
public void setHeaderFields(org.refcodes.web.RequestHeaderFields aHeaderFields)
- Specified by:
setHeaderFields
in interfaceorg.refcodes.web.HeaderFieldsAccessor.HeaderFieldsMutator<org.refcodes.web.RequestHeaderFields>
-
getUrl
public org.refcodes.web.Url getUrl()
- Specified by:
getUrl
in interfaceorg.refcodes.web.UrlAccessor
- Overrides:
getUrl
in classorg.refcodes.web.HttpRequestImpl
-
setUrl
public void setUrl(org.refcodes.web.Url aUrl)
- Specified by:
setUrl
in interfaceorg.refcodes.web.UrlAccessor.UrlMutator
-
hasResult
public boolean hasResult()
Tests whether there is already a HTTP-Response- Specified by:
hasResult
in interfaceorg.refcodes.mixin.ResultAccessor<RestResponse,InterruptedException>
- Returns:
- True in case there is a HTTP-Response, else false.
-
setQueryFields
public void setQueryFields(org.refcodes.web.FormFields aQueryFields)
- Specified by:
setQueryFields
in interfaceorg.refcodes.web.QueryFieldsAccessor.QueryFieldsMutator
-
getQueryFields
public org.refcodes.web.FormFields getQueryFields()
- Specified by:
getQueryFields
in interfaceorg.refcodes.web.QueryFieldsAccessor
-
withUrl
public RestResponseResult withUrl(org.refcodes.web.Url aUrl)
- Specified by:
withUrl
in interfaceorg.refcodes.web.UrlAccessor.UrlBuilder
-
withHttpMethod
public RestResponseResult withHttpMethod(org.refcodes.web.HttpMethod aHttpMethod)
- Specified by:
withHttpMethod
in interfaceorg.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<RestResponseResult>
-
withRequest
public <REQ> RestResponseResult withRequest(REQ aRequest)
- Specified by:
withRequest
in interfaceorg.refcodes.web.HttpClientRequest.HttpClientRequestBuilder
-
withHeaderFields
public RestResponseResult withHeaderFields(org.refcodes.web.RequestHeaderFields aRequestHeaderFields)
- Specified by:
withHeaderFields
in interfaceorg.refcodes.web.HeaderFieldsAccessor.HeaderFieldsBuilder<org.refcodes.web.RequestHeaderFields,RestResponseResult>
-
withOpen
public RestResponseResult withOpen() throws IOException
- Specified by:
withOpen
in interfaceorg.refcodes.component.Openable.OpenBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
- Throws:
IOException
-
withClose
public RestResponseResult withClose() throws IOException
- Specified by:
withClose
in interfaceorg.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
- Throws:
IOException
-
withCloseQuietly
public RestResponseResult withCloseQuietly()
- Specified by:
withCloseQuietly
in interfaceorg.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
-
withCloseIn
public RestResponseResult withCloseIn(int aCloseInMillis)
- Specified by:
withCloseIn
in interfaceorg.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
-
build
public RestResponseResult build(RestClient aRestClient)
This is a convenience method for easily instantiating the according builder.- Parameters:
aRestClient
- the rest client to take care of the caller.- Returns:
- an instance (using a public implementation) of this builder
-
toString
public String toString()
- Overrides:
toString
in classorg.refcodes.web.HttpClientRequestImpl
-
onResponse
public void onResponse(RestResponseEvent aResponse) throws org.refcodes.web.HttpResponseException
The invoker provides a response context being aRestResponseEvent
describing the response being processed upon by yourlambda
's code. The method works synchronously and waits (blocks the caller's thread) till it finishes execution.- Specified by:
onResponse
in interfaceRestResponseConsumer
- Parameters:
aResponse
- The response of typeRestResponseEvent
describing the response context. UseHttpClientResponseImpl.getResponse(Class)
to retrieve the server's response body orHttpResponseImpl.getHttpStatusCode()
to retrieve the respone's HTTP Status-Code.- Throws:
org.refcodes.web.HttpResponseException
- thrown by a HTTP-Response handling system in case of some unexpected response.
-
-