net.sf.saxon.value

Class Int64Value

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.
Nested Class Summary
protected static classInt64Value.Int64Comparable
Constructor Summary
Int64Value(long value)
Constructor supplying a long
Int64Value(long val, BuiltInAtomicType type, boolean check)
Constructor for a subtype, supplying a long and a type label.
Method Summary
NumericValueabs()
Get the absolute value as defined by the XPath abs() function
BigIntegerasBigInteger()
Get the value as a BigInteger
NumericValueceiling()
Implement the XPath ceiling() function
booleancheckRange(BuiltInAtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values.
intcompareTo(Object other)
Compare the value to another numeric value
intcompareTo(long other)
Compare the value to a long
ConversionResultconvertPrimitive(BuiltInAtomicType requiredType, boolean validate, XPathContext context)
Convert to target data type
ValidationFailureconvertToSubType(BuiltInAtomicType subtype, boolean validate)
Convert the value to a subtype of xs:integer
AtomicValuecopyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label
NumericValuediv(IntegerValue other)
Divide by another integer
booleaneffectiveBooleanValue()
Return the effective boolean value of this integer
NumericValuefloor()
Implement the XPath floor() function
BigDecimalgetDecimalValue()
Get the numeric value converted to a decimal
doublegetDoubleValue()
Get the numeric value as a double
floatgetFloatValue()
Get the numeric value converted to a float
StringgetPrimitiveStringValue()
Get the value as a String
ComparablegetSchemaComparable()
Get an object that implements XML Schema comparison semantics
inthashCode()
Get the hashCode.
IntegerValueidiv(IntegerValue other)
Integer divide by another integer
longlongValue()
Get the value
static Int64ValuemakeDerived(long val, AtomicType type)
Factory method to create a derived value, with no checking of the value against the derived type
static Int64ValuemakeIntegerValue(long value)
Factory method: allows Int64Value objects to be reused.
IntegerValueminus(IntegerValue other)
Subtract another integer
IntegerValuemod(IntegerValue other)
Take modulo another integer
NumericValuenegate()
Negate the value
IntegerValueplus(IntegerValue other)
Add another integer
NumericValueround()
Implement the XPath round() function
NumericValueroundHalfToEven(int scale)
Implement the XPath round-to-half-even() function
voidsetSubType(AtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values.
static Int64Valuesignum(long val)
Factory method returning the integer -1, 0, or +1 according as the argument is negative, zero, or positive
doublesignum()
Determine whether the value is negative, zero, or positive
IntegerValuetimes(IntegerValue other)
Multiply by another integer
ValidationFailurevalidateAgainstSubType(BuiltInAtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values.

Constructor Detail

Int64Value

public Int64Value(long value)
Constructor supplying a long

Parameters: value the value of the IntegerValue

Int64Value

public Int64Value(long val, BuiltInAtomicType type, boolean check)
Constructor for a subtype, supplying a long and a type label.

Parameters: val The supplied value, as an integer type the required item type, a subtype of xs:integer check 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

abs

public NumericValue abs()
Get the absolute value as defined by the XPath abs() function

Returns: the absolute value

asBigInteger

public BigInteger asBigInteger()
Get the value as a BigInteger

ceiling

public NumericValue ceiling()
Implement the XPath ceiling() function

Returns: the integer value, unchanged

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

compareTo

public int compareTo(Object other)
Compare the value to another numeric value

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

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

Parameters: requiredType an integer identifying the required atomic type context XPath dynamic evaluation context

Returns: an AtomicValue, a value of the required type

convertToSubType

public ValidationFailure convertToSubType(BuiltInAtomicType subtype, boolean validate)
Convert the value to a subtype of xs:integer

Parameters: subtype the target subtype validate 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.

copyAsSubType

public AtomicValue copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label

Parameters: typeLabel the type label of the new copy. The caller is responsible for checking that the value actually conforms to this type.

div

public NumericValue div(IntegerValue other)
Divide by another integer

effectiveBooleanValue

public boolean effectiveBooleanValue()
Return the effective boolean value of this integer

Returns: false if the integer is zero, otherwise true

floor

public NumericValue floor()
Implement the XPath floor() function

Returns: the integer value, unchanged

getDecimalValue

public BigDecimal getDecimalValue()
Get the numeric value converted to a decimal

Returns: a decimal representing this numeric value;

getDoubleValue

public double getDoubleValue()
Get the numeric value as a double

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

Returns: a float representing this numeric value; NaN if it cannot be converted

getPrimitiveStringValue

public String getPrimitiveStringValue()
Get the value as a String

Returns: a String representation of the value

getSchemaComparable

public Comparable getSchemaComparable()
Get an object that implements XML Schema comparison semantics

hashCode

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

See Also: NumericValue

idiv

public IntegerValue idiv(IntegerValue other)
Integer divide by another integer

longValue

public long longValue()
Get the value

Returns: the value of the xs:integer, as a Java long

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 value type the subtype of xs:integer

Returns: the constructed value

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

minus

public IntegerValue minus(IntegerValue other)
Subtract another integer

mod

public IntegerValue mod(IntegerValue other)
Take modulo another integer

negate

public NumericValue negate()
Negate the value

Returns: the result of inverting the sign of the value

plus

public IntegerValue plus(IntegerValue other)
Add another integer

round

public NumericValue round()
Implement the XPath round() function

Returns: the integer value, unchanged

roundHalfToEven

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

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

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

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

signum

public double signum()
Determine whether the value is negative, zero, or positive

Returns: -1 if negative, 0 if zero, +1 if positive, NaN if NaN

times

public IntegerValue times(IntegerValue other)
Multiply by another integer

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.

Parameters: type the subtype of integer required

Returns: null if the operation succeeds, or a ValidationException if the value is out of range