## net.sf.saxon.expr
Class JPConverter

    java.lang.Object
      net.sf.saxon.expr.JPConverter

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  JPConverter.FromBigDecimal, JPConverter.FromBigInteger, JPConverter.FromBoolean, JPConverter.FromBooleanArray, JPConverter.FromByte, JPConverter.FromByteArray, JPConverter.FromCharacter, JPConverter.FromCharArray, JPConverter.FromCollection, JPConverter.FromDate, JPConverter.FromDouble, JPConverter.FromDoubleArray, JPConverter.FromFloat, JPConverter.FromFloatArray, JPConverter.FromInt, JPConverter.FromIntArray, JPConverter.FromLong, JPConverter.FromLongArray, JPConverter.FromObjectArray, JPConverter.FromQName, JPConverter.FromSequenceIterator, JPConverter.FromShort, JPConverter.FromShortArray, JPConverter.FromSource, JPConverter.FromString, JPConverter.FromURI, JPConverter.FromValueRepresentation, JPConverter.WrapExternalObject

    public abstract class JPConverter

extends Object
implements Serializable

This class together with its embedded subclasses handles conversion from Java values to XPath values. The general principle is to allocate a specific JPConverter at compile time wherever possible. If there is insufficient type information to make this feasible, a general-purpose JPConverter is allocated, which in turn allocates a more specific converter at run-time to do the actual work.

See Also:
  Serialized Form

Nested Class Summary
`static class` `JPConverter.FromBigDecimal`
`static class` `JPConverter.FromBigInteger`
`static class` `JPConverter.FromBoolean`
`static class` `JPConverter.FromBooleanArray`
`static class` `JPConverter.FromByte`
`static class` `JPConverter.FromByteArray`
`static class` `JPConverter.FromCharacter`
`static class` `JPConverter.FromCharArray`
`static class` `JPConverter.FromCollection`
`static class` `JPConverter.FromDate`
`static class` `JPConverter.FromDouble`
`static class` `JPConverter.FromDoubleArray`
`static class` `JPConverter.FromFloat`
`static class` `JPConverter.FromFloatArray`
`static class` `JPConverter.FromInt`
`static class` `JPConverter.FromIntArray`
`static class` `JPConverter.FromLong`
`static class` `JPConverter.FromLongArray`
`static class` `JPConverter.FromObjectArray`
`static class` `JPConverter.FromQName`
`static class` `JPConverter.FromSequenceIterator`
`static class` `JPConverter.FromShort`
`static class` `JPConverter.FromShortArray`
`static class` `JPConverter.FromSource`
`static class` `JPConverter.FromString`
`static class` `JPConverter.FromURI`
`static class` `JPConverter.FromValueRepresentation`
`static class` `JPConverter.WrapExternalObject`

Constructor Summary
`JPConverter()`

Method Summary
`static JPConverter` `allocate(Class javaClass, Configuration config)` Allocate a Java-to-XPath converter for a given class of Java objects
`String` `compile(String var, CodeGeneratorService compiler)` Generate a Java expression (as text) that can be used to implement this conversion when compiling a query
`abstract ValueRepresentation` `convert(Object object, XPathContext context)` Convert a Java object to an equivalent XPath value
`int` `getCardinality()` Get the cardinality of the XPath value that will result from the conversion
`abstract ItemType` `getItemType()` Get the item type of the XPath value that will result from the conversion

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JPConverter

    public JPConverter()

Method Detail

### allocate

    public static JPConverter allocate(Class javaClass,
                                       Configuration config)

  Allocate a Java-to-XPath converter for a given class of Java objects

  Parameters:
    `javaClass` - the class of the Java object to be converted (this may be the static type or the dynamic type, depending when the converter is allocated)
    `config` - the Saxon Configuration
  Returns:
    a suitable converter

### convert

    public abstract ValueRepresentation convert(Object object,
                                                XPathContext context)
                                         throws XPathException

  Convert a Java object to an equivalent XPath value

  Parameters:
    `object` - the java object to be converted
    `context` - the XPath dynamic evaluation context
  Returns:
    the XPath value resulting from the conversion
  Throws:
    `XPathException` - if the conversion is not possible or if it fails

### getItemType

    public abstract ItemType getItemType()

  Get the item type of the XPath value that will result from the conversion

  Returns:
    the XPath item type

### getCardinality

    public int getCardinality()

  Get the cardinality of the XPath value that will result from the conversion

  Returns:
    the cardinality of the result

### compile

    public String compile(String var,
                          CodeGeneratorService compiler)

  Generate a Java expression (as text) that can be used to implement this conversion when compiling a query

  Parameters:
    `var` - the Java variable that will hold the Java value to be converted
    `compiler` - provides callback services
  Returns:
    a Java expression (as text) that implements the conversion. The result of the Java expression must be of type ValueRepresentation, and if the cardinality of the converter is exactly one then it must be of type Item.

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