Class MissingNode

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

public final class MissingNode extends ValueNode
This singleton node class is generated to denote "missing nodes" along paths that do not exist. For example, if a path via element of an array is requested for an element outside range of elements in the array; or for a non-array value, result will be reference to this node.

In most respects this placeholder node will act as NullNode; for example, for purposes of value conversions, value is considered to be null and represented as value zero when used for numeric conversions.

See Also:
  • Constructor Details

    • MissingNode

      protected MissingNode()

      NOTE: visibility raised to `protected` in 2.9.3 to allow custom subtypes (which may not be greatest idea ever to have but was requested)

  • Method Details

    • readResolve

      protected Object readResolve()
    • isMissingNode

      public boolean isMissingNode()
      Specified by:
      isMissingNode in interface com.fasterxml.jackson.core.TreeNode
      Overrides:
      isMissingNode in class JsonNode
    • deepCopy

      public <T extends JsonNode> T deepCopy()
      Description copied from class: ValueNode
      All current value nodes are immutable, so we can just return them as is.
      Overrides:
      deepCopy in class ValueNode
      Returns:
      Node that is either a copy of this node (and all non-leaf children); or, for immutable leaf nodes, node itself.
    • getInstance

      public static MissingNode getInstance()
    • 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
    • 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
      Returns the text value of this node or the provided defaultValue if this node does not have a text value. Useful for nodes that are MissingNode or NullNode, ensuring a default value is returned instead of null or missing indicators.

      NOTE: This was deprecated in 2.17.0, but as discussed through [databind#4471], was un-deprecated in 2.17.1.

      Overrides:
      asText in class JsonNode
      Parameters:
      defaultValue - The default value to return if this node's text value is absent.
      Returns:
      The text value of this node, or defaultValue if the text value is absent.
    • serialize

      public final void serialize(com.fasterxml.jackson.core.JsonGenerator g, SerializerProvider provider) 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
    • serializeWithType

      public void serializeWithType(com.fasterxml.jackson.core.JsonGenerator g, SerializerProvider provider, TypeSerializer typeSer) throws IOException
      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 JsonSerializable
      Overrides:
      serializeWithType in class ValueNode
      Throws:
      IOException
    • require

      public JsonNode require()
      Description copied from class: JsonNode
      Method that may be called to verify that this node is NOT so-called "missing node": that is, one for which JsonNode.isMissingNode() returns true. If not missing node, this is returned to allow chaining; otherwise IllegalArgumentException is thrown.
      Overrides:
      require in class JsonNode
      Returns:
      this node to allow chaining
    • requireNonNull

      public JsonNode requireNonNull()
      Description copied from class: JsonNode
      Method that may be called to verify that this node is neither so-called "missing node" (that is, one for which JsonNode.isMissingNode() returns true) nor "null node" (one for which JsonNode.isNull() returns true). If non-null non-missing node, this is returned to allow chaining; otherwise IllegalArgumentException is thrown.
      Overrides:
      requireNonNull in class JsonNode
      Returns:
      this node to allow chaining
    • hashCode

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

      public String toString()
      Description copied from class: JsonNode
      Method that will produce (as of Jackson 2.10) valid JSON using default settings of databind, as String. If you want other kinds of JSON output (or output formatted using one of other Jackson-supported data formats) make sure to use ObjectMapper or ObjectWriter to serialize an instance, for example:
         String json = objectMapper.writeValueAsString(rootNode);
      

      Note: method defined as abstract to ensure all implementation classes explicitly implement method, instead of relying on Object.toString() definition.

      Overrides:
      toString in class BaseJsonNode
    • toPrettyString

      public String toPrettyString()
      Description copied from class: JsonNode
      Alternative to JsonNode.toString() that will serialize this node using Jackson default pretty-printer.
      Overrides:
      toPrettyString in class BaseJsonNode
    • 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