public final class IntegerValue extends NumericValue
Modifier and Type | Field and Description |
---|---|
static IntegerValue |
MAX_LONG
IntegerValue representing the maximum value for this class
|
static IntegerValue |
MIN_LONG
IntegerValue representing the minimum value for this class
|
static IntegerValue |
MINUS_ONE
IntegerValue representing the value -1
|
static IntegerValue |
PLUS_ONE
IntegerValue representing the value +1
|
static IntegerValue |
ZERO
IntegerValue representing the value zero
|
EMPTY_CLASS_ARRAY
EMPTY_VALUE_ARRAY
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
Constructor and Description |
---|
IntegerValue(long value)
Constructor supplying a long
|
IntegerValue(long val,
AtomicType type)
Constructor for a subtype, supplying an integer
|
Modifier and Type | Method and Description |
---|---|
NumericValue |
arithmetic(int operator,
NumericValue other,
XPathContext context)
Evaluate a binary arithmetic operator.
|
NumericValue |
ceiling()
Implement the XPath ceiling() function
|
(package private) static boolean |
checkBigRange(BigInteger big,
AtomicType type)
Check that a BigInteger is within the required range for a given integer subtype.
|
boolean |
checkRange(AtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values.
|
(package private) static boolean |
checkRange(long value,
AtomicType type)
Check that a value is in range for the specified subtype of xs:integer
|
int |
compareTo(Object other)
Compare the value to another numeric value
|
AtomicValue |
convertPrimitive(BuiltInAtomicType requiredType,
boolean validate,
XPathContext context)
Convert to target data type
|
Object |
convertToJava(Class target,
XPathContext context)
Convert to Java object (for passing to external functions)
|
ValidationException |
convertToSubtype(AtomicType subtype,
boolean validate)
Convert the value to a subtype of xs:integer
|
boolean |
effectiveBooleanValue(XPathContext context)
Return the effective boolean value of this integer
|
NumericValue |
floor()
Implement the XPath floor() function
|
ItemType |
getItemType(TypeHierarchy th)
Determine the data type of the expression
|
String |
getStringValue()
Get the value as a String
|
int |
hashCode()
Get the hashCode.
|
boolean |
isWholeNumber()
Determine whether the value is a whole number, that is, whether it compares
equal to some integer
|
long |
longValue()
Get the value
|
NumericValue |
negate()
Negate the value
|
NumericValue |
round()
Implement the XPath round() function
|
NumericValue |
roundToHalfEven(int scale)
Implement the XPath round-to-half-even() function
|
boolean |
schemaEquals(Value obj)
Compare two values for equality.
|
void |
setSubType(AtomicType type)
This class allows subtypes of xs:integer to be held, as well as xs:integer values.
|
double |
signum()
Determine whether the value is negative, zero, or positive
|
static AtomicValue |
stringToInteger(CharSequence s)
Static factory method to convert strings to integers.
|
equals, getDoubleValue, isInteger, isNaN, parseNumber, promote, toString
checkPermittedContents, convert, convert, display, evaluateAsString, evaluateItem, getCardinality, getComponent, getImplementationMethod, getLength, getPrimitiveValue, getStringValueCS, getTypedValue, hasBuiltInType, iterate, process
asItem, asIterator, asValue, collapseWhitespace, convert, convertJavaObjectToXPath, getDependencies, getIterator, getParentExpression, getSpecialProperties, itemAt, iterateSubExpressions, makeQNameValue, normalizeWhitespace, optimize, promote, reduce, simplify, stringToNumber, trimWhitespace, typeCheck
public static final IntegerValue MINUS_ONE
public static final IntegerValue ZERO
public static final IntegerValue PLUS_ONE
public static final IntegerValue MAX_LONG
public static final IntegerValue MIN_LONG
public IntegerValue(long value)
value
- the value of the IntegerValuepublic IntegerValue(long val, AtomicType type) throws DynamicError
val
- The supplied value, as an integertype
- the required item type, a subtype of xs:integerDynamicError
- if the supplied value is out of range for the
target typepublic ValidationException convertToSubtype(AtomicType subtype, boolean validate)
subtype
- the target subtypevalidate
- true if validation is required; false if the caller already knows that the value is validpublic void setSubType(AtomicType type)
public boolean checkRange(AtomicType type)
type
- the subtype of integer requiredpublic static AtomicValue stringToInteger(CharSequence s)
s
- CharSequence representing the string to be convertedstatic boolean checkRange(long value, AtomicType type)
value
- the value to be checkedtype
- the required item type, a subtype of xs:integerstatic boolean checkBigRange(BigInteger big, AtomicType type)
public int hashCode()
hashCode
in class NumericValue
NumericValue.hashCode()
public long longValue()
longValue
in class NumericValue
public boolean effectiveBooleanValue(XPathContext context)
effectiveBooleanValue
in interface Expression
effectiveBooleanValue
in class AtomicValue
context
- The dynamic evaluation context; ignored in this
implementation of the methodpublic int compareTo(Object other)
compareTo
in interface Comparable
compareTo
in class NumericValue
other
- the numeric value to be compared to this valuepublic boolean schemaEquals(Value obj)
schemaEquals
in class AtomicValue
public AtomicValue convertPrimitive(BuiltInAtomicType requiredType, boolean validate, XPathContext context)
convertPrimitive
in class AtomicValue
requiredType
- an integer identifying the required atomic typecontext
- validate
- true if validation is required. If set to false, the caller guarantees that
the value is valid for the target data type, and that further validation is therefore not required.
Note that a validation failure may be reported even if validation was not requested.public String getStringValue()
getStringValue
in interface Item
getStringValue
in interface ValueRepresentation
getStringValue
in class AtomicValue
Item.getStringValueCS()
public NumericValue negate()
negate
in class NumericValue
public NumericValue floor()
floor
in class NumericValue
public NumericValue ceiling()
ceiling
in class NumericValue
public NumericValue round()
round
in class NumericValue
public NumericValue roundToHalfEven(int scale)
roundToHalfEven
in class NumericValue
scale
- number of digits required after the decimal point; the
value -2 (for example) means round to a multiple of 100public double signum()
signum
in class NumericValue
public boolean isWholeNumber()
isWholeNumber
in class NumericValue
public NumericValue arithmetic(int operator, NumericValue other, XPathContext context) throws XPathException
arithmetic
in class NumericValue
operator
- the operator to be applied, identified by a constant in
the Tokenizer classother
- the other operand of the arithmetic expressionXPathException
- if an arithmetic failure occurs, e.g. divide
by zeroTokenizer
public ItemType getItemType(TypeHierarchy th)
getItemType
in interface Expression
getItemType
in class Value
th
- public Object convertToJava(Class target, XPathContext context) throws XPathException
convertToJava
in class Value
target
- The Java class to which conversion is requiredXPathException
- if conversion is not possible, or fails