Package net.sf.saxon.type

## Class Converter.DownCastingConverter

- java.lang.Object
- - net.sf.saxon.type.Converter
  - - net.sf.saxon.type.Converter.DownCastingConverter

- Enclosing class:
    Converter

      public static class Converter.DownCastingConverter
      extends Converter

  Converter that checks that a value belonging to a supertype is a valid instance of a subtype, and returns an instance of the subtype

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.sf.saxon.type.Converter

      `Converter.Base64BinaryToHexBinary, Converter.BooleanToDecimal, Converter.BooleanToDouble, Converter.BooleanToFloat, Converter.BooleanToInteger, Converter.DateTimeToDate, Converter.DateTimeToGDay, Converter.DateTimeToGMonth, Converter.DateTimeToGMonthDay, Converter.DateTimeToGYear, Converter.DateTimeToGYearMonth, Converter.DateTimeToTime, Converter.DateToDateTime, Converter.DecimalToInteger, Converter.DoubleToDecimal, Converter.DoubleToInteger, Converter.DownCastingConverter, Converter.DurationToDayTimeDuration, Converter.DurationToYearMonthDuration, Converter.FloatToDecimal, Converter.FloatToInteger, Converter.HexBinaryToBase64Binary, Converter.IdentityConverter, Converter.IntegerToDecimal, Converter.NotationToQName, Converter.NumericToBoolean, Converter.NumericToDecimal, Converter.NumericToDouble, Converter.NumericToFloat, Converter.NumericToInteger, Converter.PromoterToDouble, Converter.PromoterToFloat, Converter.QNameToNotation, Converter.ToStringConverter, Converter.ToUntypedAtomicConverter, Converter.TwoPhaseConverter, Converter.UnfailingConverter, Converter.UpCastingConverter`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DownCastingConverter​(AtomicType annotation, ConversionRules rules)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ConversionResult` | `convert​(AtomicValue input)` | Convert an atomic value from the source type to the target type
    `ConversionResult` | `convert​(AtomicValue input, java.lang.CharSequence lexicalForm)` |
    `AtomicType` | `getTargetType()` |
    `ValidationFailure` | `validate​(AtomicValue input, java.lang.CharSequence lexicalForm)` |

    - ### Methods inherited from class net.sf.saxon.type.Converter

      `convert, getConversionRules, getNamespaceResolver, isAlwaysSuccessful, setConversionRules, setNamespaceResolver`

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

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

- - ### Constructor Detail

    - #### DownCastingConverter

          public DownCastingConverter​(AtomicType annotation,
                                      ConversionRules rules)

  - ### Method Detail

    - #### getTargetType

          public AtomicType getTargetType()

    - #### convert

          public ConversionResult convert​(AtomicValue input)

      Description copied from class: `Converter`
      Convert an atomic value from the source type to the target type
      Specified by:
        `convert` in class `Converter`
      Parameters:
        `input` - the atomic value to be converted, which the caller guarantees to be of the appropriate type for the converter. The results are undefined if the value is of the wrong type; possible outcomes are (apparent) success, or a ClassCastException.
      Returns:
        the result of the conversion, as an `AtomicValue`, if conversion succeeds, or a `ValidationFailure` object describing the reasons for failure if conversion is not possible. Note that the ValidationFailure object is not (and does not contain) an exception, because it does not necessarily result in an error being thrown, and creating exceptions on non-failure paths is expensive.

    - #### convert

          public ConversionResult convert​(AtomicValue input,
                                          java.lang.CharSequence lexicalForm)

    - #### validate

          public ValidationFailure validate​(AtomicValue input,
                                            java.lang.CharSequence lexicalForm)