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

org.codehaus.jackson.node

## Class BinaryNode

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

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

      public final class BinaryNode
      extends ValueNode

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

- - ### Field Summary

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

      `NO_NODES, NO_STRINGS`

  - ### 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
    --- | ---
    `String` | `asText()` Hmmh.
    `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.
    `byte[]` | `getBinaryValue()` Note: caller is not to modify returned array in any way, since it is not a copy but reference to the underlying byte array.
    `int` | `hashCode()`
    `boolean` | `isBinary()` Method that can be used to check if this node represents binary data (Base64 encoded).
    `void` | `serialize(JsonGenerator jg, SerializerProvider provider)` Method called to serialize node instances using given generator.
    `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 org.codehaus.jackson.node.ValueNode

      `isValueNode, path, path, serializeWithType`

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

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

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

      `asBoolean, asBoolean, asDouble, asDouble, asInt, asInt, asLong, asLong, findParents, findValues, findValuesAsText, get, get, getBigIntegerValue, 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, 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, notify, notifyAll, wait, wait, wait`

- - ### 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)

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

    - #### isBinary

          public boolean isBinary()

      Description copied from class: `JsonNode`
      Method that can be used to check if this node represents binary data (Base64 encoded). Although this will be externally written as Json String value, `JsonNode.isTextual()` will return false if this method returns true.
      Overrides:
        `isBinary` in class `JsonNode`
      Returns:
        True if this node represents base64 encoded binary data

    - #### getBinaryValue

          public byte[] getBinaryValue()

      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:
        `getBinaryValue` in class `JsonNode`
      Returns:
        Binary data this node contains, iff it is a binary node; null otherwise

    - #### asText

          public String asText()

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

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

    - #### toString

          public String toString()

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