Package net.sf.saxon.expr
Class PJConverter
- java.lang.Object
-
- net.sf.saxon.expr.PJConverter
-
- Direct Known Subclasses:
PJConverter.AnyURIValueToURI,PJConverter.AnyURIValueToURL,PJConverter.Atomic,PJConverter.BooleanValueToBoolean,PJConverter.CalendarValueToCalendar,PJConverter.CalendarValueToDate,PJConverter.CalendarValueToInstant,PJConverter.CalendarValueToLocalDateTime,PJConverter.CalendarValueToOffsetDateTime,PJConverter.CalendarValueToZonedDateTime,PJConverter.DateValueToLocalDate,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.ToOne,PJConverter.ToOneOrMore,PJConverter.ToSequenceExtent,PJConverter.ToSequenceIterator,PJConverter.ToZeroOrMore,PJConverter.ToZeroOrOne,PJConverter.UnwrapExternalObject
public abstract class PJConverter extends java.lang.ObjectThis class together with its embedded subclasses handles conversion from XPath values to Java values
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPJConverter.AnyURIValueToURIstatic classPJConverter.AnyURIValueToURLstatic classPJConverter.AtomicConverter for use when the source object is an atomic value, but nothing more is known statically.static classPJConverter.BooleanValueToBooleanstatic classPJConverter.CalendarValueToCalendarstatic classPJConverter.CalendarValueToDatestatic classPJConverter.CalendarValueToInstantstatic classPJConverter.CalendarValueToLocalDateTimestatic classPJConverter.CalendarValueToOffsetDateTimestatic classPJConverter.CalendarValueToZonedDateTimestatic classPJConverter.DateValueToLocalDatestatic classPJConverter.GeneralGeneral-purpose converter when nothing more specific is available.static classPJConverter.Identitystatic classPJConverter.IntegerValueToBigIntegerstatic classPJConverter.IntegerValueToBytestatic classPJConverter.IntegerValueToCharstatic classPJConverter.IntegerValueToIntstatic classPJConverter.IntegerValueToLongstatic classPJConverter.IntegerValueToShortstatic classPJConverter.NumericValueToBigDecimalstatic classPJConverter.NumericValueToDoublestatic classPJConverter.NumericValueToFloatstatic classPJConverter.QualifiedNameValueToQNamestatic classPJConverter.StringValueToCharstatic classPJConverter.StringValueToStringstatic classPJConverter.ToArrayConverter for use when the target class is an arraystatic classPJConverter.ToCollectionConverter for use when the target class is a collection class.static classPJConverter.ToNullstatic classPJConverter.ToOneConverter for use when the target class isOne, which constrains the value to be a singletonstatic classPJConverter.ToOneOrMoreConverter for use when the target class isOneOrMore, which constrains the value to be a non-empty sequencestatic classPJConverter.ToSequenceExtentstatic classPJConverter.ToSequenceIteratorstatic classPJConverter.ToZeroOrMoreConverter for use when the target class isZeroOrMore, which allows any sequence but is a generic (parameterized) class so there is compile-time information about the type of itemsstatic classPJConverter.ToZeroOrOneConverter for use when the target class isZeroOrOne, which constrains the value to be a singleton or an empty sequencestatic classPJConverter.UnwrapExternalObject
-
Constructor Summary
Constructors Constructor Description PJConverter()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static PJConverterallocate(Configuration config, ItemType itemType, int cardinality, java.lang.Class<?> targetClass)Factory method to instantiate a converter from a given XPath type to a given Java classstatic PJConverterallocateNodeListCreator(Configuration config, java.lang.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 java.lang.Objectconvert(Sequence value, java.lang.Class<?> targetClass, XPathContext context)Convert an XPath value to a Java value of a specified classstatic SequenceTypegetEquivalentSequenceType(java.lang.Class javaClass)Get the nearest XPath equivalent to a Java class.static SequenceTypegetParameterizedSequenceType(java.lang.reflect.Type javaType)Get the nearest XPath equivalent to a Java parameterized type.
-
-
-
Method Detail
-
getEquivalentSequenceType
public static SequenceType getEquivalentSequenceType(java.lang.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
-
getParameterizedSequenceType
public static SequenceType getParameterizedSequenceType(java.lang.reflect.Type javaType)
Get the nearest XPath equivalent to a Java parameterized type. The only parameterized types we recognize are those like Sequence<StringValue> which correspond exactly to an XPath SequenceType.- Parameters:
javaType- a parameterized Java class- Returns:
- the nearest equivalent XPath SequenceType
-
convert
public abstract java.lang.Object convert(Sequence value, java.lang.Class<?> targetClass, XPathContext context) throws XPathException
Convert an XPath value to a Java value of a specified class- Parameters:
value- the supplied XPath valuetargetClass- the class of the required Java valuecontext- 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, java.lang.Class<?> targetClass) throws XPathException
Factory method to instantiate a converter from a given XPath type to a given Java class- Parameters:
config- the Saxon ConfigurationitemType- the item type of the XPath value to be convertedcardinality- the cardinality of the XPath value to be convertedtargetClass- 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, java.lang.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 configurationnode- an object representing a node in an external model- Returns:
- the Java object representing the external node
-
-