All Implemented Interfaces:
TreeNode, JsonSerializable, Serializable, Iterable<JsonNode>

public class POJONode extends ValueNode
Value node that contains a wrapped POJO, to be serialized as a JSON constructed through data mapping (usually done by calling ObjectMapper).
See Also:
  • Field Details

    • _value

      protected final Object _value
  • Constructor Details

    • POJONode

      public POJONode(Object v)
  • Method Details

    • 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 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 TreeNode
      Specified by:
      asToken in class ValueNode
      Returns:
      JsonToken that is most closely associated with the node type
    • binaryValue

      public byte[] binaryValue() throws IOException
      As it is possible that some implementations embed byte[] as POJONode (despite optimal being BinaryNode), let's add support for exposing binary data here too.
      Overrides:
      binaryValue in class JsonNode
      Returns:
      Binary data this node contains, iff it is a binary node; null otherwise
      Throws:
      IOException
    • asText

      public 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
    • asText

      public String asText(String defaultValue)
      Description copied from class: JsonNode
      Method similar to JsonNode.asText(), except that it will return defaultValue in cases where null value would be returned; either for missing nodes (trying to access missing property, or element at invalid item for array) or explicit nulls.
      Overrides:
      asText in class JsonNode
    • asBoolean

      public boolean asBoolean(boolean defaultValue)
      Description copied from class: JsonNode
      Method that will try to convert value of this node to a Java boolean. JSON booleans map naturally; integer numbers other than 0 map to true, and 0 maps to false and Strings 'true' and 'false' map to corresponding values.

      If representation cannot be converted to a boolean value (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

      Overrides:
      asBoolean in class JsonNode
    • asInt

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

      Overrides:
      asLong in class JsonNode
    • asDouble

      public 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 cannot 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
    • serialize

      public final void serialize(JsonGenerator gen, SerializerProvider ctxt) throws IOException
      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
    • getPojo

      public Object getPojo()
      Method that can be used to access the POJO this node wraps.
    • 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
    • _pojoEquals

      protected boolean _pojoEquals(POJONode other)
      Since:
      2.3
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class BaseJsonNode