Class ClientWebTarget

java.lang.Object
org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget
All Implemented Interfaces:
WebTarget, Configurable<WebTarget>, ResteasyWebTarget

public class ClientWebTarget extends Object implements ResteasyWebTarget
Version:
$Revision: 1 $
Author:
Bill Burke
  • Field Details

  • Constructor Details

  • Method Details

    • clone

      public ResteasyWebTarget clone()
      Specified by:
      clone in interface ResteasyWebTarget
      Overrides:
      clone in class Object
    • getResteasyClient

      public ResteasyClient getResteasyClient()
      Specified by:
      getResteasyClient in interface ResteasyWebTarget
    • proxy

      public <T> T proxy(Class<T> proxyInterface)
      Specified by:
      proxy in interface ResteasyWebTarget
    • proxyBuilder

      public <T> ProxyBuilder<T> proxyBuilder(Class<T> proxyInterface)
      Specified by:
      proxyBuilder in interface ResteasyWebTarget
    • createProxyBuilder

      protected <T> ProxyBuilder<T> createProxyBuilder(Class<T> proxyInterface, ClientWebTarget cwt)
    • getUri

      public URI getUri()
      Description copied from interface: WebTarget
      Get the URI identifying the resource.
      Specified by:
      getUri in interface WebTarget
      Returns:
      the resource URI.
    • getUriBuilder

      public UriBuilder getUriBuilder()
      Description copied from interface: WebTarget
      Get the URI builder initialized with the URI of the current resource target. The returned URI builder is detached from the target, i.e. any updates in the URI builder MUST NOT have any effects on the URI of the originating target.
      Specified by:
      getUriBuilder in interface WebTarget
      Returns:
      the initialized URI builder.
    • getConfiguration

      public Configuration getConfiguration()
      Description copied from interface: Configurable
      Get a live view of an internal configuration state of this configurable instance. Any changes made using methods of this Configurable instance will be reflected in the returned Configuration instance.

      The returned Configuration instance and the collection data it provides are not thread-safe wrt. modification made using methods on the parent configurable object.

      Specified by:
      getConfiguration in interface Configurable<WebTarget>
      Returns:
      configuration live view of the internal configuration state.
    • path

      public ResteasyWebTarget path(String path) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by appending path to the URI of the current target instance.

      When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary. Existing '/' characters are preserved thus a single value can represent multiple URI path segments.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      path in interface ResteasyWebTarget
      Specified by:
      path in interface WebTarget
      Parameters:
      path - the path, may contain URI template parameters.
      Returns:
      a new target instance.
      Throws:
      NullPointerException - if path is null.
    • path

      public ResteasyWebTarget path(Class<?> resource) throws IllegalArgumentException
      Specified by:
      path in interface ResteasyWebTarget
      Throws:
      IllegalArgumentException
    • path

      public ResteasyWebTarget path(Method method) throws IllegalArgumentException
      Specified by:
      path in interface ResteasyWebTarget
      Throws:
      IllegalArgumentException
    • resolveTemplate

      public ResteasyWebTarget resolveTemplate(String name, Object value) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by resolving a URI template with a given name in the URI of the current target instance using a supplied value. In case a null template name or value is entered a NullPointerException is thrown.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      resolveTemplate in interface ResteasyWebTarget
      Specified by:
      resolveTemplate in interface WebTarget
      Parameters:
      name - name of the URI template.
      value - value to be used to resolve the template.
      Returns:
      a new target instance.
      Throws:
      NullPointerException - if the resolved template name or value is null.
    • resolveTemplates

      public ResteasyWebTarget resolveTemplates(Map<String,Object> templateValues) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      resolveTemplates in interface ResteasyWebTarget
      Specified by:
      resolveTemplates in interface WebTarget
      Parameters:
      templateValues - a map of URI template names and their values.
      Returns:
      a new target instance or the same target instance in case the input name-value map is empty.
      Throws:
      NullPointerException - if the name-value map or any of the names or values in the map is null.
    • resolveTemplate

      public ResteasyWebTarget resolveTemplate(String name, Object value, boolean encodeSlashInPath) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by resolving a URI template with a given name in the URI of the current target instance using a supplied value. In case a null template name or value is entered a NullPointerException is thrown.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      resolveTemplate in interface ResteasyWebTarget
      Specified by:
      resolveTemplate in interface WebTarget
      Parameters:
      name - name of the URI template.
      value - value to be used to resolve the template.
      encodeSlashInPath - if true, the slash ('/') characters in template values will be encoded if the template is placed in the URI path component, otherwise the slash characters will not be encoded in path templates.
      Returns:
      a new target instance.
      Throws:
      NullPointerException - if the resolved template name or value is null.
    • resolveTemplateFromEncoded

      public ResteasyWebTarget resolveTemplateFromEncoded(String name, Object value) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by resolving a URI template with a given name in the URI of the current target instance using a supplied encoded value. A template with a matching name will be replaced by the supplied value. Value is converted to String using its toString() method and is then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. In case a null template name or value is entered a NullPointerException is thrown.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      resolveTemplateFromEncoded in interface ResteasyWebTarget
      Specified by:
      resolveTemplateFromEncoded in interface WebTarget
      Parameters:
      name - name of the URI template.
      value - encoded value to be used to resolve the template.
      Returns:
      a new target instance.
      Throws:
      NullPointerException - if the resolved template name or value is null.
    • resolveTemplatesFromEncoded

      public ResteasyWebTarget resolveTemplatesFromEncoded(Map<String,Object> templateValues) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target instance using supplied name-encoded value pairs. All templates with their name matching one of the keys in the supplied map will be replaced by the value in the supplied map. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      resolveTemplatesFromEncoded in interface ResteasyWebTarget
      Specified by:
      resolveTemplatesFromEncoded in interface WebTarget
      Parameters:
      templateValues - a map of URI template names and their encoded values.
      Returns:
      a new target instance or the same target instance in case the input name-value map is empty.
      Throws:
      NullPointerException - if the name-value map or any of the names or encoded values in the map is null.
    • resolveTemplates

      public ResteasyWebTarget resolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      resolveTemplates in interface ResteasyWebTarget
      Specified by:
      resolveTemplates in interface WebTarget
      Parameters:
      templateValues - a map of URI template names and their values.
      encodeSlashInPath - if true, the slash ('/') characters in template values will be encoded if the template is placed in the URI path component, otherwise the slash characters will not be encoded in path templates.
      Returns:
      a new target instance or the same target instance in case the input name-value map is empty.
      Throws:
      NullPointerException - if the name-value map or any of the names or values in the map is null.
    • matrixParam

      public ResteasyWebTarget matrixParam(String name, Object... values) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by appending a matrix parameter to the existing set of matrix parameters of the current final segment of the URI of the current target instance. If multiple values are supplied the parameter will be added once per value. In case a single null value is entered, all parameters with that name in the current final path segment are removed (if present) from the collection of last segment matrix parameters inherited from the current target.

      Note that the matrix parameters are tied to a particular path segment; appending a value to an existing matrix parameter name will not affect the position of the matrix parameter in the URI path.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      matrixParam in interface ResteasyWebTarget
      Specified by:
      matrixParam in interface WebTarget
      Parameters:
      name - the matrix parameter name, may contain URI template parameters.
      values - the matrix parameter value(s), each object will be converted to a String using its toString() method. Stringified values may contain URI template parameters.
      Returns:
      a new target instance.
      Throws:
      NullPointerException - if the parameter name is null or if there are multiple values present and any of those values is null.
      See Also:
    • queryParam

      public ResteasyWebTarget queryParam(String name, Object... values) throws NullPointerException
      Description copied from interface: WebTarget
      Create a new WebTarget instance by configuring a query parameter on the URI of the current target instance. If multiple values are supplied the parameter will be added once per value. In case a single null value is entered, all parameters with that name are removed (if present) from the collection of query parameters inherited from the current target.

      A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.

      Specified by:
      queryParam in interface ResteasyWebTarget
      Specified by:
      queryParam in interface WebTarget
      Parameters:
      name - the query parameter name, may contain URI template parameters
      values - the query parameter value(s), each object will be converted to a String using its toString() method. Stringified values may contain URI template parameters.
      Returns:
      a new target instance.
      Throws:
      NullPointerException - if the parameter name is null or if there are multiple values present and any of those values is null.
    • queryParams

      Specified by:
      queryParams in interface ResteasyWebTarget
      Throws:
      IllegalArgumentException
      NullPointerException
    • queryParamNoTemplate

      public ResteasyWebTarget queryParamNoTemplate(String name, Object... values) throws NullPointerException
      Description copied from interface: ResteasyWebTarget
      Will encode any '{}' characters and not treat them as template parameters.
      Specified by:
      queryParamNoTemplate in interface ResteasyWebTarget
      Parameters:
      name - name
      values - values
      Returns:
      web resource target
      Throws:
      NullPointerException
    • queryParamsNoTemplate

      public ResteasyWebTarget queryParamsNoTemplate(MultivaluedMap<String,Object> parameters) throws IllegalArgumentException, NullPointerException
      Description copied from interface: ResteasyWebTarget
      Will encode any '{}' characters and not treat them as template parameters.
      Specified by:
      queryParamsNoTemplate in interface ResteasyWebTarget
      Parameters:
      parameters - parameters map
      Returns:
      web resource target
      Throws:
      IllegalArgumentException
      NullPointerException
    • newInstance

      protected ClientWebTarget newInstance(ResteasyClient client, UriBuilder uriBuilder, ClientConfiguration configuration)
    • request

      public Invocation.Builder request()
      Description copied from interface: WebTarget
      Start building a request to the targeted web resource.
      Specified by:
      request in interface WebTarget
      Returns:
      builder for a request targeted at the URI referenced by this target instance.
    • request

      public Invocation.Builder request(String... acceptedResponseTypes)
      Description copied from interface: WebTarget
      Start building a request to the targeted web resource and define the accepted response media types.

      Invoking this method is identical to:

       webTarget.request().accept(types);
       
      Specified by:
      request in interface WebTarget
      Parameters:
      acceptedResponseTypes - accepted response media types.
      Returns:
      builder for a request targeted at the URI referenced by this target instance.
    • request

      public Invocation.Builder request(MediaType... acceptedResponseTypes)
      Description copied from interface: WebTarget
      Start building a request to the targeted web resource and define the accepted response media types.

      Invoking this method is identical to:

       webTarget.request().accept(types);
       
      Specified by:
      request in interface WebTarget
      Parameters:
      acceptedResponseTypes - accepted response media types.
      Returns:
      builder for a request targeted at the URI referenced by this target instance.
    • createClientInvocationBuilder

      protected ClientInvocationBuilder createClientInvocationBuilder(ResteasyClient client, URI uri, ClientConfiguration configuration)
    • property

      public ResteasyWebTarget property(String name, Object value)
      Description copied from interface: Configurable
      Set the new configuration property, if already set, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the property bag.
      Specified by:
      property in interface Configurable<WebTarget>
      Specified by:
      property in interface ResteasyWebTarget
      Parameters:
      name - property name.
      value - (new) property value. null value removes the property with the given name.
      Returns:
      the updated configurable instance.
    • register

      public ResteasyWebTarget register(Class<?> componentClass)
      Description copied from interface: Configurable
      Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or DynamicFeature.

      As opposed to component instances registered via Configurable.register(Object) method, the lifecycle of components registered using this class-based register(...) method is fully managed by the JAX-RS implementation or any underlying IoC container supported by the implementation.

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      componentClass - JAX-RS component class to be configured in the scope of this configurable context.
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Class<?> componentClass, int priority)
      Description copied from interface: Configurable
      Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

      This registration method provides the same functionality as Configurable.register(Class) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden with the supplied priority value.

      Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      componentClass - JAX-RS component class to be configured in the scope of this configurable context.
      priority - the overriding priority for the registered component and all the provider contracts the component implements.
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Class<?> componentClass, Class<?>... contracts)
      Description copied from interface: Configurable
      Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

      This registration method provides the same functionality as Configurable.register(Class) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      componentClass - JAX-RS component class to be configured in the scope of this configurable context.
      contracts - the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty or null collection of contracts via this method and SHOULD raise a warning about such event.
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Class<?> componentClass, Map<Class<?>,Integer> contracts)
      Description copied from interface: Configurable
      Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

      This registration method provides same functionality as Configurable.register(Class, Class[]) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.

      Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      componentClass - JAX-RS component class to be configured in the scope of this configurable context.
      contracts - map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Object component)
      Description copied from interface: Configurable
      Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or DynamicFeature.

      As opposed to components registered via Configurable.register(Class) method, the lifecycle of providers registered using this instance-based register(...) is not managed by JAX-RS runtime. The same registered component instance is used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component instances are injected with their declared dependencies (see Context) by the JAX-RS runtime prior to use.

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      component - JAX-RS component instance to be configured in the scope of this configurable context.
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Object component, int priority)
      Description copied from interface: Configurable
      Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

      This registration method provides the same functionality as Configurable.register(Object) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden with the supplied priority value.

      Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      component - JAX-RS component instance to be configured in the scope of this configurable context.
      priority - the overriding priority for the registered component and all the provider contracts the component implements.
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Object component, Class<?>... contracts)
      Description copied from interface: Configurable
      Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

      This registration method provides the same functionality as Configurable.register(Object) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      component - JAX-RS component instance to be configured in the scope of this configurable context.
      contracts - the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty or null collection of contracts via this method and SHOULD raise a warning about such event.
      Returns:
      the updated configurable context.
    • register

      public ResteasyWebTarget register(Object component, Map<Class<?>,Integer> contracts)
      Description copied from interface: Configurable
      Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.

      This registration method provides same functionality as Configurable.register(Object, Class[]) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.

      Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.

      Specified by:
      register in interface Configurable<WebTarget>
      Specified by:
      register in interface ResteasyWebTarget
      Parameters:
      component - JAX-RS component instance to be configured in the scope of this configurable context.
      contracts - map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
      Returns:
      the updated configurable context.
    • setChunked

      public ResteasyWebTarget setChunked(boolean chunked)
      Specified by:
      setChunked in interface ResteasyWebTarget