Class 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>
    A RestResponseResult handles a REST request asynchronously on the RestClient 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>
      • Nested classes/interfaces inherited from interface org.refcodes.web.UrlAccessor

        org.refcodes.web.UrlAccessor.UrlBuilder, org.refcodes.web.UrlAccessor.UrlMutator, org.refcodes.web.UrlAccessor.UrlProperty
    • Field Summary

      • Fields inherited from class org.refcodes.web.HttpClientRequestImpl

        _mediaTypeFactoryLookup
      • Fields inherited from class org.refcodes.web.HttpRequestImpl

        _headerFields, _httpMethod, _url
      • Fields inherited from interface org.refcodes.web.HttpClientRequest

        DEFAULT_REDIRECT_DEPTH
    • 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 new RestResponseResult.
      RestResponseResult​(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, Object aRequest, int aRedirectDepth, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
      Instantiates a new RestResponseResult.
      RestResponseResult​(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, Object aRequest, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
      Instantiates a new RestResponseResult.
      RestResponseResult​(org.refcodes.web.HttpMethod aHttpMethod, org.refcodes.web.Url aUrl, org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
      Instantiates a new RestResponseResult.
      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 new RestResponseResult.
      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 new RestResponseResult.
      RestResponseResult​(org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
      Instantiates a new RestResponseResult.
    • 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 received RestResponse.
      RestResponse getResult()
      Returns the expected RestResponse result, if none result is available it blocks until one is available (or this instance is notified via Object.notifyAll() or one of the close() methods).
      org.refcodes.web.Url getUrl()
      boolean hasResult()
      Tests whether there is already a HTTP-Response
      void onResponse​(RestResponseEvent aResponse)
      The invoker provides a response context being a RestResponseEvent describing the response being processed upon by your lambda'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 org.refcodes.web.HttpRequestImpl

        getHeaderFields
      • Methods inherited from interface org.refcodes.component.Closable

        closeIn, closeQuietly, closeUnchecked
      • Methods inherited from interface org.refcodes.component.Closable.CloseBuilder

        withCloseUnchecked
      • Methods inherited from interface org.refcodes.component.ConnectionStatusAccessor

        isOpened
      • Methods inherited from interface org.refcodes.web.HeaderFieldsAccessor

        getHeaderFields
      • 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.io.IoResultAccessor

        waitForResult
      • Methods inherited from interface org.refcodes.component.Openable

        openUnchecked
      • Methods inherited from interface org.refcodes.component.Openable.OpenBuilder

        withOpenUnchecked
      • Methods inherited from interface org.refcodes.web.QueryFieldsAccessor.QueryFieldsProperty

        letQueryFields
      • Methods inherited from interface org.refcodes.web.RedirectDepthAccessor

        getRedirectDepth
      • Methods inherited from interface org.refcodes.web.RedirectDepthAccessor.RedirectDepthMutator

        setRedirectDepth
      • Methods inherited from interface org.refcodes.web.RedirectDepthAccessor.RedirectDepthProperty

        letRedirectDepth
      • Methods inherited from interface org.refcodes.mixin.ResultAccessor

        waitForResult
    • 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 new RestResponseResult.
        Parameters:
        aHttpMethod - the http method
        aUrl - The Url from which to take the URL specific data.
        aRequest - the request
        aRedirectDepth - The redirect depth provides the count of HTTP-Request and HTTP-Response cycles where the response represents a redirect as of HttpStatusCode.isRedirectStatus(). A value of -1 represents the default behavior, e.g. using HttpURLConnection'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 new RestResponseResult.
        Parameters:
        aHttpMethod - the http method
        aUrl - The Url from which to take the URL specific data.
        aRequest - the request
        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,
                                  int aRedirectDepth,
                                  org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
        Instantiates a new RestResponseResult.
        Parameters:
        aHttpMethod - the http method
        aUrl - The Url from which to take the URL specific data.
        aHeaderFields - the Header-Fields
        aRequest - the request
        aRedirectDepth - The redirect depth provides the count of HTTP-Request and HTTP-Response cycles where the response represents a redirect as of HttpStatusCode.isRedirectStatus(). A value of -1 represents the default behavior, e.g. using HttpURLConnection'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 new RestResponseResult.
        Parameters:
        aHttpMethod - the http method
        aUrl - The Url from which to take the URL specific data.
        aHeaderFields - the Header-Fields
        aRequest - the request
        aMediaTypeFactoryLookup - 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 new RestResponseResult.
        Parameters:
        aHttpMethod - the http method
        aUrl - The Url 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 of HttpStatusCode.isRedirectStatus(). A value of -1 represents the default behavior, e.g. using HttpURLConnection'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 new RestResponseResult.
        Parameters:
        aHttpMethod - the http method
        aUrl - The Url from which to take the URL specific data.
        aMediaTypeFactoryLookup - the media type factory lookup
      • RestResponseResult

        public RestResponseResult​(org.refcodes.web.MediaTypeFactoryLookup aMediaTypeFactoryLookup)
        Instantiates a new RestResponseResult.
        Parameters:
        aMediaTypeFactoryLookup - the media type factory lookup
    • Method Detail

      • getResponse

        public RestResponse getResponse()
        This method retrieves the received RestResponse. It does not block and returns null if there is no result available yet. To block till a result is available, please call getResult().
        Specified by:
        getResponse in interface org.refcodes.mixin.ResponseAccessor<RestResponse>
      • getHttpMethod

        public org.refcodes.web.HttpMethod getHttpMethod()
        Specified by:
        getHttpMethod in interface org.refcodes.web.HttpMethodAccessor
        Overrides:
        getHttpMethod in class org.refcodes.web.HttpRequestImpl
      • setHttpMethod

        public void setHttpMethod​(org.refcodes.web.HttpMethod aHttpMethod)
        Specified by:
        setHttpMethod in interface org.refcodes.web.HttpMethodAccessor.HttpMethodMutator
      • open

        public void open()
                  throws IOException
        Specified by:
        open in interface org.refcodes.component.Openable
        Throws:
        IOException
      • close

        public void close()
                   throws IOException
        Specified by:
        close in interface org.refcodes.component.Closable
        Throws:
        IOException
      • getConnectionStatus

        public org.refcodes.component.ConnectionStatus getConnectionStatus()
        Specified by:
        getConnectionStatus in interface org.refcodes.component.ConnectionStatusAccessor
      • setHeaderFields

        public void setHeaderFields​(org.refcodes.web.RequestHeaderFields aHeaderFields)
        Specified by:
        setHeaderFields in interface org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsMutator<org.refcodes.web.RequestHeaderFields>
      • getUrl

        public org.refcodes.web.Url getUrl()
        Specified by:
        getUrl in interface org.refcodes.web.UrlAccessor
        Overrides:
        getUrl in class org.refcodes.web.HttpRequestImpl
      • setUrl

        public void setUrl​(org.refcodes.web.Url aUrl)
        Specified by:
        setUrl in interface org.refcodes.web.UrlAccessor.UrlMutator
      • hasResult

        public boolean hasResult()
        Tests whether there is already a HTTP-Response
        Specified by:
        hasResult in interface org.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 interface org.refcodes.web.QueryFieldsAccessor.QueryFieldsMutator
      • getQueryFields

        public org.refcodes.web.FormFields getQueryFields()
        Specified by:
        getQueryFields in interface org.refcodes.web.QueryFieldsAccessor
      • withUrl

        public RestResponseResult withUrl​(org.refcodes.web.Url aUrl)
        Specified by:
        withUrl in interface org.refcodes.web.UrlAccessor.UrlBuilder
      • withHttpMethod

        public RestResponseResult withHttpMethod​(org.refcodes.web.HttpMethod aHttpMethod)
        Specified by:
        withHttpMethod in interface org.refcodes.web.HttpMethodAccessor.HttpMethodBuilder<RestResponseResult>
      • withRequest

        public <REQ> RestResponseResult withRequest​(REQ aRequest)
        Specified by:
        withRequest in interface org.refcodes.web.HttpClientRequest.HttpClientRequestBuilder
      • withHeaderFields

        public RestResponseResult withHeaderFields​(org.refcodes.web.RequestHeaderFields aRequestHeaderFields)
        Specified by:
        withHeaderFields in interface org.refcodes.web.HeaderFieldsAccessor.HeaderFieldsBuilder<org.refcodes.web.RequestHeaderFields,​RestResponseResult>
      • withCloseQuietly

        public RestResponseResult withCloseQuietly()
        Specified by:
        withCloseQuietly in interface org.refcodes.component.Closable.CloseBuilder<org.refcodes.component.LinkComponent.LinkComponentBuilder<RestResponseResult>>
      • withCloseIn

        public RestResponseResult withCloseIn​(int aCloseInMillis)
        Specified by:
        withCloseIn in interface org.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 class org.refcodes.web.HttpClientRequestImpl
      • onResponse

        public void onResponse​(RestResponseEvent aResponse)
                        throws org.refcodes.web.HttpResponseException
        The invoker provides a response context being a RestResponseEvent describing the response being processed upon by your lambda's code. The method works synchronously and waits (blocks the caller's thread) till it finishes execution.
        Specified by:
        onResponse in interface RestResponseConsumer
        Parameters:
        aResponse - The response of type RestResponseEvent describing the response context. Use HttpClientResponseImpl.getResponse(Class) to retrieve the server's response body or HttpResponseImpl.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.