net.sf.saxon.expr
Class PJConverter

java.lang.Object
  extended by 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) Saxonica Limited. All rights reserved.