Package net.sf.saxon.value
Class Int64Value
- java.lang.Object
-
- net.sf.saxon.value.AtomicValue
-
- net.sf.saxon.value.NumericValue
-
- net.sf.saxon.value.DecimalValue
-
- net.sf.saxon.value.IntegerValue
-
- net.sf.saxon.value.Int64Value
-
- All Implemented Interfaces:
java.lang.Comparable<XPathComparable>,java.lang.Iterable<AtomicValue>,AtomicMatchKey,XPathComparable,AtomicSequence,GroundedValue,IdentityComparable,Item,Sequence,ConversionResult,ContextFreeAtomicValue
public final class Int64Value extends IntegerValue
An integer value: note this is a subtype of decimal in XML Schema, not a primitive type. This class supports integer values in the range permitted by a Java "long", and also supports the built-in subtypes of xs:integer.
-
-
Field Summary
Fields Modifier and Type Field Description static Int64ValueMAX_LONGIntegerValue representing the maximum value for a longstatic Int64ValueMIN_LONGIntegerValue representing the minimum value for a longstatic Int64ValueMINUS_ONEIntegerValue representing the value -1static Int64ValuePLUS_ONEIntegerValue representing the value +1static Int64ValueZEROIntegerValue representing the value zero-
Fields inherited from class net.sf.saxon.value.AtomicValue
typeLabel
-
-
Constructor Summary
Constructors Constructor Description Int64Value(long value)Constructor supplying a longInt64Value(long value, AtomicType type)Constructor supplying a long, with a specific type annotationInt64Value(long val, BuiltInAtomicType type, boolean check)Constructor for a subtype, supplying a long and a type label.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description NumericValueabs()Get the absolute value as defined by the XPath abs() functionjava.math.BigIntegerasBigInteger()Get the value as a BigIntegerintasSubscript()Test whether a number is a possible subscript into a sequence, that is, a whole number greater than zero and less than 2^31NumericValueceiling()Implement the XPath ceiling() functionbooleancheckRange(BuiltInAtomicType type)This class allows subtypes of xs:integer to be held, as well as xs:integer values.intcompareTo(long other)Compare the value to a longintcompareTo(XPathComparable other)Compare the value to another numeric valueValidationFailureconvertToSubType(BuiltInAtomicType subtype, boolean validate)Convert the value to a subtype of xs:integerAtomicValuecopyAsSubType(AtomicType typeLabel)Create a copy of this atomic value, with a different type labelNumericValuediv(IntegerValue other)Divide by another integerbooleaneffectiveBooleanValue()Return the effective boolean value of this integerNumericValuefloor()Implement the XPath floor() functionjava.math.BigDecimalgetDecimalValue()Get the numeric value converted to a decimaldoublegetDoubleValue()Get the numeric value as a doublefloatgetFloatValue()Get the numeric value converted to a floatUnicodeStringgetPrimitiveStringValue()Get the value as a StringinthashCode()Get the hashCode.IntegerValueidiv(IntegerValue other)Integer divide by another integerlonglongValue()Get the valuestatic Int64ValuemakeDerived(long val, AtomicType type)Factory method to create a derived value, with no checking of the value against the derived typestatic Int64ValuemakeIntegerValue(long value)Factory method: allows Int64Value objects to be reused.IntegerValueminus(IntegerValue other)Subtract another integerIntegerValuemod(IntegerValue other)Take modulo another integerNumericValuenegate()Negate the valueIntegerValueplus(IntegerValue other)Add another integerNumericValueround(int scale)Implement the XPath round() functionNumericValueroundHalfToEven(int scale)Implement the XPath round-to-half-even() functionvoidsetSubType(AtomicType type)This class allows subtypes of xs:integer to be held, as well as xs:integer values.intsignum()Determine whether the value is negative, zero, or positivestatic Int64Valuesignum(long val)Factory method returning the integer -1, 0, or +1 according as the argument is negative, zero, or positiveIntegerValuetimes(IntegerValue other)Multiply by another integerValidationFailurevalidateAgainstSubType(BuiltInAtomicType type)This class allows subtypes of xs:integer to be held, as well as xs:integer values.-
Methods inherited from class net.sf.saxon.value.IntegerValue
castableAsInteger, checkBigRange, checkRange, div, fromDouble, getMaxInclusive, getMinInclusive, getPrimitiveType, idiv, isIdentical, isWholeNumber, makeIntegerValue, mod, signum, stringToInteger
-
Methods inherited from class net.sf.saxon.value.NumericValue
equals, getXPathComparable, getXPathComparable, getXPathMatchKey, isInteger, isNegativeZero, parseNumber, show
-
Methods inherited from class net.sf.saxon.value.AtomicValue
asAtomic, asMapKey, atomize, checkPermittedContents, checkValidInJavascript, getCanonicalLexicalRepresentation, getCardinality, getComponent, getGenre, getItemType, getLength, getUnicodeStringValue, getUType, head, identityHashCode, isIdentical, isNaN, isUntypedAtomic, itemAt, iterate, iterator, setTypeLabel, toShortString, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.expr.sort.AtomicMatchKey
asAtomic
-
Methods inherited from interface net.sf.saxon.om.GroundedValue
asIterable, concatenate, containsNode, materialize
-
Methods inherited from interface net.sf.saxon.om.Item
getStringValue, isStreamed, reduce, subsequence
-
Methods inherited from interface net.sf.saxon.om.Sequence
makeRepeatable
-
-
-
-
Field Detail
-
MINUS_ONE
public static final Int64Value MINUS_ONE
IntegerValue representing the value -1
-
ZERO
public static final Int64Value ZERO
IntegerValue representing the value zero
-
PLUS_ONE
public static final Int64Value PLUS_ONE
IntegerValue representing the value +1
-
MAX_LONG
public static final Int64Value MAX_LONG
IntegerValue representing the maximum value for a long
-
MIN_LONG
public static final Int64Value MIN_LONG
IntegerValue representing the minimum value for a long
-
-
Constructor Detail
-
Int64Value
public Int64Value(long value)
Constructor supplying a long- Parameters:
value- the value of the IntegerValue
-
Int64Value
public Int64Value(long value, AtomicType type)Constructor supplying a long, with a specific type annotation- Parameters:
value- the value of the IntegerValuetype- the type annotation (trusted to be correct)
-
Int64Value
public Int64Value(long val, BuiltInAtomicType type, boolean check) throws XPathExceptionConstructor for a subtype, supplying a long and a type label.- Parameters:
val- The supplied value, as an integertype- the required item type, a subtype of xs:integercheck- Set to true if the method is required to check that the value is in range; false if the caller can guarantee that the value has already been checked.- Throws:
XPathException- if the supplied value is out of range for the target type
-
-
Method Detail
-
makeIntegerValue
public static Int64Value makeIntegerValue(long value)
Factory method: allows Int64Value objects to be reused. Note that a value obtained using this method must not be modified to set a type label, because the value is in general shared.- Parameters:
value- the integer value- Returns:
- an Int64Value with this integer value
-
makeDerived
public static Int64Value makeDerived(long val, AtomicType type)
Factory method to create a derived value, with no checking of the value against the derived type- Parameters:
val- the integer valuetype- the subtype of xs:integer- Returns:
- the constructed value
-
signum
public static Int64Value signum(long val)
Factory method returning the integer -1, 0, or +1 according as the argument is negative, zero, or positive- Parameters:
val- the value to be tested- Returns:
- the Int64Value representing -1, 0, or +1
-
asSubscript
public int asSubscript()
Test whether a number is a possible subscript into a sequence, that is, a whole number greater than zero and less than 2^31- Specified by:
asSubscriptin classNumericValue- Returns:
- the number as an int if it is a possible subscript, or -1 otherwise
-
copyAsSubType
public AtomicValue copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label- Specified by:
copyAsSubTypein classAtomicValue- Parameters:
typeLabel- the type label of the new copy. The caller is responsible for checking that the value actually conforms to this type.- Returns:
- the copied value
-
convertToSubType
public ValidationFailure convertToSubType(BuiltInAtomicType subtype, boolean validate)
Convert the value to a subtype of xs:integer- Specified by:
convertToSubTypein classIntegerValue- Parameters:
subtype- the target subtypevalidate- true if validation is required; false if the caller already knows that the value is valid- Returns:
- null if the conversion succeeds; a ValidationFailure describing the failure if it fails. Note that the exception is returned, not thrown.
-
validateAgainstSubType
public ValidationFailure validateAgainstSubType(BuiltInAtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values. This method sets the required type label. Note that this method modifies the value in situ.- Specified by:
validateAgainstSubTypein classIntegerValue- Parameters:
type- the subtype of integer required- Returns:
- null if the operation succeeds, or a ValidationException if the value is out of range
-
setSubType
public void setSubType(AtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values. This method sets the required type label. It is the caller's responsibility to check that the value is within range.- Parameters:
type- the type label to be assigned
-
checkRange
public boolean checkRange(BuiltInAtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values. This method checks that the value is within range, and also sets the type label.- Parameters:
type- the subtype of integer required- Returns:
- true if successful, false if value is out of range for the subtype
-
hashCode
public int hashCode()
Get the hashCode. This must conform to the rules for other NumericValue hashcodes- Specified by:
hashCodein classNumericValue- Returns:
- the hash code of the numeric value
- See Also:
NumericValue.hashCode()
-
longValue
public long longValue()
Get the value- Specified by:
longValuein classNumericValue- Returns:
- the value of the xs:integer, as a Java long
-
effectiveBooleanValue
public boolean effectiveBooleanValue()
Return the effective boolean value of this integer- Specified by:
effectiveBooleanValuein interfaceGroundedValue- Specified by:
effectiveBooleanValuein classNumericValue- Returns:
- false if the integer is zero, otherwise true
-
compareTo
public int compareTo(XPathComparable other)
Compare the value to another numeric value- Specified by:
compareToin interfacejava.lang.Comparable<XPathComparable>- Overrides:
compareToin classNumericValue- Parameters:
other- the numeric value to be compared to this value- Returns:
- -1 if this value is less than the other, 0 if they are equal, +1 if this value is greater
-
compareTo
public int compareTo(long other)
Compare the value to a long- Specified by:
compareToin classNumericValue- 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
-
getPrimitiveStringValue
public UnicodeString getPrimitiveStringValue()
Get the value as a String- Specified by:
getPrimitiveStringValuein classAtomicValue- Returns:
- a String representation of the value
-
getDoubleValue
public double getDoubleValue()
Get the numeric value as a double- Specified by:
getDoubleValuein classNumericValue- Returns:
- A double representing this numeric value; NaN if it cannot be converted
-
getFloatValue
public float getFloatValue()
Get the numeric value converted to a float- Specified by:
getFloatValuein classNumericValue- Returns:
- a float representing this numeric value; NaN if it cannot be converted
-
getDecimalValue
public java.math.BigDecimal getDecimalValue()
Get the numeric value converted to a decimal- Specified by:
getDecimalValuein classIntegerValue- Returns:
- a decimal representing this numeric value;
-
negate
public NumericValue negate()
Negate the value- Specified by:
negatein classNumericValue- Returns:
- the result of inverting the sign of the value
-
floor
public NumericValue floor()
Implement the XPath floor() function- Specified by:
floorin classNumericValue- Returns:
- the integer value, unchanged
-
ceiling
public NumericValue ceiling()
Implement the XPath ceiling() function- Specified by:
ceilingin classNumericValue- Returns:
- the integer value, unchanged
-
round
public NumericValue round(int scale)
Implement the XPath round() function- Specified by:
roundin classNumericValue- Parameters:
scale- the scale (for example scale=2 rounds to 2 decimal places, scale=-2 rounds to a multiple of 100); default value is zero which rounds to an integer- Returns:
- the integer value, unchanged
-
roundHalfToEven
public NumericValue roundHalfToEven(int scale)
Implement the XPath round-to-half-even() function- Specified by:
roundHalfToEvenin classNumericValue- Parameters:
scale- number of digits required after the decimal point; the value -2 (for example) means round to a multiple of 100- Returns:
- if the scale is >=0, return this value unchanged. Otherwise round it to a multiple of 10**-scale
-
signum
public int signum()
Determine whether the value is negative, zero, or positive- Specified by:
signumin classNumericValue- Returns:
- -1 if negative, 0 if zero, +1 if positive, NaN if NaN
-
abs
public NumericValue abs()
Get the absolute value as defined by the XPath abs() function- Specified by:
absin classNumericValue- Returns:
- the absolute value
-
plus
public IntegerValue plus(IntegerValue other)
Add another integer- Specified by:
plusin classIntegerValue- Parameters:
other- the other integer- Returns:
- the result of the addition
-
minus
public IntegerValue minus(IntegerValue other)
Subtract another integer- Specified by:
minusin classIntegerValue- Parameters:
other- the other integer- Returns:
- the result of the subtraction
-
times
public IntegerValue times(IntegerValue other)
Multiply by another integer- Specified by:
timesin classIntegerValue- Parameters:
other- the other integer- Returns:
- the result of the multiplication
-
div
public NumericValue div(IntegerValue other) throws XPathException
Divide by another integer- Specified by:
divin classIntegerValue- Parameters:
other- the other integer- Returns:
- the result of the division
- Throws:
XPathException- if the other integer is zero
-
mod
public IntegerValue mod(IntegerValue other) throws XPathException
Take modulo another integer- Specified by:
modin classIntegerValue- Parameters:
other- the other integer- Returns:
- the result of the modulo operation (the remainder)
- Throws:
XPathException- if the other integer is zero
-
idiv
public IntegerValue idiv(IntegerValue other) throws XPathException
Integer divide by another integer- Specified by:
idivin classIntegerValue- Parameters:
other- the other integer- Returns:
- the result of the integer division
- Throws:
XPathException- if the other integer is zero
-
asBigInteger
public java.math.BigInteger asBigInteger()
Get the value as a BigInteger- Specified by:
asBigIntegerin classIntegerValue- Returns:
- the value, as a BigInteger
-
-