DecimalNode (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.node

## Class DecimalNode

- java.lang.Object
- - org.codehaus.jackson.JsonNode
  - - org.codehaus.jackson.node.BaseJsonNode
    - - org.codehaus.jackson.node.ValueNode
      - - org.codehaus.jackson.node.NumericNode
        - - org.codehaus.jackson.node.DecimalNode

- All Implemented Interfaces:
    Iterable<JsonNode>, JsonSerializable, JsonSerializableWithType

      public final class DecimalNode
      extends NumericNode

  Numeric node that contains values that do not fit in simple integer (int, long) or floating point (double) values.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected BigDecimal` | `_value`

    - ### Fields inherited from class org.codehaus.jackson.JsonNode

      `NO_NODES, NO_STRINGS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DecimalNode(BigDecimal v)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `asText()` Method that will return valid String representation of the container value, if the node is a value node (method `JsonNode.isValueNode()` returns true), otherwise empty String.
    `JsonToken` | `asToken()` Method that can be used for efficient type detection when using stream abstraction for traversing nodes.
    `boolean` | `equals(Object o)` Equality for node objects is defined as full (deep) value equality.
    `BigInteger` | `getBigIntegerValue()`
    `BigDecimal` | `getDecimalValue()`
    `double` | `getDoubleValue()`
    `int` | `getIntValue()` Returns integer value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `long` | `getLongValue()`
    `JsonParser.NumberType` | `getNumberType()` If this node is a numeric type (as per `JsonNode.isNumber()`), returns native type that node uses to store the numeric value.
    `Number` | `getNumberValue()` Returns numeric value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true); otherwise returns null
    `int` | `hashCode()`
    `boolean` | `isBigDecimal()`
    `boolean` | `isFloatingPointNumber()`
    `void` | `serialize(JsonGenerator jg, SerializerProvider provider)` Method called to serialize node instances using given generator.
    `static DecimalNode` | `valueOf(BigDecimal d)`

    - ### Methods inherited from class org.codehaus.jackson.node.NumericNode

      `asDouble, asDouble, asInt, asInt, asLong, asLong, isNumber`

    - ### Methods inherited from class org.codehaus.jackson.node.ValueNode

      `isValueNode, path, path, serializeWithType, toString`

    - ### Methods inherited from class org.codehaus.jackson.node.BaseJsonNode

      `findParent, findParents, findPath, findValue, findValues, findValuesAsText, traverse`

    - ### Methods inherited from class org.codehaus.jackson.JsonNode

      `asBoolean, asBoolean, findParents, findValues, findValuesAsText, get, get, getBinaryValue, getBooleanValue, getElements, getFieldNames, getFields, getPath, getPath, getTextValue, getValueAsBoolean, getValueAsBoolean, getValueAsDouble, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsText, has, has, isArray, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isObject, isPojo, isTextual, iterator, size, with`

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

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

- - ### Field Detail

    - #### _value

          protected final BigDecimal _value

  - ### Constructor Detail

    - #### DecimalNode

          public DecimalNode(BigDecimal v)

  - ### Method Detail

    - #### valueOf

          public static DecimalNode valueOf(BigDecimal d)

    - #### asToken

          public JsonToken asToken()

      Description copied from class: `BaseJsonNode`
      Method that can be used for efficient type detection when using stream abstraction for traversing nodes. Will return the first `JsonToken` that equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)
      Specified by:
        `asToken` in class `ValueNode`

    - #### getNumberType

          public JsonParser.NumberType getNumberType()

      Description copied from class: `JsonNode`
      If this node is a numeric type (as per `JsonNode.isNumber()`), returns native type that node uses to store the numeric value.
      Specified by:
        `getNumberType` in class `NumericNode`

    - #### isFloatingPointNumber

          public boolean isFloatingPointNumber()

      Overrides:
        `isFloatingPointNumber` in class `JsonNode`
      Returns:
        True if this node represents a non-integral numeric Json value

    - #### isBigDecimal

          public boolean isBigDecimal()

      Overrides:
        `isBigDecimal` in class `JsonNode`

    - #### getNumberValue

          public Number getNumberValue()

      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
      Specified by:
        `getNumberValue` in class `NumericNode`
      Returns:
        Number value this node contains, if any (null for non-number nodes).

    - #### getIntValue

          public int getIntValue()

      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.
      Specified by:
        `getIntValue` in class `NumericNode`
      Returns:
        Integer value this node contains, if any; 0 for non-number nodes.

    - #### getLongValue

          public long getLongValue()

      Specified by:
        `getLongValue` in class `NumericNode`

    - #### getBigIntegerValue

          public BigInteger getBigIntegerValue()

      Specified by:
        `getBigIntegerValue` in class `NumericNode`

    - #### getDoubleValue

          public double getDoubleValue()

      Specified by:
        `getDoubleValue` in class `NumericNode`

    - #### getDecimalValue

          public BigDecimal getDecimalValue()

      Specified by:
        `getDecimalValue` in class `NumericNode`

    - #### asText

          public String asText()

      Description copied from class: `JsonNode`
      Method that will return 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 `NumericNode`

    - #### serialize

          public final void serialize(JsonGenerator jg,
                       SerializerProvider provider)
                               throws IOException,
                                      JsonProcessingException

      Description copied from class: `BaseJsonNode`
      Method called to serialize node instances using given generator.
      Specified by:
        `serialize` in interface `JsonSerializable`
      Specified by:
        `serialize` in class `BaseJsonNode`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### equals

          public boolean equals(Object o)

      Description copied from class: `JsonNode`
      Equality for node objects is defined as full (deep) value equality. This means that it is possible to compare complete JSON trees for equality by comparing equality of root nodes.

      Note: marked as abstract to ensure all implementation classes define it properly and not rely on definition from `Object`.

      Specified by:
        `equals` in class `JsonNode`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`