Module tools.jackson.databind
Package tools.jackson.databind.node
Class ContainerNode<T extends ContainerNode<T>>
java.lang.Object
tools.jackson.databind.JacksonSerializable.Base
tools.jackson.databind.JsonNode
tools.jackson.databind.node.BaseJsonNode
tools.jackson.databind.node.ContainerNode<T>
- All Implemented Interfaces:
Serializable
,Iterable<JsonNode>
,TreeNode
,JacksonSerializable
,JsonNodeCreator
- Direct Known Subclasses:
ArrayNode
,ObjectNode
public abstract class ContainerNode<T extends ContainerNode<T>>
extends BaseJsonNode
implements JsonNodeCreator
This intermediate base class is used for all container nodes,
specifically, array and object nodes.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class tools.jackson.databind.JsonNode
JsonNode.OverwriteMode
Nested classes/interfaces inherited from interface tools.jackson.databind.JacksonSerializable
JacksonSerializable.Base
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final JsonNodeFactory
We will keep a reference to the Object (usually TreeMapper) that can construct instances of nodes to add to this container node.Fields inherited from class tools.jackson.databind.node.BaseJsonNode
OPT_FALSE, OPT_TRUE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
protected
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract ObjectNode
_withObject
(JsonPointer origPtr, JsonPointer currentPtr, JsonNode.OverwriteMode overwriteMode, boolean preferIndex) final ArrayNode
Factory method that constructs and returns an emptyArrayNode
Construction is done using registeredJsonNodeFactory
.final ArrayNode
arrayNode
(int capacity) Factory method that constructs and returns anArrayNode
with an initial capacity Construction is done using registeredJsonNodeFactory
abstract JsonToken
asToken()
Method that can be used for efficient type detection when using stream abstraction for traversing nodes.final BinaryNode
binaryNode
(byte[] data) final BinaryNode
binaryNode
(byte[] data, int offset, int length) final BooleanNode
booleanNode
(boolean v) abstract JsonNode
get
(int index) Method for accessing value of the specified element of an array node.abstract JsonNode
Method for accessing value of the specified field of an object node.boolean
final NullNode
nullNode()
final NumericNode
numberNode
(byte v) final NumericNode
numberNode
(double v) final NumericNode
numberNode
(float v) final NumericNode
numberNode
(int v) final NumericNode
numberNode
(long v) final NumericNode
numberNode
(short v) final ValueNode
numberNode
(Byte v) final ValueNode
numberNode
(Double v) final ValueNode
numberNode
(Float v) final ValueNode
final ValueNode
numberNode
(Long v) final ValueNode
numberNode
(Short v) final ValueNode
final ValueNode
final ObjectNode
Factory method that constructs and returns an emptyObjectNode
Construction is done using registeredJsonNodeFactory
.final ValueNode
final ValueNode
rawValueNode
(RawValue value) Factory method to use for adding "raw values"; pre-encoded values that are included exactly as-is when node is serialized.abstract T
Method for removing all children container has (if any)abstract T
Method for removing matching those children (value) nodes container has that match given predicate.Method for removingnull
children (value) nodes container has (that is, children for whichisNull()
returns true).abstract int
size()
final StringNode
stringNode
(String text) Returns a stream of all value nodes of this Node, iff this node is anArrayNode
orObjectNode
.Methods inherited from class tools.jackson.databind.node.BaseJsonNode
_asBoolean, _asString, _jsonPointerIfValid, _reportBigDecimalCoercionNaNFail, _reportBigIntegerCoercionFractionFail, _reportBigIntegerCoercionNaNFail, _reportCoercionFail, _reportDoubleCoercionRangeFail, _reportFloatCoercionRangeFail, _reportIntCoercionFractionFail, _reportIntCoercionNaNFail, _reportIntCoercionRangeFail, _reportLongCoercionFractionFail, _reportLongCoercionNaNFail, _reportLongCoercionRangeFail, _reportShortCoercionFractionFail, _reportShortCoercionRangeFail, _reportWrongNodeType, _valueDesc, _withArray, _withXxxMayReplace, _withXxxVerifyReplace, asBigInteger, asBigInteger, asBigIntegerOpt, asBoolean, asBoolean, asBooleanOpt, asDecimal, asDecimal, asDecimalOpt, asDouble, asDouble, asDoubleOpt, asFloat, asFloat, asInt, asInt, asIntOpt, asLong, asLong, asLongOpt, asShort, asShort, asString, asString, asStringOpt, bigIntegerValue, bigIntegerValue, bigIntegerValueOpt, binaryValue, booleanValue, booleanValue, booleanValueOpt, decimalValue, decimalValue, decimalValueOpt, doubleValue, doubleValue, doubleValueOpt, findPath, floatValue, floatValue, hashCode, intValue, intValue, intValueOpt, isEmbeddedValue, isMissingNode, longValue, longValue, longValueOpt, numberType, numberValue, required, required, serialize, serializeWithType, shortValue, shortValue, stringValue, stringValue, stringValueOpt, toPrettyString, toString, traverse, withArray, withObject
Methods inherited from class tools.jackson.databind.JsonNode
_at, _reportRequiredViolation, _reportUnsupportedOperation, _this, asOptional, asText, asText, at, at, canConvertToExactIntegral, canConvertToInt, canConvertToLong, canConvertToShort, deepCopy, equals, equals, findParent, findParents, findParents, findValue, findValues, findValues, findValuesAsString, findValuesAsString, forEachEntry, getNodeType, has, has, hasNonNull, hasNonNull, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isDouble, isEmpty, isFloat, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isNull, isNumber, isObject, isPojo, isShort, isString, isTextual, isValueNode, iterator, optional, optional, path, path, properties, propertyNames, propertyStream, require, requiredAt, requiredAt, requireNonNull, spliterator, textValue, values, withArray, withArray, withArray, withArrayProperty, withObject, withObject, withObject, withObjectProperty
Methods inherited from class tools.jackson.databind.JacksonSerializable.Base
isEmpty
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface tools.jackson.databind.node.JsonNodeCreator
textNode
-
Field Details
-
_nodeFactory
We will keep a reference to the Object (usually TreeMapper) that can construct instances of nodes to add to this container node.
-
-
Constructor Details
-
ContainerNode
-
ContainerNode
protected ContainerNode()
-
-
Method Details
-
isContainer
public boolean isContainer()- Specified by:
isContainer
in interfaceTreeNode
- Overrides:
isContainer
in classJsonNode
-
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 firstJsonToken
that equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)- Specified by:
asToken
in interfaceTreeNode
- Specified by:
asToken
in classBaseJsonNode
-
size
public abstract int size() -
get
Description copied from class:JsonNode
Method for accessing value of the specified element of an array node. For other nodes, null is always returned.For array nodes, index specifies exact location within array and allows for efficient iteration over child elements (underlying storage is guaranteed to be efficiently indexable, i.e. has random-access to elements). If index is less than 0, or equal-or-greater than
node.size()
, null is returned; no exception is thrown for any index.NOTE: if the element value has been explicitly set as
null
(which is different from removal!), aNullNode
will be returned, not null. -
get
Description copied from class:JsonNode
Method for accessing value of the specified field of an object node. If this node is not an object (or it does not have a value for specified field name), or if there is no field with such name, null is returned.NOTE: if the property value has been explicitly set as
null
(which is different from removal!), aNullNode
will be returned, not null. -
valueStream
Description copied from class:JsonNode
Returns a stream of all value nodes of this Node, iff this node is anArrayNode
orObjectNode
. In case ofObject
node, property names (keys) are not included, only values. For other types of nodes, returns empty stream.- Overrides:
valueStream
in classJsonNode
-
_withObject
protected abstract ObjectNode _withObject(JsonPointer origPtr, JsonPointer currentPtr, JsonNode.OverwriteMode overwriteMode, boolean preferIndex) - Overrides:
_withObject
in classBaseJsonNode
-
booleanNode
- Specified by:
booleanNode
in interfaceJsonNodeCreator
-
missingNode
- Specified by:
missingNode
in interfaceJsonNodeCreator
-
nullNode
- Specified by:
nullNode
in interfaceJsonNodeCreator
-
arrayNode
Factory method that constructs and returns an emptyArrayNode
Construction is done using registeredJsonNodeFactory
.- Specified by:
arrayNode
in interfaceJsonNodeCreator
-
arrayNode
Factory method that constructs and returns anArrayNode
with an initial capacity Construction is done using registeredJsonNodeFactory
- Specified by:
arrayNode
in interfaceJsonNodeCreator
- Parameters:
capacity
- the initial capacity of the ArrayNode
-
objectNode
Factory method that constructs and returns an emptyObjectNode
Construction is done using registeredJsonNodeFactory
.- Specified by:
objectNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
numberNode
- Specified by:
numberNode
in interfaceJsonNodeCreator
-
stringNode
- Specified by:
stringNode
in interfaceJsonNodeCreator
-
binaryNode
- Specified by:
binaryNode
in interfaceJsonNodeCreator
-
binaryNode
- Specified by:
binaryNode
in interfaceJsonNodeCreator
-
pojoNode
- Specified by:
pojoNode
in interfaceJsonNodeCreator
-
rawValueNode
Description copied from interface:JsonNodeCreator
Factory method to use for adding "raw values"; pre-encoded values that are included exactly as-is when node is serialized. This may be used, for example, to include fully serialized JSON sub-trees. Note that the concept may not work with all backends, and since no translation of any kinds is done it will not work when converting between data formats.- Specified by:
rawValueNode
in interfaceJsonNodeCreator
-
removeAll
Method for removing all children container has (if any)- Returns:
- Container node itself (to allow method call chaining)
-
removeIf
Method for removing matching those children (value) nodes container has that match given predicate.- Parameters:
predicate
- Predicate to use for matching: anything matching will be removed- Returns:
- Container node itself (to allow method call chaining)
- Since:
- 2.19
-
removeNulls
Method for removingnull
children (value) nodes container has (that is, children for whichisNull()
returns true). Short-cut for:removeIf(JsonNode::isNull);
- Returns:
- Container node itself (to allow method call chaining)
- Since:
- 2.19
-