NumericNode
Date: 2016-12-04

com.fasterxml.jackson.databind.node

## Class NumericNode

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonSerializable.Base
  - - com.fasterxml.jackson.databind.JsonNode
    - - com.fasterxml.jackson.databind.node.BaseJsonNode
      - - com.fasterxml.jackson.databind.node.ValueNode
        - - com.fasterxml.jackson.databind.node.NumericNode

- All Implemented Interfaces:
    com.fasterxml.jackson.core.TreeNode, JsonSerializable, java.lang.Iterable<JsonNode>
  Direct Known Subclasses:
    BigIntegerNode, DecimalNode, DoubleNode, FloatNode, IntNode, LongNode, ShortNode

      public abstract class NumericNode
      extends ValueNode

  Intermediate value node used for numeric nodes.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.JsonSerializable

      `JsonSerializable.Base`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `NumericNode()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `asDouble()` Method that will try to convert value of this node to a Java double.
    `double` | `asDouble(double defaultValue)` Method that will try to convert value of this node to a Java double.
    `int` | `asInt()` Method that will try to convert value of this node to a Java int.
    `int` | `asInt(int defaultValue)` Method that will try to convert value of this node to a Java int.
    `long` | `asLong()` Method that will try to convert value of this node to a Java long.
    `long` | `asLong(long defaultValue)` Method that will try to convert value of this node to a Java long.
    `abstract java.lang.String` | `asText()` Method that will return a valid String representation of the container value, if the node is a value node (method `JsonNode.isValueNode()` returns true), otherwise empty String.
    `abstract java.math.BigInteger` | `bigIntegerValue()`
    `abstract boolean` | `canConvertToInt()` 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` | `canConvertToLong()` 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 java.math.BigDecimal` | `decimalValue()`
    `abstract double` | `doubleValue()` Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `JsonNodeType` | `getNodeType()` Return the type of this node
    `abstract int` | `intValue()` Returns integer value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `abstract long` | `longValue()` Returns 64-bit long value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `abstract com.fasterxml.jackson.core.JsonParser.NumberType` | `numberType()` Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.
    `abstract java.lang.Number` | `numberValue()` Returns numeric value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true); otherwise returns null

    - ### Methods inherited from class com.fasterxml.jackson.databind.node.ValueNode

      `_at, asToken, deepCopy, findParent, findParents, findValue, findValues, findValuesAsText, get, get, has, has, hasNonNull, hasNonNull, path, path, serializeWithType, toString`

    - ### Methods inherited from class com.fasterxml.jackson.databind.node.BaseJsonNode

      `findPath, hashCode, serialize, traverse, traverse`

    - ### Methods inherited from class com.fasterxml.jackson.databind.JsonNode

      `asBoolean, asBoolean, asText, at, at, binaryValue, booleanValue, 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, shortValue, size, textValue, with, withArray`

    - ### Methods inherited from class com.fasterxml.jackson.databind.JsonSerializable.Base

      `isEmpty`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### NumericNode

          protected NumericNode()

  - ### Method Detail

    - #### getNodeType

          public final JsonNodeType getNodeType()

      Description copied from class: `JsonNode`
      Return the type of this node
      Specified by:
        `getNodeType` in class `JsonNode`
      Returns:
        the node type as a `JsonNodeType` enum value

    - #### numberType

          public abstract com.fasterxml.jackson.core.JsonParser.NumberType 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 interface `com.fasterxml.jackson.core.TreeNode`
      Overrides:
        `numberType` in class `BaseJsonNode`

    - #### numberValue

          public abstract java.lang.Number 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 class `JsonNode`
      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.
      Overrides:
        `intValue` in class `JsonNode`
      Returns:
        Integer value this node contains, if any; 0 for non-number nodes.

    - #### 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.
      Overrides:
        `longValue` in class `JsonNode`
      Returns:
        Long value this node contains, if any; 0 for non-number nodes.

    - #### 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 with `BigInteger` values.
      Overrides:
        `doubleValue` in class `JsonNode`
      Returns:
        64-bit double value this node contains, if any; 0.0 for non-number nodes.

    - #### decimalValue

          public abstract java.math.BigDecimal decimalValue()

      Overrides:
        `decimalValue` in class `JsonNode`

    - #### bigIntegerValue

          public abstract java.math.BigInteger bigIntegerValue()

      Overrides:
        `bigIntegerValue` in class `JsonNode`

    - #### 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 class `JsonNode`

    - #### 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 class `JsonNode`

    - #### asText

          public abstract java.lang.String 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 (method `JsonNode.isValueNode()` returns true), otherwise empty String.
      Specified by:
        `asText` in class `JsonNode`

    - #### 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 can not be converted to an int (including structured types like Objects and Arrays), default value of 0 will be returned; no exceptions are thrown.

      Overrides:
        `asInt` in class `JsonNode`

    - #### 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 can not be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
        `asInt` in class `JsonNode`

    - #### 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 can not be converted to an long (including structured types like Objects and Arrays), default value of 0 will be returned; no exceptions are thrown.

      Overrides:
        `asLong` in class `JsonNode`

    - #### 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 can not be converted to an long (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
        `asLong` in class `JsonNode`

    - #### 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 can not be converted to an int (including structured types like Objects and Arrays), default value of 0.0 will be returned; no exceptions are thrown.

      Overrides:
        `asDouble` in class `JsonNode`

    - #### 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 can not be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
        `asDouble` in class `JsonNode`