java.io.Serializable
, java.lang.Comparable
, Expression
, Item
, ValueRepresentation
BigIntegerValue
, DecimalValue
, DoubleValue
, FloatValue
, IntegerValue
public abstract class NumericValue extends AtomicValue implements java.lang.Comparable
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
EMPTY_CLASS_ARRAY
EMPTY_VALUE_ARRAY
Constructor | Description |
---|---|
NumericValue() |
Modifier and Type | Method | Description |
---|---|---|
abstract NumericValue |
arithmetic(int operator,
NumericValue other,
XPathContext context) |
Perform a binary arithmetic operation
|
abstract NumericValue |
ceiling() |
Implement the XPath ceiling() function
|
abstract int |
compareTo(long other) |
Compare the value to a long
|
int |
compareTo(java.lang.Object other) |
Compare the value to another numeric value
|
boolean |
equals(java.lang.Object other) |
The equals() function compares numeric equality among integers, decimals, floats, doubles, and
their subtypes
|
abstract NumericValue |
floor() |
Implement the XPath floor() function
|
double |
getDoubleValue() |
Get the numeric value as a double
|
abstract int |
hashCode() |
hashCode() must be the same for two values that are equal.
|
static boolean |
isInteger(AtomicValue value) |
Test whether the value is an integer (an instance of a subtype of xs:integer)
|
boolean |
isNaN() |
Test whether the value is the double/float value NaN
|
abstract boolean |
isWholeNumber() |
Determine whether the value is a whole number, that is, whether it compares
equal to some integer
|
long |
longValue() |
Return the numeric value as a Java long.
|
abstract NumericValue |
negate() |
Change the sign of the number
|
static NumericValue |
parseNumber(java.lang.String in) |
Get a numeric value by parsing a string; the type of numeric value depends
on the lexical form of the string, following the rules for XPath numeric
literals.
|
static ItemType |
promote(ItemType v1,
ItemType v2,
TypeHierarchy typeHierarchy) |
Identify lowest common supertype of two numeric values for promotion purposes
|
abstract NumericValue |
round() |
Implement the XPath round() function
|
abstract NumericValue |
roundHalfToEven(int scale) |
Implement the XPath 2.0 round-half-to-even() function
|
abstract double |
signum() |
Determine whether the value is negative, zero, or positive
|
java.lang.String |
toString() |
Produce a string representation of the value
|
checkPermittedContents, convert, convert, convertPrimitive, display, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getComponent, getImplementationMethod, getLength, getPrimitiveValue, getStringValue, getStringValueCS, getTypedValue, hasBuiltInType, iterate, process
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asItem, asIterator, asValue, convert, convertJavaObjectToXPath, convertToJava, getDependencies, getItemType, getIterator, getParentExpression, getSpecialProperties, itemAt, iterateSubExpressions, makeQNameValue, optimize, promote, reduce, simplify, stringToNumber, typeCheck
public static NumericValue parseNumber(java.lang.String in)
in
- the input stringpublic double getDoubleValue()
public boolean isNaN()
public static boolean isInteger(AtomicValue value)
public long longValue() throws XPathException
XPathException
- if the value cannot be convertedpublic abstract NumericValue negate()
public abstract NumericValue floor()
public abstract NumericValue ceiling()
public abstract NumericValue round()
public abstract NumericValue roundHalfToEven(int scale)
scale
- the decimal position for rounding: e.g. 2 rounds to a
multiple of 0.01, while -2 rounds to a multiple of 100public abstract double signum()
public abstract NumericValue arithmetic(int operator, NumericValue other, XPathContext context) throws XPathException
operator
- the binary arithmetic operation to be performed. Uses
the constants defined in the Tokenizer classother
- the other operandXPathException
- if an arithmetic error occursTokenizer
public abstract boolean isWholeNumber()
public int compareTo(java.lang.Object other)
compareTo
in interface java.lang.Comparable
other
- The other numeric valuejava.lang.ClassCastException
- if the other value is not a NumericValue
(the parameter is declared as Object to satisfy the Comparable
interface)public abstract int compareTo(long other)
other
- the value to be compared withpublic final boolean equals(java.lang.Object other)
public static ItemType promote(ItemType v1, ItemType v2, TypeHierarchy typeHierarchy)
v1
- the item type of the first operandv2
- the item type of the second operandtypeHierarchy
- public abstract int hashCode()
public java.lang.String toString()
toString
in class AtomicValue