net.sf.saxon.expr

## Class PJConverter

- java.lang.Object
- - net.sf.saxon.expr.PJConverter

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    PJConverter.AnyURIValueToURI, PJConverter.AnyURIValueToURL, PJConverter.Atomic, PJConverter.BooleanValueToBoolean, PJConverter.CalendarValueToCalendar, PJConverter.CalendarValueToDate, PJConverter.General, PJConverter.Identity, PJConverter.IntegerValueToBigInteger, PJConverter.IntegerValueToByte, PJConverter.IntegerValueToChar, PJConverter.IntegerValueToInt, PJConverter.IntegerValueToLong, PJConverter.IntegerValueToShort, PJConverter.NumericValueToBigDecimal, PJConverter.NumericValueToDouble, PJConverter.NumericValueToFloat, PJConverter.QualifiedNameValueToQName, PJConverter.StringValueToChar, PJConverter.StringValueToString, PJConverter.ToArray, PJConverter.ToCollection, PJConverter.ToNull, PJConverter.ToSequenceExtent, PJConverter.ToSequenceIterator, PJConverter.UnwrapExternalObject

      public abstract class PJConverter
      extends Object
      implements Serializable

  This class together with its embedded subclasses handles conversion from XPath values to Java values
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PJConverter.AnyURIValueToURI`
    `static class` | `PJConverter.AnyURIValueToURL`
    `static class` | `PJConverter.Atomic` Converter for use when the source object is an atomic value, but nothing more is known statically.
    `static class` | `PJConverter.BooleanValueToBoolean`
    `static class` | `PJConverter.CalendarValueToCalendar`
    `static class` | `PJConverter.CalendarValueToDate`
    `static class` | `PJConverter.General` General-purpose converter when nothing more specific is available.
    `static class` | `PJConverter.Identity`
    `static class` | `PJConverter.IntegerValueToBigInteger`
    `static class` | `PJConverter.IntegerValueToByte`
    `static class` | `PJConverter.IntegerValueToChar`
    `static class` | `PJConverter.IntegerValueToInt`
    `static class` | `PJConverter.IntegerValueToLong`
    `static class` | `PJConverter.IntegerValueToShort`
    `static class` | `PJConverter.NumericValueToBigDecimal`
    `static class` | `PJConverter.NumericValueToDouble`
    `static class` | `PJConverter.NumericValueToFloat`
    `static class` | `PJConverter.QualifiedNameValueToQName`
    `static class` | `PJConverter.StringValueToChar`
    `static class` | `PJConverter.StringValueToString`
    `static class` | `PJConverter.ToArray` Converter for use when the target class is an array
    `static class` | `PJConverter.ToCollection` Converter for use when the target class is a collection class.
    `static class` | `PJConverter.ToNull`
    `static class` | `PJConverter.ToSequenceExtent`
    `static class` | `PJConverter.ToSequenceIterator`
    `static class` | `PJConverter.UnwrapExternalObject`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PJConverter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static PJConverter` | `allocate(Configuration config, ItemType itemType, int cardinality, Class targetClass)` Factory method to instantiate a converter from a given XPath type to a given Java class
    `static PJConverter` | `allocateNodeListCreator(Configuration config, Object node)` Static method to get a converter from an XPath sequence of nodes to the representation of a NodeList in an external object model (this is really a special for DOM, which uses NodeList rather than general purpose Java collection classes)
    `abstract Object` | `convert(Sequence value, Class targetClass, XPathContext context)` Convert an XPath value to a Java value of a specified class
    `static SequenceType` | `getEquivalentItemType(Class javaClass)` Get the nearest XPath equivalent to a Java class.

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

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

- - ### Constructor Detail

    - #### PJConverter

          public PJConverter()

  - ### Method Detail

    - #### getEquivalentItemType

          public static SequenceType getEquivalentItemType(Class javaClass)

      Get the nearest XPath equivalent to a Java class. A function call will be type-checked against an XPath function signature in which the Java classes are replaced by their nearest equivalent XPath types
      Parameters:
        `javaClass` - a Java class
      Returns:
        the nearest equivalent XPath SequenceType

    - #### convert

          public abstract Object convert(Sequence value,
                       Class targetClass,
                       XPathContext context)
                                  throws XPathException

      Convert an XPath value to a Java value of a specified class
      Parameters:
        `value` - the supplied XPath value
        `targetClass` - the class of the required Java value
        `context` - the XPath dynamic context
      Returns:
        the corresponding Java value, which is guaranteed to be an instance of the target class (except that an empty sequence is converted to null)
      Throws:
        `XPathException` - if the conversion is not possible or fails

    - #### allocate

          public static PJConverter allocate(Configuration config,
                             ItemType itemType,
                             int cardinality,
                             Class targetClass)
                                      throws XPathException

      Factory method to instantiate a converter from a given XPath type to a given Java class
      Parameters:
        `config` - the Saxon Configuration
        `itemType` - the item type of the XPath value to be converted
        `cardinality` - the cardinality of the XPath value to be converted
        `targetClass` - the Java class required for the conversion result
      Returns:
        a suitable converter
      Throws:
        `XPathException` - if no conversion is possible

    - #### allocateNodeListCreator

          public static PJConverter allocateNodeListCreator(Configuration config,
                                            Object node)

      Static method to get a converter from an XPath sequence of nodes to the representation of a NodeList in an external object model (this is really a special for DOM, which uses NodeList rather than general purpose Java collection classes)
      Parameters:
        `config` - the Saxon configuration
        `node` - an object representing a node in an external model
      Returns:
        the Java object representing the external node

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