Skip to content

Commit 8d846ae

Browse files
committed
Fix #2223
1 parent 0ca6c28 commit 8d846ae

File tree

5 files changed

+28
-8
lines changed

5 files changed

+28
-8
lines changed

release-notes/VERSION-2.x

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Project: jackson-databind
2121
#2204: Add `JsonNode.isEmpty()` as convenience alias
2222
#2217: Suboptimal memory allocation in `TextNode.getBinaryValue()`
2323
(reported by Christoph B)
24+
#2223: Add `missingNode()` method in `JsonNodeFactory`
2425

2526
2.9.8 (15-Dec-2018)
2627

src/main/java/com/fasterxml/jackson/databind/node/ContainerNode.java

+17-8
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,26 @@ protected ContainerNode(JsonNodeFactory nc) {
5252

5353
/*
5454
/**********************************************************
55-
/* JsonNodeCreator implementation, just dispatch to
56-
/* the real creator
55+
/* JsonNodeCreator implementation, Enumerated/singleton types
5756
/**********************************************************
5857
*/
5958

59+
@Override
60+
public final BooleanNode booleanNode(boolean v) { return _nodeFactory.booleanNode(v); }
61+
62+
public JsonNode missingNode() {
63+
return _nodeFactory.missingNode();
64+
}
65+
66+
@Override
67+
public final NullNode nullNode() { return _nodeFactory.nullNode(); }
68+
69+
/*
70+
/**********************************************************
71+
/* JsonNodeCreator implementation, just dispatch to real creator
72+
/**********************************************************
73+
*/
74+
6075
/**
6176
* Factory method that constructs and returns an empty {@link ArrayNode}
6277
* Construction is done using registered {@link JsonNodeFactory}.
@@ -79,12 +94,6 @@ protected ContainerNode(JsonNodeFactory nc) {
7994
@Override
8095
public final ObjectNode objectNode() { return _nodeFactory.objectNode(); }
8196

82-
@Override
83-
public final NullNode nullNode() { return _nodeFactory.nullNode(); }
84-
85-
@Override
86-
public final BooleanNode booleanNode(boolean v) { return _nodeFactory.booleanNode(v); }
87-
8897
@Override
8998
public final NumericNode numberNode(byte v) { return _nodeFactory.numberNode(v); }
9099
@Override

src/main/java/com/fasterxml/jackson/databind/node/JsonNodeCreator.java

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ public interface JsonNodeCreator
1919
public ValueNode booleanNode(boolean v);
2020
public ValueNode nullNode();
2121

22+
// Not yet in 2.10, will be added in 3.0
23+
// public JsonNode missingNode();
24+
2225
// Numeric types
2326

2427
public ValueNode numberNode(byte v);

src/main/java/com/fasterxml/jackson/databind/node/JsonNodeFactory.java

+5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.math.BigDecimal;
44
import java.math.BigInteger;
55

6+
import com.fasterxml.jackson.databind.JsonNode;
67
import com.fasterxml.jackson.databind.util.RawValue;
78

89
/**
@@ -108,6 +109,10 @@ public BooleanNode booleanNode(boolean v) {
108109
@Override
109110
public NullNode nullNode() { return NullNode.getInstance(); }
110111

112+
public JsonNode missingNode() {
113+
return MissingNode.getInstance();
114+
}
115+
111116
/*
112117
/**********************************************************
113118
/* Factory methods for numeric values

src/test/java/com/fasterxml/jackson/databind/node/JsonNodeFactoryTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,7 @@ public void testSimpleCreation()
3333
assertTrue(f.numberNode((BigDecimal) null).isNull());
3434

3535
assertTrue(f.numberNode((BigInteger) null).isNull());
36+
37+
assertTrue(f.missingNode().isMissingNode());
3638
}
3739
}

0 commit comments

Comments
 (0)