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
  `final 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

  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<S,T>.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 Details

  - ### 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 Details

  - ### 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<S,T>.Key getKey()