Class PostResource<T,​R>

  • Type Parameters:
    T - the type of entity to send as POST payload.
    R - the type of response to extract from the request execution.
    All Implemented Interfaces:
    ResourceRequest<ResourceResponse<R>>, Callable<ResourceResponse<R>>
    Direct Known Subclasses:
    CreateUserGroup

    public class PostResource<T,​R>
    extends AbstractResourceRequest<ResourceResponse<R>>

    Executes a POST request on a OSLC resource.

    An OSLC-Core-Version header is set to 2.0, as the POST is expected to execute on an OSLC resource. Clients should subclass AbstractResourceRequest to execute a POST on a non-OSLC resource.

    Since:
    1.1.0
    • Constructor Detail

      • PostResource

        public PostResource​(OslcClient client,
                            URI uri,
                            T entity)
        Creates a new instance to execute a POST on the specified resource. This constructor shall be used when no entity is expected in the response content.

        An Content-Type header is set to application/rdf+xml, as this is the most frequently used exchange format.

        Parameters:
        client - the REST client used to execute a request.
        uri - the URI used for the underlying request.
        entity - the entity to send as POST payload.
      • PostResource

        public PostResource​(OslcClient client,
                            URI uri,
                            T entity,
                            MediaType contentType)
        Creates a new instance to execute a POST on the specified resource. This constructor shall be used when no entity is expected in the response content.
        Parameters:
        client - the REST client used to execute a request.
        uri - the URI used for the underlying request.
        entity - the entity to send as POST payload.
        contentType - the Content-Type header to send.
      • PostResource

        public PostResource​(OslcClient client,
                            URI uri,
                            T entity,
                            MediaType contentType,
                            Class<R> resultType,
                            MediaType acceptType)
        Creates a new instance to execute a POST on the specified resource and to parse the entity from the response.
        Parameters:
        client - the REST client used to execute a request.
        uri - the URI used for the underlying request.
        entity - the entity to send as POST payload.
        contentType - the Content-Type header to send.
        resultType - the type of entity to extract from the response
        acceptType - the Accept header to send, which describes the expected response entity format.
    • Method Detail

      • call

        protected ClientResponse call​(OslcResource resource)
        Executes a POST request on the resource.

        An OSLC-Core-Version header is set to 2.0, as the POST is expected to execute on an OSLC resource. Clients should subclass AbstractResourceRequest to execute a POST on a non-OSLC resource.

        Specified by:
        call in class AbstractResourceRequest<ResourceResponse<R>>
        Parameters:
        resource - the resource on which to execute a request.
        Returns:
        the response of the request execution.
      • createResponse

        protected ResourceResponse<R> createResponse​(OslcResource resource,
                                                     ClientResponse response)
        Extracts a ResourceResponse instance from the obtained HTTP response.

        If the specified response type is null or Void.class, this method does not try to parse the entity from the response and returns just the response headers in a ResourceResponse instance.

        Specified by:
        createResponse in class AbstractResourceRequest<ResourceResponse<R>>
        Parameters:
        resource - the resource on which a request is executed.
        response - the response obtained.
        Returns:
        the extraction of the response content into the expected format.