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:
  • Constructor Details

    • PJConverter

      public PJConverter()
  • Method Details

    • 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 @return 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)