net.sf.saxon.type
Class StringConverter

java.lang.Object
  extended by net.sf.saxon.type.Converter
      extended by net.sf.saxon.type.StringConverter
Direct Known Subclasses:
Converter.StringToBase64BinaryConverter, Converter.TwoPhaseConverter, 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.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

public abstract class StringConverter
extends Converter

A Converter that accepts a string as input. This subclass of Converter is provided to avoid having to wrap the string into a StringValue prior to conversion. Every Converter whose source type is xs:string must be an instance of this subclass.

The input to a StringConverter can also be an xs:untypedAtomic value, since the conversion semantics are always the same as from a string.

A StringConverter also provides a method to validate that a string is valid against the target type, without actually performing the conversion.


Nested Class Summary
static class StringConverter.IdentityConverter
          Converter that does nothing - it returns the input unchanged
static class StringConverter.StringToAnyURI
          Converts string to anyURI
static class StringConverter.StringToBoolean
          Converts a string to a boolean
static class StringConverter.StringToDate
          Converts a string to a date
static class StringConverter.StringToDateTime
          Converts a string to a dateTime
static class StringConverter.StringToDayTimeDuration
          Converts a string to a dayTimeDuration
static class StringConverter.StringToDecimal
          Converts a string to an xs:decimal
static class StringConverter.StringToDerivedStringSubtype
          Converts from xs;string to a user-defined type derived from a built-in subtype of xs:string
static class StringConverter.StringToDouble
          Converts a string to a double.
static class StringConverter.StringToDuration
          Converts a string to a duration
static class StringConverter.StringToFloat
          Converts a string to xs:float
static class StringConverter.StringToGDayConverter
          Converts a string to a gDay
static class StringConverter.StringToGMonth
          Converts a string to a gMonth
static class StringConverter.StringToGMonthDay
          Converts a string to a gMonthDay
static class StringConverter.StringToGYear
          Converts a string to a gYear
static class StringConverter.StringToGYearMonth
          Converts a string to a gYearMonth
static class StringConverter.StringToHexBinary
          Converts a string to hexBinary
static class StringConverter.StringToInteger
          Converts a string to an integer
static class StringConverter.StringToIntegerSubtype
          Converts a string to a built-in subtype of integer
static class StringConverter.StringToLanguage
          Converts from xs:string to xs:language
static class StringConverter.StringToName
          Converts from xs:string to xs:Name
static class StringConverter.StringToNCName
          Converts from xs:string to xs:NCName, xs:ID, xs:IDREF, or xs:ENTITY
static class StringConverter.StringToNMTOKEN
          Converts from xs:string to xs:NMTOKEN
static class StringConverter.StringToNonStringDerivedType
          Converter from string to a derived type (derived from a type other than xs:string), where the derived type needs to retain the original string for validating against lexical facets such as pattern.
static class StringConverter.StringToNormalizedString
          Converts from xs:string to xs:normalizedString
static class StringConverter.StringToNotation
          Converts String to NOTATION
static class StringConverter.StringToQName
          Converts String to QName
static class StringConverter.StringToString
          Converts from xs:string or xs:untypedAtomic to xs:String
static class StringConverter.StringToStringSubtype
          Converts from xs;string to a user-defined type derived directly from xs:string
static class StringConverter.StringToTime
          Converts a string to a time
static class StringConverter.StringToToken
          Converts from xs:string to xs:token
static class StringConverter.StringToUnionConverter
          Converter from string to plain union types
static class StringConverter.StringToUntypedAtomic
          Converts from xs:string or xs:untypedAtomic to xs:untypedAtomic
static class StringConverter.StringToYearMonthDuration
          Converts a string to a yearMonthDuration
 
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
static Converter.StringToBase64BinaryConverter STRING_TO_BASE64_BINARY
           
static StringConverter.StringToBoolean STRING_TO_BOOLEAN
           
static StringConverter.StringToDayTimeDuration STRING_TO_DAY_TIME_DURATION
           
static StringConverter.StringToDecimal STRING_TO_DECIMAL
           
static StringConverter.StringToDuration STRING_TO_DURATION
           
