net.sf.saxon.type

## Class Converter.TwoPhaseConverter

- java.lang.Object
- - net.sf.saxon.type.Converter
  - - net.sf.saxon.type.StringConverter
    - - net.sf.saxon.type.Converter.TwoPhaseConverter

- Enclosing class:
    Converter

      public static class Converter.TwoPhaseConverter
      extends StringConverter

  Converter that operates in two phases, via an intermediate type

- - ### Nested Class Summary

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

      `StringConverter.IdentityConverter, StringConverter.StringToAnyURI, StringConverter.StringToBoolean, StringConverter.StringToDate, StringConverter.StringToDateTime, StringConverter.StringToDayTimeDuration, StringConverter.StringToDecimal, StringConverter.StringToDerivedStringSubtype, StringConverter.StringToDouble, StringConverter.StringToDuration, StringConverter.StringToFloat, StringConverter.StringToGDayConverter, StringConverter.StringToGMonth, StringConverter.StringToGMonthDay, StringConverter.StringToGYear, StringConverter.StringToGYearMonth, StringConverter.StringToHexBinary, StringConverter.StringToInteger, StringConverter.StringToIntegerSubtype, StringConverter.StringToLanguage, StringConverter.StringToName, StringConverter.StringToNCName, StringConverter.StringToNMTOKEN, StringConverter.StringToNonStringDerivedType, StringConverter.StringToNormalizedString, StringConverter.StringToNotation, StringConverter.StringToQName, StringConverter.StringToString, StringConverter.StringToStringSubtype, StringConverter.StringToTime, StringConverter.StringToToken, StringConverter.StringToUnionConverter, StringConverter.StringToUntypedAtomic, StringConverter.StringToYearMonthDuration`

    - ### 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.IntegerToDecimal, Converter.NotationToQName, Converter.NumericToBoolean, Converter.NumericToDecimal, Converter.NumericToDouble, Converter.NumericToFloat, Converter.NumericToInteger, Converter.PromoterToDouble, Converter.PromoterToFloat, Converter.QNameToNotation, Converter.StringToBase64BinaryConverter, Converter.ToStringConverter, Converter.ToUntypedAtomicConverter, Converter.TwoPhaseConverter, Converter.UpCastingConverter`

  - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.type.StringConverter

      `STRING_TO_BASE64_BINARY, STRING_TO_BOOLEAN, STRING_TO_DAY_TIME_DURATION, STRING_TO_DECIMAL, STRING_TO_DURATION, STRING_TO_HEX_BINARY, STRING_TO_INTEGER, STRING_TO_LANGUAGE, STRING_TO_NORMALIZED_STRING, STRING_TO_STRING, STRING_TO_TIME, STRING_TO_TOKEN, STRING_TO_UNTYPED_ATOMIC, STRING_TO_YEAR_MONTH_DURATION`

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

      `BASE64_BINARY_TO_HEX_BINARY, BOOLEAN_TO_DECIMAL, BOOLEAN_TO_DOUBLE, BOOLEAN_TO_FLOAT, BOOLEAN_TO_INTEGER, DATE_TIME_TO_DATE, DATE_TIME_TO_G_DAY, DATE_TIME_TO_G_MONTH, DATE_TIME_TO_G_MONTH_DAY, DATE_TIME_TO_G_YEAR, DATE_TIME_TO_G_YEAR_MONTH, DATE_TIME_TO_TIME, DATE_TO_DATE_TIME, DECIMAL_TO_INTEGER, DOUBLE_TO_DECIMAL, DOUBLE_TO_INTEGER, DURATION_TO_DAY_TIME_DURATION, DURATION_TO_YEAR_MONTH_DURATION, FLOAT_TO_DECIMAL, FLOAT_TO_INTEGER, HEX_BINARY_TO_BASE64_BINARY, IDENTITY_CONVERTER, INTEGER_TO_DECIMAL, NOTATION_TO_QNAME, NUMERIC_TO_BOOLEAN, NUMERIC_TO_DECIMAL, NUMERIC_TO_DOUBLE, NUMERIC_TO_FLOAT, NUMERIC_TO_INTEGER, QNAME_TO_NOTATION, TO_STRING, TO_UNTYPED_ATOMIC`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Converter.TwoPhaseConverter(Converter phaseOne, Converter phaseTwo)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ConversionResult` | `convert(AtomicValue input)` Convert an atomic value from the source type to the target type
    `ConversionResult` | `convertString(CharSequence input)` Convert a string to the target type of this converter.
    `static Converter.TwoPhaseConverter` | `makeTwoPhaseConverter(AtomicType inputType, AtomicType viaType, AtomicType outputType, ConversionRules rules)`
    `void` | `setNamespaceResolver(NamespaceResolver resolver)` Provide a namespace resolver, needed for conversion to namespace-sensitive types such as QName and NOTATION.

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

      `validate`

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

      `convert, getConversionRules, getNamespaceResolver, isAlwaysSuccessful, isXPath30Conversion, setConversionRules`

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

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

- - ### Constructor Detail

    - #### Converter.TwoPhaseConverter

          public Converter.TwoPhaseConverter(Converter phaseOne,
                                     Converter phaseTwo)

  - ### Method Detail

    - #### makeTwoPhaseConverter

          public static Converter.TwoPhaseConverter makeTwoPhaseConverter(AtomicType inputType,
                                                          AtomicType viaType,
                                                          AtomicType outputType,
                                                          ConversionRules rules)

    - #### setNamespaceResolver

          public void setNamespaceResolver(NamespaceResolver resolver)

      Description copied from class: `Converter`
      Provide a namespace resolver, needed for conversion to namespace-sensitive types such as QName and NOTATION. The resolver is ignored if the target type is not namespace-sensitive
      Overrides:
        `setNamespaceResolver` in class `Converter`
      Parameters:
        `resolver` - the namespace resolver to be used

    - #### convert

          public ConversionResult convert(AtomicValue input)

      Description copied from class: `Converter`
      Convert an atomic value from the source type to the target type
      Overrides:
        `convert` in class `StringConverter`
      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.

    - #### convertString

          public ConversionResult convertString(CharSequence input)

      Description copied from class: `StringConverter`
      Convert a string to the target type of this converter.
      Specified by:
        `convertString` in class `StringConverter`
      Parameters:
        `input` - the string to be converted
      Returns:
        either an `AtomicValue` of the appropriate type for this converter (if conversion succeeded), or a `ValidationFailure` if conversion failed.

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.