## 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
`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
`PJConverter()`

Method Summary
`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)
`String` `compile(String var, Class targetClass, CodeGeneratorService compiler)` Generate Java code to implement the type conversion
`abstract Object` `convert(ValueRepresentation 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(ValueRepresentation 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

### compile

    public String compile(String var,
                          Class targetClass,
                          CodeGeneratorService compiler)

  Generate Java code to implement the type conversion

  Parameters:
    `var` - the name of a variable whose value will be the XPath ValueRepresentation to be converted
    `targetClass` - the required class of the Java value
    `compiler` - provides supporting services by callback
  Returns:
    the text of a Java expression whose result will be a Java object/value of the required type

### 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`

### 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)

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