org.codehaus.jackson.node
Class MissingNode

java.lang.Object
  extended by org.codehaus.jackson.JsonNode
      extended by org.codehaus.jackson.node.BaseJsonNode
          extended by org.codehaus.jackson.node.MissingNode
All Implemented Interfaces:
Iterable<JsonNode>, JsonSerializable, JsonSerializableWithType

public final class MissingNode
extends BaseJsonNode

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.


Field Summary
 
Fields inherited from class org.codehaus.jackson.JsonNode
NO_NODES, NO_STRINGS
 
Method Summary
 double asDouble(double defaultValue)
          Method that will try to convert value of this node to a Java double.
 int asInt(int defaultValue)
          Method that will try to convert value of this node to a Java int.
 long asLong(long defaultValue)
          Method that will try to convert value of this node to a Java long.
 String asText()
          Method that will return valid String representation of the container value, if the node is a value node (method JsonNode.isValueNode() returns true), otherwise empty String.
 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.
static MissingNode getInstance()
           
 boolean isMissingNode()
          Method that returns true for "virtual" nodes which represent missing entries constructed by path accessor methods when there is no actual node matching given criteria.
 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 serialize(JsonGenerator jg, SerializerProvider provider)
          Method called to serialize node instances using given generator.
 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, traverse
 
Methods inherited from class org.codehaus.jackson.JsonNode
asBoolean, asBoolean, asDouble, asInt, asLong, 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, isNull, isNumber, isObject, isPojo, isTextual, isValueNode, iterator, size, with
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getInstance

public static MissingNode getInstance()

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 BaseJsonNode

isMissingNode

public boolean isMissingNode()
Description copied from class: JsonNode
Method that returns true for "virtual" nodes which represent missing entries constructed by path accessor methods when there is no actual node matching given criteria.

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

Overrides:
isMissingNode in class JsonNode

asText

public String asText()
Description copied from class: JsonNode
Method that will return 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

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 can not 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 can not be converted to an 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 can not 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

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

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

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

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

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