cascading.tuple.type

## Interface CoercibleType<Canonical>

- All Superinterfaces:
    Serializable, Type
  All Known Implementing Classes:
    BigDecimalCoerce, BooleanCoerce, BooleanObjectCoerce, CharacterCoerce, CharacterObjectCoerce, Coercions.Coerce, DateType, DoubleCoerce, DoubleObjectCoerce, FloatCoerce, FloatObjectCoerce, IntegerCoerce, IntegerObjectCoerce, LongCoerce, LongObjectCoerce, ObjectCoerce, ShortCoerce, ShortObjectCoerce, StringCoerce

      public interface CoercibleType<Canonical>
      extends Type, Serializable

  Interface CoercibleType allows `Fields` instances to be extended with custom type information.

  It is the role of implementations of this interface to maintain a canonical representation of a given value and to allow for coercions between some type representation to the canonical type and back.

  For example, if a field in a text delimited file is a date, ie. `28/Dec/2012:16:17:12:931 -0800` it may be beneficial for the internal representation to be a `Long` value for performance reasons.

  Note CoercibleType used in conjunction with the TextDelimited parsers is not a replacement for using a pipe assembly to cleanse data. Pushing data cleansing down to a `Tap` and `Scheme` may not provide the flexibility and robustness expected.

  CoercibleTypes are a convenience when the input data is of high quality or was previously written out using a CoercibleType instance.

  The CoercibleTypes further allow the Cascading planner to perform type checks during joins. If no `Comparator` is in use, and lhs and rhs fields are not the same type, the planner will throw an exception.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Canonical` | `canonical(Object value)`
    `<Coerce> Coerce` | `coerce(Object value, Type to)`
    `Class<Canonical>` | `getCanonicalType()`

- - ### Method Detail

    - #### getCanonicalType

          Class<Canonical> getCanonicalType()

      Returns:
        the actual Java type this CoercibleType represents

    - #### canonical

          Canonical canonical(Object value)

      Parameters:
        `value` - of type Object
      Returns:
        the value coerced into its canonical type

    - #### coerce

          <Coerce> Coerce coerce(Object value,
                               Type to)

      Parameters:
        `value` - of type Object
        `to` - of type Type
      Returns:
        the value coerced into the requested type

Copyright © 2007-2015 Concurrent, Inc. All Rights Reserved.