Package org.apache.tapestry5.commons.services

## Class CoercionTuple<S,​T>

- java.lang.Object
- - org.apache.tapestry5.commons.services.CoercionTuple<S,​T>

- Type Parameters:
    `S` - source (input) type
    `T` - target (output) type

      public final class CoercionTuple<S,​T>
      extends Object

  An immutable object that represents a mapping from one type to another. This is also the contribution type when building the `TypeCoercer` service. Wraps a `Coercion` object that performs the work with additional properties that describe the input and output types of the coercion, needed when searching for an appropriate coercion (or sequence of coercions).

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `CoercionTuple.Key` | Class that represents the key to be used to the mapped configuration of the `TypeCoercer` service.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CoercionTuple​(Class<S> sourceType, Class<T> targetType, Coercion<S,​T> coercion)` | Standard constructor, which defaults wrap to true.
    `CoercionTuple​(Class<S> sourceType, Class<T> targetType, Coercion<S,​T> coercion, boolean wrap)` | Internal-use constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <S,​T> void` | `add​(MappedConfiguration<CoercionTuple.Key,​CoercionTuple> configuration, Class<S> sourceType, Class<T> targetType, Coercion<S,​T> coercion)` | Convenience method to create a coercion tuple using create(Class, Class, Coercion) and add it to a MappedConfiguration in a single step.
    `static <S,​T> CoercionTuple<S,​T>` | `create​(Class<S> sourceType, Class<T> targetType, Coercion<S,​T> coercion)` | Convenience constructor to help with generics.
    `Coercion<S,​T>` | `getCoercion()` |
    `CoercionTuple.Key` | `getKey()` |
    `Class<S>` | `getSourceType()` |
    `Class<T>` | `getTargetType()` |
    `static <S,​T> void` | `override​(MappedConfiguration<CoercionTuple.Key,​CoercionTuple> configuration, Class<S> sourceType, Class<T> targetType, Coercion<S,​T> coercion)` | Convenience method to create a coercion tuple using create(Class, Class, Coercion) and override a matching one in a MappedConfiguration in a single step.
    `String` | `toString()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### CoercionTuple

          public CoercionTuple​(Class<S> sourceType,
                               Class<T> targetType,
                               Coercion<S,​T> coercion)

      Standard constructor, which defaults wrap to true.

    - #### CoercionTuple

          public CoercionTuple​(Class<S> sourceType,
                               Class<T> targetType,
                               Coercion<S,​T> coercion,
                               boolean wrap)

      Internal-use constructor.
      Parameters:
        `sourceType` - the source (or input) type of the coercion, may be Void.class to indicate a coercion from null
        `targetType` - the target (or output) type of the coercion
        `coercion` - the object that performs the coercion
        `wrap` - if true, the coercion is wrapped to provide a useful toString()

  - ### Method Detail

    - #### add

          public static <S,​T> void add​(MappedConfiguration<CoercionTuple.Key,​CoercionTuple> configuration,
                                             Class<S> sourceType,
                                             Class<T> targetType,
                                             Coercion<S,​T> coercion)

      Convenience method to create a coercion tuple using create(Class, Class, Coercion) and add it to a MappedConfiguration in a single step.
      Since:
        5.8.0

    - #### override

          public static <S,​T> void override​(MappedConfiguration<CoercionTuple.Key,​CoercionTuple> configuration,
                                                  Class<S> sourceType,
                                                  Class<T> targetType,
                                                  Coercion<S,​T> coercion)

      Convenience method to create a coercion tuple using create(Class, Class, Coercion) and override a matching one in a MappedConfiguration in a single step.
      Since:
        5.8.0

    - #### create

          public static <S,​T> CoercionTuple<S,​T> create​(Class<S> sourceType,
                                                                    Class<T> targetType,
                                                                    Coercion<S,​T> coercion)

      Convenience constructor to help with generics.
      Since:
        5.2.0

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getCoercion

          public Coercion<S,​T> getCoercion()

    - #### getSourceType

          public Class<S> getSourceType()

    - #### getTargetType

          public Class<T> getTargetType()

    - #### getKey

          public CoercionTuple.Key getKey()