Class NumericNode
- All Implemented Interfaces:
TreeNode
,JsonSerializable
,Serializable
,Iterable<JsonNode>
- Direct Known Subclasses:
BigIntegerNode
,DecimalNode
,DoubleNode
,FloatNode
,IntNode
,LongNode
,ShortNode
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonNode
JsonNode.OverwriteMode
Nested classes/interfaces inherited from interface edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonSerializable
JsonSerializable.Base
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal double
asDouble()
Method that will try to convert value of this node to a Java double.final double
asDouble
(double defaultValue) Method that will try to convert value of this node to a Java double.final int
asInt()
Method that will try to convert value of this node to a Java int.final int
asInt
(int defaultValue) Method that will try to convert value of this node to a Java int.final long
asLong()
Method that will try to convert value of this node to a Java long.final long
asLong
(long defaultValue) Method that will try to convert value of this node to a Java long.abstract String
asText()
Method that will return a valid String representation of the container value, if the node is a value node (methodJsonNode.isValueNode()
returns true), otherwise empty String.abstract BigInteger
Returns integer value for this node (asBigInteger
), if and only if this node is numeric (JsonNode.isNumber()
returns true).abstract boolean
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND its value fits within Java's 32-bit signed integer type,int
.abstract boolean
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND its value fits within Java's 64-bit signed integer type,long
.abstract BigDecimal
Returns floating point value for this node (asBigDecimal
), if and only if this node is numeric (JsonNode.isNumber()
returns true).abstract double
Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true).final JsonNodeType
Return the type of this nodeabstract int
intValue()
Returns integer value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true).boolean
isNaN()
Convenience method for checking whether this node is aFloatNode
orDoubleNode
that contains "not-a-number" (NaN) value.abstract long
Returns 64-bit long value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true).abstract JsonParser.NumberType
Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.abstract Number
Returns numeric value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true); otherwise returns nullMethods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.node.ValueNode
_at, asToken, deepCopy, findParent, findParents, findValue, findValues, findValuesAsText, get, get, has, has, hasNonNull, hasNonNull, isEmpty, path, path, serializeWithType
Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.node.BaseJsonNode
_jsonPointerIfValid, _reportWrongNodeOperation, _reportWrongNodeType, _withArray, _withObject, _withXxxMayReplace, _withXxxVerifyReplace, findPath, hashCode, required, required, serialize, toPrettyString, toString, traverse, traverse, withArray, withObject
Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonNode
_reportRequiredViolation, _this, asBoolean, asBoolean, asText, at, at, binaryValue, booleanValue, canConvertToExactIntegral, elements, equals, equals, fieldNames, fields, findParents, findValues, findValuesAsText, floatValue, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloat, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isNumber, isObject, isPojo, isShort, isTextual, isValueNode, iterator, require, requiredAt, requiredAt, requireNonNull, shortValue, size, textValue, with, withArray, withArray, withArray, withObject, withObject, withObject
Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.JsonSerializable.Base
isEmpty
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
NumericNode
protected NumericNode()
-
-
Method Details
-
getNodeType
Description copied from class:JsonNode
Return the type of this node- Specified by:
getNodeType
in classJsonNode
- Returns:
- the node type as a
JsonNodeType
enum value
-
numberType
Description copied from class:BaseJsonNode
Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.- Specified by:
numberType
in interfaceTreeNode
- Overrides:
numberType
in classBaseJsonNode
- Returns:
- Type of number contained, if any; or null if node does not contain numeric value.
-
numberValue
Description copied from class:JsonNode
Returns numeric value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true); otherwise returns null- Overrides:
numberValue
in classJsonNode
- Returns:
- Number value this node contains, if any (null for non-number nodes).
-
intValue
public abstract int intValue()Description copied from class:JsonNode
Returns integer value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to int operates. -
longValue
public abstract long longValue()Description copied from class:JsonNode
Returns 64-bit long value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to long operates. -
doubleValue
public abstract double doubleValue()Description copied from class:JsonNode
Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (JsonNode.isNumber()
returns true). For other types returns 0.0. For integer values, conversion is done using coercion; this may result in overflows withBigInteger
values.- Overrides:
doubleValue
in classJsonNode
- Returns:
- 64-bit double value this node contains, if any; 0.0 for non-number nodes.
-
decimalValue
Description copied from class:JsonNode
Returns floating point value for this node (asBigDecimal
), if and only if this node is numeric (JsonNode.isNumber()
returns true). For other types returnsBigDecimal.ZERO
.- Overrides:
decimalValue
in classJsonNode
- Returns:
BigDecimal
value this node contains, if numeric node;BigDecimal.ZERO
for non-number nodes.
-
bigIntegerValue
Description copied from class:JsonNode
Returns integer value for this node (asBigInteger
), if and only if this node is numeric (JsonNode.isNumber()
returns true). For other types returnsBigInteger.ZERO
.- Overrides:
bigIntegerValue
in classJsonNode
- Returns:
BigInteger
value this node contains, if numeric node;BigInteger.ZERO
for non-number nodes.
-
canConvertToInt
public abstract boolean canConvertToInt()Description copied from class:JsonNode
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND its value fits within Java's 32-bit signed integer type,int
. Note that floating-point numbers are convertible if the integral part fits without overflow (as per standard Java coercion rules)NOTE: this method does not consider possible value type conversion from JSON String into Number; so even if this method returns false, it is possible that
JsonNode.asInt()
could still succeed if node is a JSON String representing integral number, or boolean.- Overrides:
canConvertToInt
in classJsonNode
-
canConvertToLong
public abstract boolean canConvertToLong()Description copied from class:JsonNode
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND its value fits within Java's 64-bit signed integer type,long
. Note that floating-point numbers are convertible if the integral part fits without overflow (as per standard Java coercion rules)NOTE: this method does not consider possible value type conversion from JSON String into Number; so even if this method returns false, it is possible that
JsonNode.asLong()
could still succeed if node is a JSON String representing integral number, or boolean.- Overrides:
canConvertToLong
in classJsonNode
-
asText
Description copied from class:JsonNode
Method that will return a valid String representation of the container value, if the node is a value node (methodJsonNode.isValueNode()
returns true), otherwise empty String. -
asInt
public final int asInt()Description copied from class:JsonNode
Method that will try to convert value of this node to a Java int. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.If representation cannot be converted to an int (including structured types like Objects and Arrays), default value of 0 will be returned; no exceptions are thrown.
-
asInt
public final int asInt(int defaultValue) Description copied from class:JsonNode
Method that will try to convert value of this node to a Java int. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.If representation cannot be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.
-
asLong
public final long asLong()Description copied from class:JsonNode
Method that will try to convert value of this node to a Java long. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.If representation cannot be converted to a long (including structured types like Objects and Arrays), default value of 0 will be returned; no exceptions are thrown.
-
asLong
public final long asLong(long defaultValue) Description copied from class:JsonNode
Method that will try to convert value of this node to a Java long. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.If representation cannot be converted to a long (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.
-
asDouble
public final double asDouble()Description copied from class:JsonNode
Method that will try to convert value of this node to a Java double. Numbers are coerced using default Java rules; booleans convert to 0.0 (false) and 1.0 (true), and Strings are parsed using default Java language integer parsing rules.If representation cannot be converted to an int (including structured types like Objects and Arrays), default value of 0.0 will be returned; no exceptions are thrown.
-
asDouble
public final double asDouble(double defaultValue) Description copied from class:JsonNode
Method that will try to convert value of this node to a Java double. Numbers are coerced using default Java rules; booleans convert to 0.0 (false) and 1.0 (true), and Strings are parsed using default Java language integer parsing rules.If representation cannot be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.
-
isNaN
public boolean isNaN()Convenience method for checking whether this node is aFloatNode
orDoubleNode
that contains "not-a-number" (NaN) value.- Since:
- 2.9
-