|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.value.Value<AtomicValue> net.sf.saxon.value.AtomicValue net.sf.saxon.value.NumericValue net.sf.saxon.value.IntegerValue
public abstract class IntegerValue
This class represents the XPath built-in type xs:integer. It is used for all
subtypes of xs:integer, other than user-defined subtypes. There are two implementations
of IntegerValue: Int64Value
, which accommodates values up to 2^63, and
BigIntegerValue
, which accommodates unlimited-length integers.
Field Summary | |
---|---|
static Int64Value |
MAX_LONG
IntegerValue representing the maximum value for a long |
static Int64Value |
MIN_LONG
IntegerValue representing the minimum value for a long |
static Int64Value |
MINUS_ONE
IntegerValue representing the value -1 |
static Int64Value |
PLUS_ONE
IntegerValue representing the value +1 |
static Int64Value |
ZERO
IntegerValue representing the value zero |
Fields inherited from class net.sf.saxon.value.AtomicValue |
---|
typeLabel |
Fields inherited from class net.sf.saxon.value.Value |
---|
INDETERMINATE_ORDERING |
Fields inherited from interface net.sf.saxon.om.ValueRepresentation |
---|
EMPTY_VALUE_ARRAY |
Constructor Summary | |
---|---|
IntegerValue()
|
Method Summary | |
---|---|
abstract BigInteger |
asBigInteger()
Get the value as a BigInteger |
static ValidationFailure |
castableAsInteger(CharSequence input)
Determine whether a string is castable as an integer |
static boolean |
checkBigRange(BigInteger big,
BuiltInAtomicType type)
Check that a BigInteger is within the required range for a given integer subtype. |
static boolean |
checkRange(long value,
BuiltInAtomicType type)
Check that a value is in range for the specified subtype of xs:integer |
abstract ValidationFailure |
convertToSubType(BuiltInAtomicType type,
boolean validate)
This class allows subtypes of xs:integer to be held, as well as xs:integer values. |
abstract NumericValue |
div(IntegerValue other)
Divide by another integer |
BuiltInAtomicType |
getPrimitiveType()
Determine the primitive type of the value. |
abstract IntegerValue |
idiv(IntegerValue other)
Integer divide by another integer |
boolean |
isIdentical(Value v)
Determine whether two atomic values are identical, as determined by XML Schema rules. |
boolean |
isWholeNumber()
Determine whether the value is a whole number, that is, whether it compares equal to some integer |
static IntegerValue |
makeIntegerValue(BigInteger value)
Factory method: makes either an Int64Value or a BigIntegerValue depending on the value supplied |
static ConversionResult |
makeIntegerValue(double value)
Convert a double to an integer |
static ConversionResult |
makeIntegerValue(DoubleValue doubleValue)
Convert a double to an integer |
abstract IntegerValue |
minus(IntegerValue other)
Subtract another integer |
abstract IntegerValue |
mod(IntegerValue other)
Take modulo another integer |
abstract IntegerValue |
plus(IntegerValue other)
Add another integer |
protected static int |
signum(int i)
Get the signum of an int |
static ConversionResult |
stringToInteger(CharSequence s)
Static factory method to convert strings to integers. |
abstract IntegerValue |
times(IntegerValue other)
Multiply by another integer |
abstract ValidationFailure |
validateAgainstSubType(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.NumericValue |
---|
abs, ceiling, compareTo, compareTo, equals, floor, getDecimalValue, getDoubleValue, getFloatValue, getXPathComparable, hashCode, isInteger, longValue, negate, parseNumber, round, roundHalfToEven, signum, toString |
Methods inherited from class net.sf.saxon.value.AtomicValue |
---|
asAtomic, checkPermittedContents, copyAsSubType, effectiveBooleanValue, getCardinality, getComponent, getItemType, getLength, getPrimitiveStringValue, getSchemaComparable, getStringValue, getStringValueCS, getTypedValue, getTypeLabel, isNaN, itemAt, iterate, process, setTypeLabel, subsequence |
Methods inherited from class net.sf.saxon.value.Value |
---|
asItem, asItem, asIterator, asValue, convertToJava, fromItem, getCanonicalLexicalRepresentation, getIterator, getSequenceLength, reduce |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final Int64Value MINUS_ONE
public static final Int64Value ZERO
public static final Int64Value PLUS_ONE
public static final Int64Value MAX_LONG
public static final Int64Value MIN_LONG
Constructor Detail |
---|
public IntegerValue()
Method Detail |
---|
public static IntegerValue makeIntegerValue(BigInteger value)
value
- the supplied integer value
public static ConversionResult makeIntegerValue(double value)
value
- the double to be converted
public static ConversionResult makeIntegerValue(DoubleValue doubleValue)
doubleValue
- the double to be converted
public abstract ValidationFailure convertToSubType(BuiltInAtomicType type, boolean validate)
type
- the subtype of integer requiredvalidate
- true if validation is required, false if the caller warrants that the value
is valid for the subtype
public abstract ValidationFailure validateAgainstSubType(BuiltInAtomicType type)
type
- the subtype of integer required
public static boolean checkRange(long value, BuiltInAtomicType type)
value
- the value to be checkedtype
- the required item type, a subtype of xs:integer
public static boolean checkBigRange(BigInteger big, BuiltInAtomicType type)
big
- the supplied BigIntegertype
- the derived type (a built-in restriction of xs:integer) to check the value against
public static ConversionResult stringToInteger(CharSequence s)
s
- CharSequence representing the string to be converted
public static ValidationFailure castableAsInteger(CharSequence input)
input
- the string to be tested
public BuiltInAtomicType getPrimitiveType()
getPrimitiveType
in class AtomicValue
public boolean isWholeNumber()
isWholeNumber
in class NumericValue
public abstract IntegerValue plus(IntegerValue other)
other
- the other integer
public abstract IntegerValue minus(IntegerValue other)
other
- the other integer
public abstract IntegerValue times(IntegerValue other)
other
- the other integer
public abstract NumericValue div(IntegerValue other) throws XPathException
other
- the other integer
XPathException
- if the other integer is zeropublic abstract IntegerValue mod(IntegerValue other) throws XPathException
other
- the other integer
XPathException
- if the other integer is zeropublic abstract IntegerValue idiv(IntegerValue other) throws XPathException
other
- the other integer
XPathException
- if the other integer is zeropublic abstract BigInteger asBigInteger()
protected static int signum(int i)
i
- the int
public boolean isIdentical(Value v)
Note that even this check ignores the type annotation of the value. The integer 3 and the short 3 are considered identical, even though they are not fully interchangeable. "Identical" means the same point in the value space, regardless of type annotation.
NaN is identical to itself.
isIdentical
in class AtomicValue
v
- the other value to be compared with this one
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |