Class AbstractClient

java.lang.Object
rs.jerseyclient.util.AbstractClient
Direct Known Subclasses:
JerseyClient

public abstract class AbstractClient extends Object
The abstract implementation of all REST clients.

The class can already handle paging (with page and pageSize query parameters) as well as sorting (with sort parameter}.

Author:
ralph
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Constructor.
    protected
    AbstractClient(javax.ws.rs.client.WebTarget target)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected javax.ws.rs.client.WebTarget
    applyPaging(javax.ws.rs.client.WebTarget target, Integer page, Integer pageSize)
    Applies paging parameters to the target.
    protected javax.ws.rs.client.WebTarget
    applySort(javax.ws.rs.client.WebTarget target, String sort)
    Applies sort parameter to the target.
    protected void
    checkResponse(javax.ws.rs.core.Response response)
    Helper method to raise exceptions in case of any other response than 2xx successful.
    protected <T> T
    checkResponse(javax.ws.rs.core.Response response, T successValue)
    Helper method to raise exceptions in case of any other response than 2xx successful.
    protected <T extends AbstractClient>
    T
    get(Class<T> clazz)
    Returns the subclient of the given type.
    org.slf4j.Logger
    Returns the logger for this client.
    javax.ws.rs.client.Invocation.Builder
    Returns a request builder.
    protected <T> ResultList<T>
    Retrieves the results from the REST response object.
    protected javax.ws.rs.client.WebTarget
    Returns the target.
    protected javax.ws.rs.client.WebTarget
    getTarget(Integer page, Integer pageSize)
    Returns the target with paging parameters applied.
    protected javax.ws.rs.client.WebTarget
    Returns the target with sort parameter applied.
    protected javax.ws.rs.client.WebTarget
    getTarget(String sort, Integer page, Integer pageSize)
    Returns the target with paging and sort parameters applied.
    protected void
    setTarget(javax.ws.rs.client.WebTarget target)
    Sets a target for this client.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AbstractClient

      protected AbstractClient()
      Constructor.

      Descendants must call setTarget(WebTarget) to initialize class correctly.

    • AbstractClient

      protected AbstractClient(javax.ws.rs.client.WebTarget target)
      Constructor.
      Parameters:
      target - - the target to request.
  • Method Details

    • setTarget

      protected void setTarget(javax.ws.rs.client.WebTarget target)
      Sets a target for this client.
      Parameters:
      target - the target
    • getRequest

      public javax.ws.rs.client.Invocation.Builder getRequest()
      Returns a request builder.
      Returns:
      the builder
    • getTarget

      protected javax.ws.rs.client.WebTarget getTarget()
      Returns the target.
      Returns:
      the target
    • getTarget

      protected javax.ws.rs.client.WebTarget getTarget(Integer page, Integer pageSize)
      Returns the target with paging parameters applied.
      Parameters:
      page - - page index (0-based)
      pageSize - - page size
      Returns:
      the target
    • getTarget

      protected javax.ws.rs.client.WebTarget getTarget(String sort)
      Returns the target with sort parameter applied.
      Parameters:
      sort - - the sort parameter
      Returns:
      the target
    • getTarget

      protected javax.ws.rs.client.WebTarget getTarget(String sort, Integer page, Integer pageSize)
      Returns the target with paging and sort parameters applied.
      Parameters:
      sort - - the sort parameter
      page - - page index (0-based)
      pageSize - - page size
      Returns:
      the target
    • applyPaging

      protected javax.ws.rs.client.WebTarget applyPaging(javax.ws.rs.client.WebTarget target, Integer page, Integer pageSize)
      Applies paging parameters to the target.
      Parameters:
      target - - the base target
      page - - page index (0-based)
      pageSize - - page size
      Returns:
      the new target
    • applySort

      protected javax.ws.rs.client.WebTarget applySort(javax.ws.rs.client.WebTarget target, String sort)
      Applies sort parameter to the target.
      Parameters:
      target - - the base target
      sort - - the sort parameter
      Returns:
      the new target
    • get

      protected <T extends AbstractClient> T get(Class<T> clazz)
      Returns the subclient of the given type.

      Be aware that subclient use relative REST API paths.

      Type Parameters:
      T - - Class of subclient
      Parameters:
      clazz - - class of subclient
      Returns:
      new or existing instance of subclient
    • getResults

      protected <T> ResultList<T> getResults(HateOasPagedList<T> pagedList)
      Retrieves the results from the REST response object.
      Type Parameters:
      T - - class of result type
      Parameters:
      pagedList - - the response object
      Returns:
      the list of objects (or empty list)
    • checkResponse

      protected void checkResponse(javax.ws.rs.core.Response response)
      Helper method to raise exceptions in case of any other response than 2xx successful.
      Parameters:
      response - the Response object
    • checkResponse

      protected <T> T checkResponse(javax.ws.rs.core.Response response, T successValue)
      Helper method to raise exceptions in case of any other response than 2xx successful.
      Type Parameters:
      T - - the type of successful return
      Parameters:
      response - the Response object
      successValue - the value to return when response was successfull
      Returns:
      usually the successValue - everything else will raise a runtime exception
    • getLog

      public org.slf4j.Logger getLog()
      Returns the logger for this client.
      Returns:
      the logger