public abstract class NumericValue extends AtomicValue implements Comparable
EMPTY_CLASS_ARRAY
EMPTY_VALUE_ARRAY
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
Constructor and Description |
---|
NumericValue() |
Modifier and Type | Method and Description |
---|---|
abstract NumericValue |
arithmetic(int operator,
NumericValue other,
XPathContext context)
Perform a binary arithmetic operation
|
abstract NumericValue |
ceiling()
Implement the XPath ceiling() function
|
int |
compareTo(Object other)
Compare the value to another numeric value
|
boolean |
equals(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(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 |
roundToHalfEven(int scale)
Implement the XPath 2.0 round-to-half-even() function
|
abstract double |
signum()
Determine whether the value is negative, zero, or positive
|
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, schemaEquals
asItem, asIterator, asValue, collapseWhitespace, convert, convertJavaObjectToXPath, convertToJava, getDependencies, getItemType, getIterator, getParentExpression, getSpecialProperties, itemAt, iterateSubExpressions, makeQNameValue, normalizeWhitespace, optimize, promote, reduce, simplify, stringToNumber, trimWhitespace, typeCheck
public static NumericValue parseNumber(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 roundToHalfEven(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(Object other)
compareTo
in interface Comparable
other
- The other numeric valueClassCastException
- if the other value is not a NumericValue
(the parameter is declared as Object to satisfy the Comparable
interface)public final boolean equals(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 String toString()
toString
in class AtomicValue