net.sf.saxon.value

Class FloatValue

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

public final class FloatValue
extends NumericValue

A numeric (single precision floating point) value

Field Summary

static FloatValue
NEGATIVE_ZERO
static FloatValue
NaN
static FloatValue
ONE
static FloatValue
ZERO

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

FloatValue(CharSequence val)
Constructor supplying a string
FloatValue(float value)
Constructor supplying a float
FloatValue(float value, AtomicType type)
Constructor supplying a float and an AtomicType, for creating a value that belongs to a user-defined subtype of xs:float.

Method Summary

NumericValue
ceiling()
Implement the XPath ceiling() function
int
compareTo(Object other)
int
compareTo(long other)
Compare the value to a long
ConversionResult
convertPrimitive(BuiltInAtomicType requiredType, boolean validate, XPathContext context)
Convert to target data type
Object
convertToJava(Class target, XPathContext context)
Convert to Java object (for passing to external functions)
AtomicValue
copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label
boolean
effectiveBooleanValue()
Get the effective boolean value
NumericValue
floor()
Implement the XPath floor() function
CharSequence
getCanonicalLexicalRepresentation()
Get the canonical lexical representation as defined in XML Schema.
double
getDoubleValue()
float
getFloatValue()
Get the value
BuiltInAtomicType
getPrimitiveType()
Determine the primitive type of the value.
Comparable
getSchemaComparable()
Get an object that implements XML Schema comparison semantics
String
getStringValue()
Get the value as a String
CharSequence
getStringValueCS()
Get the value as a String
int
hashCode()
Get the hashCode.
boolean
isNaN()
Test whether the value is the double/float value NaN
boolean
isWholeNumber()
Determine whether the value is a whole number, that is, whether it compares equal to some integer
NumericValue
negate()
Negate the value
NumericValue
round()
Implement the XPath round() function
NumericValue
roundHalfToEven(int scale)
Implement the XPath round-to-half-even() function
double
signum()
Determine whether the value is negative, zero, or positive

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

ceiling, compareTo, compareTo, equals, floor, getDecimalValue, getDoubleValue, getFloatValue, getXPathComparable, hashCode, isInteger, isWholeNumber, longValue, negate, parseNumber, promote, round, roundHalfToEven, signum, toString

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

NEGATIVE_ZERO

public static final FloatValue NEGATIVE_ZERO

NaN

public static final FloatValue NaN

ONE

public static final FloatValue ONE

ZERO

public static final FloatValue ZERO

Constructor Details

FloatValue

public FloatValue(CharSequence val)
            throws ValidationException
Constructor supplying a string

FloatValue

public FloatValue(float value)
Constructor supplying a float
Parameters:
value - the value of the float

FloatValue

public FloatValue(float value,
                  AtomicType type)
Constructor supplying a float and an AtomicType, for creating a value that belongs to a user-defined subtype of xs:float. It is the caller's responsibility to ensure that the supplied value conforms to the supplied type.
Parameters:
value - the value of the NumericValue
type - the type of the value. This must be a subtype of xs:float, and the value must conform to this type. The method does not check these conditions.

Method Details

ceiling

public NumericValue ceiling()
Implement the XPath ceiling() function
Overrides:
ceiling in interface NumericValue

compareTo

public int compareTo(Object other)
Overrides:
compareTo in interface NumericValue

compareTo

public int compareTo(long other)
Compare the value to a long
Overrides:
compareTo in interface NumericValue
Parameters:
other - the value to be compared with
Returns:
-1 if this is less, 0 if this is equal, +1 if this is greater or if this is NaN

convertPrimitive

public ConversionResult convertPrimitive(BuiltInAtomicType requiredType,
                                         boolean validate,
                                         XPathContext context)
Convert to target data type
Overrides:
convertPrimitive in interface AtomicValue
Parameters:
requiredType - an integer identifying the required atomic type
context - XPath dynamic context. Not used when converting from float
Returns:
an AtomicValue, a value of the required type; or an ErrorValue

convertToJava

public Object convertToJava(Class target,
                            XPathContext context)
            throws XPathException
Convert to Java object (for passing to external functions)
Overrides:
convertToJava in interface Value

copyAsSubType

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

effectiveBooleanValue

public boolean effectiveBooleanValue()
Get the effective boolean value
Overrides:
effectiveBooleanValue in interface AtomicValue
Returns:
true unless the value is zero or NaN

floor

public NumericValue floor()
Implement the XPath floor() function
Overrides:
floor in interface NumericValue

getCanonicalLexicalRepresentation

public CharSequence getCanonicalLexicalRepresentation()
Get the canonical lexical representation as defined in XML Schema. This is not always the same as the result of casting to a string according to the XPath rules. For xs:float, the canonical representation always uses exponential notation.
Overrides:
getCanonicalLexicalRepresentation in interface Value

getDoubleValue

public double getDoubleValue()
Overrides:
getDoubleValue in interface NumericValue

getFloatValue

public float getFloatValue()
Get the value
Overrides:
getFloatValue in interface NumericValue

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 AtomicValue

getSchemaComparable

public Comparable getSchemaComparable()
Get an object that implements XML Schema comparison semantics
Overrides:
getSchemaComparable in interface AtomicValue

getStringValue

public String getStringValue()
Get the value as a String
Specified by:
getStringValue in interface Item
getStringValue in interface ValueRepresentation
Overrides:
getStringValue in interface AtomicValue
Returns:
a String representation of the value

getStringValueCS

public CharSequence getStringValueCS()
Get the value as a String
Specified by:
getStringValueCS in interface Item
getStringValueCS in interface ValueRepresentation
Overrides:
getStringValueCS in interface AtomicValue
Returns:
a String representation of the value

hashCode

public int hashCode()
Get the hashCode. This must conform to the rules for other NumericValue hashcodes
Overrides:
hashCode in interface NumericValue

isNaN

public boolean isNaN()
Test whether the value is the double/float value NaN
Overrides:
isNaN in interface AtomicValue

isWholeNumber

public boolean isWholeNumber()
Determine whether the value is a whole number, that is, whether it compares equal to some integer
Overrides:
isWholeNumber in interface NumericValue

negate

public NumericValue negate()
Negate the value
Overrides:
negate in interface NumericValue

round

public NumericValue round()
Implement the XPath round() function
Overrides:
round in interface NumericValue

roundHalfToEven

public NumericValue roundHalfToEven(int scale)
Implement the XPath round-to-half-even() function
Overrides:
roundHalfToEven in interface NumericValue

signum

public double signum()
Determine whether the value is negative, zero, or positive
Overrides:
signum in interface NumericValue
Returns:
-1 if negative, 0 if zero (including negative zero), +1 if positive, NaN if NaN