net.sf.saxon.value

Class UntypedAtomicValue

Implemented Interfaces:
ConversionResult, GroundedValue, Item, PullEvent, Serializable, SequenceIterable, Serializable, ValueRepresentation

public class UntypedAtomicValue
extends StringValue

An Untyped Atomic value. This inherits from StringValue for implementation convenience, even though an untypedAtomic value is not a String in the data model type hierarchy.

Nested Class Summary

Nested classes/interfaces inherited from class net.sf.saxon.value.StringValue

StringValue.CharacterIterator

Field Summary

static UntypedAtomicValue
ZERO_LENGTH_UNTYPED

Fields inherited from class net.sf.saxon.value.StringValue

EMPTY_STRING, FALSE, SINGLE_SPACE, TRUE, length, value

Fields inherited from class net.sf.saxon.value.AtomicValue

typeLabel

Fields inherited from class net.sf.saxon.value.Value

EMPTY_CLASS_ARRAY, INDETERMINATE_ORDERING

Fields inherited from interface net.sf.saxon.om.ValueRepresentation

EMPTY_VALUE_ARRAY

Constructor Summary

UntypedAtomicValue(CharSequence value)
Constructor

Method Summary

int
compareTo(AtomicValue other, StringCollator collator, XPathContext context)
Compare an untypedAtomic value with another value, using a given collator to perform any string comparisons.
ConversionResult
convertPrimitive(BuiltInAtomicType requiredType, boolean validate, XPathContext context)
Convert to target data type
AtomicValue
copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label
BuiltInAtomicType
getPrimitiveType()
Determine the primitive type of the value.

Methods inherited from class net.sf.saxon.value.StringValue

codepointEquals, containsSurrogatePairs, contract, convertPrimitive, convertStringToAtomicType, convertStringToBuiltInType, convertToJava, copyAsSubType, diagnosticDisplay, effectiveBooleanValue, equals, expand, expand, getPrimitiveType, getSchemaComparable, getStringLength, getStringLength, getStringValue, getStringValueCS, getXPathComparable, isZeroLength, iterateCharacters, makeRestrictedString, makeStringValue, setStringValueCS, toString, validate

Methods inherited from class net.sf.saxon.value.AtomicValue

asAtomic, checkPermittedContents, convert, convert, convertPrimitive, copyAsSubType, effectiveBooleanValue, equals, getCardinality, getComponent, getItemType, getLength, getPrimitiveType, getSchemaComparable, getStringValue, getStringValueCS, getTypeLabel, getTypedValue, getXPathComparable, isNaN, itemAt, iterate, process, setTypeLabel, subsequence, toString

Methods inherited from class net.sf.saxon.value.Value

asItem, asItem, asIterator, asValue, checkPermittedContents, convertJavaObjectToXPath, convertToJava, convertToJava, effectiveBooleanValue, equals, fromItem, getCanonicalLexicalRepresentation, getCardinality, getItemType, getIterator, getLength, getSchemaComparable, getStringValue, getStringValueCS, itemAt, iterate, iterate, makeQNameValue, process, reduce, stringToNumber, toString

Field Details

ZERO_LENGTH_UNTYPED

public static final UntypedAtomicValue ZERO_LENGTH_UNTYPED

Constructor Details

UntypedAtomicValue

public UntypedAtomicValue(CharSequence value)
Constructor
Parameters:
value - the String value. Null is taken as equivalent to "".

Method Details

compareTo

public int compareTo(AtomicValue other,
                     StringCollator collator,
                     XPathContext context)
Compare an untypedAtomic value with another value, using a given collator to perform any string comparisons. This works by converting the untypedAtomic value to the type of the other operand, which is the correct behavior for operators like "=" and "!=", but not for "eq" and "ne": in the latter case, the untypedAtomic value is converted to a string and this method is therefore not used.
Returns:
-1 if the this value is less than the other, 0 if they are equal, +1 if this value is greater.

convertPrimitive

public ConversionResult convertPrimitive(BuiltInAtomicType requiredType,
                                         boolean validate,
                                         XPathContext context)
Convert to target data type
Overrides:
convertPrimitive in interface StringValue

copyAsSubType

public AtomicValue copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label
Overrides:
copyAsSubType in interface StringValue
Parameters:
typeLabel - the type label of the new copy. The caller is responsible for checking that the value actually conforms to this type.

getPrimitiveType

public BuiltInAtomicType getPrimitiveType()
Determine the primitive type of the value. This delivers the same answer as getItemType().getPrimitiveItemType(). The primitive types are the 19 primitive types of XML Schema, plus xs:integer, xs:dayTimeDuration and xs:yearMonthDuration, and xs:untypedAtomic. For external objects, the result is AnyAtomicType.
Overrides:
getPrimitiveType in interface StringValue