static StringConverter.StringToHexBinary STRING_TO_HEX_BINARY
           
static StringConverter.StringToInteger STRING_TO_INTEGER
           
static StringConverter.StringToLanguage STRING_TO_LANGUAGE
           
static StringConverter.StringToNormalizedString STRING_TO_NORMALIZED_STRING
           
static StringConverter.StringToString STRING_TO_STRING
           
static StringConverter.StringToTime STRING_TO_TIME
           
static StringConverter.StringToToken STRING_TO_TOKEN
           
static StringConverter.StringToUntypedAtomic STRING_TO_UNTYPED_ATOMIC
           
static StringConverter.StringToYearMonthDuration 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
StringConverter()
          Create a StringConverter
StringConverter(ConversionRules rules)
          Create a StringConverter
 
Method Summary
 ConversionResult convert(AtomicValue input)
          Convert an atomic value from the source type to the target type
abstract  ConversionResult convertString(CharSequence input)
          Convert a string to the target type of this converter.
static StringConverter getStringConverter(AtomicType targetType, ConversionRules rules)
          Static factory method to get a StringConverter for a specific target type
 ValidationFailure validate(CharSequence input)
          Validate a string for conformance to the target type, without actually performing the conversion
 
Methods inherited from class net.sf.saxon.type.Converter
convert, getConversionRules, getConverter, getNamespaceResolver, isAlwaysSuccessful, isXPath30Conversion, setConversionRules, setNamespaceResolver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STRING_TO_STRING

public static final StringConverter.StringToString STRING_TO_STRING

STRING_TO_LANGUAGE

public static final StringConverter.StringToLanguage STRING_TO_LANGUAGE

STRING_TO_NORMALIZED_STRING

public static final StringConverter.StringToNormalizedString STRING_TO_NORMALIZED_STRING

STRING_TO_TOKEN

public static final StringConverter.StringToToken STRING_TO_TOKEN

STRING_TO_DECIMAL

public static final StringConverter.StringToDecimal STRING_TO_DECIMAL

STRING_TO_INTEGER

public static final StringConverter.StringToInteger STRING_TO_INTEGER

STRING_TO_DURATION

public static final StringConverter.StringToDuration STRING_TO_DURATION

STRING_TO_DAY_TIME_DURATION

public static final StringConverter.StringToDayTimeDuration STRING_TO_DAY_TIME_DURATION

STRING_TO_YEAR_MONTH_DURATION

public static final StringConverter.StringToYearMonthDuration STRING_TO_YEAR_MONTH_DURATION

STRING_TO_TIME

public static final StringConverter.StringToTime STRING_TO_TIME

STRING_TO_BOOLEAN

public static final StringConverter.StringToBoolean STRING_TO_BOOLEAN

STRING_TO_HEX_BINARY

public static final StringConverter.StringToHexBinary STRING_TO_HEX_BINARY

STRING_TO_BASE64_BINARY

public static final Converter.StringToBase64BinaryConverter STRING_TO_BASE64_BINARY

STRING_TO_UNTYPED_ATOMIC

public static final StringConverter.StringToUntypedAtomic STRING_TO_UNTYPED_ATOMIC
Constructor Detail

StringConverter

public StringConverter()
Create a StringConverter


StringConverter

public StringConverter(ConversionRules rules)
Create a StringConverter

Parameters:
rules - the conversion rules to be applied
Method Detail

convertString

public abstract ConversionResult convertString(CharSequence input)
Convert a string to the target type of this converter.

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.

validate

public ValidationFailure validate(CharSequence input)
Validate a string for conformance to the target type, without actually performing the conversion

Parameters:
input - the string to be validated
Returns:
null if validation is successful, or a ValidationFailure indicating the reasons for failure if unsuccessful

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
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.

getStringConverter

public static StringConverter getStringConverter(AtomicType targetType,
                                                 ConversionRules rules)
Static factory method to get a StringConverter for a specific target type

Parameters:
targetType - the target type of the conversion
rules - the conversion rules in use
Returns:
a StringConverter that can be used to convert strings to the target type, or to validate strings against the target type


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