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

org.codehaus.jackson.node

## Class ValueNode

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

- All Implemented Interfaces:
    Iterable<JsonNode>, JsonSerializable, JsonSerializableWithType
  Direct Known Subclasses:
    BinaryNode, BooleanNode, NullNode, NumericNode, POJONode, TextNode

      public abstract class ValueNode
      extends BaseJsonNode

  This intermediate base class is used for all leaf nodes, that is, all non-container (array or object) nodes, except for the "missing node".

- - ### Field Summary

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

      `NO_NODES, NO_STRINGS`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract JsonToken` | `asToken()` Method that can be used for efficient type detection when using stream abstraction for traversing nodes.
    `boolean` | `isValueNode()` Method that returns true for all value nodes: ones that are not containers, and that do not represent "missing" nodes in the path.
    `JsonNode` | `path(int index)` This method is similar to `JsonNode.get(int)`, except that instead of returning null if no such element exists (due to index being out of range, or this node not being an array), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned.
    `JsonNode` | `path(String fieldName)` This method is similar to `JsonNode.get(String)`, except that instead of returning null if no such value exists (due to this node not being an object, or object not having value for the specified field), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned.
    `void` | `serializeWithType(JsonGenerator jg, SerializerProvider provider, TypeSerializer typeSer)` Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.
    `String` | `toString()` Note: marked as abstract to ensure all implementation classes define it properly.

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

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

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

      `asBoolean, asBoolean, asDouble, asDouble, asInt, asInt, asLong, asLong, asText, equals, findParents, findValues, findValuesAsText, get, get, getBigIntegerValue, getBinaryValue, getBooleanValue, getDecimalValue, getDoubleValue, getElements, getFieldNames, getFields, getIntValue, getLongValue, getNumberValue, getPath, getPath, getTextValue, getValueAsBoolean, getValueAsBoolean, getValueAsDouble, getValueAsDouble, getValueAsInt, getValueAsInt, getValueAsLong, getValueAsLong, getValueAsText, has, has, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isNumber, isObject, isPojo, isTextual, iterator, size, with`

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

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

- - ### Constructor Detail

    - #### ValueNode

          protected ValueNode()

  - ### Method Detail

    - #### isValueNode

          public boolean isValueNode()

      Description copied from class: `JsonNode`
      Method that returns true for all value nodes: ones that are not containers, and that do not represent "missing" nodes in the path. Such value nodes represent String, Number, Boolean and null values from JSON.

      Note: one and only one of methods `JsonNode.isValueNode()`, `JsonNode.isContainerNode()` and `JsonNode.isMissingNode()` ever returns true for any given node.

      Overrides:
        `isValueNode` in class `JsonNode`

    - #### asToken

          public abstract 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 `BaseJsonNode`

    - #### serializeWithType

          public void serializeWithType(JsonGenerator jg,
                               SerializerProvider provider,
                               TypeSerializer typeSer)
                                 throws IOException,
                                        JsonProcessingException

      Description copied from class: `BaseJsonNode`
      Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.
      Specified by:
        `serializeWithType` in interface `JsonSerializableWithType`
      Specified by:
        `serializeWithType` in class `BaseJsonNode`
      Throws:
        `IOException`
        `JsonProcessingException`

    - #### path

          public JsonNode path(String fieldName)

      Description copied from class: `JsonNode`
      This method is similar to `JsonNode.get(String)`, except that instead of returning null if no such value exists (due to this node not being an object, or object not having value for the specified field), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned. This allows for convenient and safe chained access via path calls.
      Specified by:
        `path` in class `JsonNode`

    - #### path

          public JsonNode path(int index)

      Description copied from class: `JsonNode`
      This method is similar to `JsonNode.get(int)`, except that instead of returning null if no such element exists (due to index being out of range, or this node not being an array), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned. This allows for convenient and safe chained access via path calls.
      Specified by:
        `path` in class `JsonNode`

    - #### toString

          public String toString()

      Description copied from class: `JsonNode`

      Note: marked as abstract to ensure all implementation classes define it properly.

      Specified by:
        `toString` in class `JsonNode`