BinaryNode
Date: 2016-12-04

com.fasterxml.jackson.databind.node

## Class BinaryNode

- 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.BinaryNode

- All Implemented Interfaces:
    com.fasterxml.jackson.core.TreeNode, JsonSerializable, java.lang.Iterable<JsonNode>

      public class BinaryNode
      extends ValueNode

  Value node that contains Base64 encoded binary value, which will be output and stored as Json String value.

- - ### Nested Class Summary

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

      `JsonSerializable.Base`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `_data`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BinaryNode(byte[] data)`
    `BinaryNode(byte[] data, int offset, int length)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `asText()` Hmmh.
    `com.fasterxml.jackson.core.JsonToken` | `asToken()` Method that can be used for efficient type detection when using stream abstraction for traversing nodes.
    `byte[]` | `binaryValue()` Note: caller is not to modify returned array in any way, since it is not a copy but reference to the underlying byte array.
    `boolean` | `equals(java.lang.Object o)` Equality for node objects is defined as full (deep) value equality.
    `JsonNodeType` | `getNodeType()` Return the type of this node
    `int` | `hashCode()`
    `void` | `serialize(com.fasterxml.jackson.core.JsonGenerator jg, SerializerProvider provider)` Method called to serialize node instances using given generator.
    `java.lang.String` | `toString()` Different from other values, since contents need to be surrounded by (double) quotes.
    `static BinaryNode` | `valueOf(byte[] data)`
    `static BinaryNode` | `valueOf(byte[] data, int offset, int length)`

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

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

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

      `findPath, numberType, traverse, traverse`

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

      `asBoolean, asBoolean, asDouble, asDouble, asInt, asInt, asLong, asLong, asText, at, at, bigIntegerValue, booleanValue, canConvertToInt, canConvertToLong, decimalValue, doubleValue, elements, equals, fieldNames, fields, findParents, findValues, findValuesAsText, floatValue, intValue, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloat, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isNumber, isObject, isPojo, isShort, isTextual, isValueNode, iterator, longValue, numberValue, 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`

- - ### Field Detail

    - #### _data

          protected final byte[] _data

  - ### Constructor Detail

    - #### BinaryNode

          public BinaryNode(byte[] data)

    - #### BinaryNode

          public BinaryNode(byte[] data,
                    int offset,
                    int length)

  - ### Method Detail

    - #### valueOf

          public static BinaryNode valueOf(byte[] data)

    - #### valueOf

          public static BinaryNode valueOf(byte[] data,
                           int offset,
                           int length)

    - #### getNodeType

          public 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

    - #### asToken

          public com.fasterxml.jackson.core.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 interface `com.fasterxml.jackson.core.TreeNode`
      Specified by:
        `asToken` in class `ValueNode`

    - #### binaryValue

          public byte[] binaryValue()

      Note: caller is not to modify returned array in any way, since it is not a copy but reference to the underlying byte array.

      Overrides:
        `binaryValue` in class `JsonNode`
      Returns:
        Binary data this node contains, iff it is a binary node; null otherwise

    - #### asText

          public java.lang.String asText()

      Hmmh. This is not quite as efficient as using `serialize(com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)`, but will work correctly.
      Specified by:
        `asText` in class `JsonNode`

    - #### serialize

          public final void serialize(com.fasterxml.jackson.core.JsonGenerator jg,
                       SerializerProvider provider)
                               throws java.io.IOException,
                                      com.fasterxml.jackson.core.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:
        `java.io.IOException`
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### equals

          public boolean equals(java.lang.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()

      Specified by:
        `hashCode` in class `BaseJsonNode`

    - #### toString

          public java.lang.String toString()

      Different from other values, since contents need to be surrounded by (double) quotes.
      Overrides:
        `toString` in class `ValueNode`