javax.ws.rs.ext

## Interface ParamConverter<T>

- Type Parameters:
    `T` - the supported Java type convertible to/from a `String` format.

      public interface ParamConverter<T>

  Defines a contract for a delegate responsible for converting between a `String` form of a message parameter value and the corresponding custom Java type `T`. Conversion of message parameter values injected via `@PathParam`, `@QueryParam`, `@MatrixParam`, `@FormParam`, `@CookieParam` and `@HeaderParam` is supported.

  By default, when used for injection of parameter values, a selected `ParamConverter` instance MUST be used eagerly by a JAX-RS runtime to convert any `default value` in the resource or provider model, that is during the application deployment, before any value – default or otherwise – is actually required. This conversion strategy ensures that any errors in the default values are reported as early as possible. This default behavior may be overridden by annotating the `ParamConverter` implementation class with a `@Lazy` annotation. In such case any default value conversion delegated to the `@Lazy`-annotated converter will be deferred to a latest possible moment (i.e. until the injection of such default value is required).

  NOTE: A service implementing this contract is not recognized as a registrable JAX-RS extension provider. Instead, a `ParamConverterProvider` instance responsible for providing `ParamConverter` instances has to be registered as one of the JAX-RS extension providers.

  Since:
    2.0
  Author:
    Marek Potociar

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `ParamConverter.Lazy` Mandates that a conversion of any `default value` delegated to a `parameter converter` annotated with `@Lazy` annotation SHOULD occur only once the value is actually required (e.g.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `fromString(String value)` Parse the supplied value and create an instance of `T`.
    `String` | `toString(T value)` Convert the supplied value to a String.

- - ### Method Detail

    - #### fromString

          T fromString(String value)

      Parse the supplied value and create an instance of `T`.
      Parameters:
        `value` - the string value.
      Returns:
        the newly created instance of `T`.
      Throws:
        `IllegalArgumentException` - if the supplied string cannot be parsed or is `null`.

    - #### toString

          String toString(T value)

      Convert the supplied value to a String.

      This method is reserved for future use. Proprietary JAX-RS extensions may leverage the method. Users should be aware that any such support for the method comes at the expense of producing non-portable code.

      Parameters:
        `value` - the value of type `T`.
      Returns:
        a String representation of the value.
      Throws:
        `IllegalArgumentException` - if the supplied object cannot be serialized or is `null`.

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.