Skip to content

Commit a43d23d

Browse files
committed
Fix #1799
1 parent e467b7e commit a43d23d

File tree

7 files changed

+38
-10
lines changed

7 files changed

+38
-10
lines changed

release-notes/VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Project: jackson-databind
66
2.9.3 (not yet released)
77

88
#1604: Nested type arguments doesn't work with polymorphic types
9+
#1799: Allow creation of custom sub-types of `NullNode`, `BooleanNode`, `MissingNode`
910
#1804: `ValueInstantiator.canInstantiate()` ignores `canCreateUsingArrayDelegate()`
1011
(reported byb henryptung@github)
1112

src/main/java/com/fasterxml/jackson/databind/JsonNode.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,18 +99,18 @@ public final boolean isContainerNode() {
9999
}
100100

101101
@Override
102-
public final boolean isMissingNode() {
103-
return getNodeType() == JsonNodeType.MISSING;
102+
public boolean isMissingNode() {
103+
return false;
104104
}
105105

106106
@Override
107-
public final boolean isArray() {
108-
return getNodeType() == JsonNodeType.ARRAY;
107+
public boolean isArray() {
108+
return false;
109109
}
110110

111111
@Override
112-
public final boolean isObject() {
113-
return getNodeType() == JsonNodeType.OBJECT;
112+
public boolean isObject() {
113+
return false;
114114
}
115115

116116
/**

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ public JsonNodeType getNodeType() {
8787
return JsonNodeType.ARRAY;
8888
}
8989

90+
@Override
91+
public boolean isArray() {
92+
return true;
93+
}
94+
9095
@Override public JsonToken asToken() { return JsonToken.START_ARRAY; }
9196

9297
@Override

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@ public class BooleanNode
2020
public final static BooleanNode FALSE = new BooleanNode(false);
2121

2222
private final boolean _value;
23-
24-
private BooleanNode(boolean v) { _value = v; }
23+
24+
/**
25+
*<p>
26+
* NOTE: visibility raised to `protected` in 2.9.3 to allow custom subtypes.
27+
*/
28+
protected BooleanNode(boolean v) { _value = v; }
2529

2630
public static BooleanNode getTrue() { return TRUE; }
2731
public static BooleanNode getFalse() { return FALSE; }

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,16 @@ public final class MissingNode
2424
{
2525
private final static MissingNode instance = new MissingNode();
2626

27-
private MissingNode() { }
27+
/**
28+
*<p>
29+
* NOTE: visibility raised to `protected` in 2.9.3 to allow custom subtypes.
30+
*/
31+
protected MissingNode() { }
32+
33+
@Override
34+
public boolean isMissingNode() {
35+
return true;
36+
}
2837

2938
// Immutable: no need to copy
3039
@SuppressWarnings("unchecked")

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ public final class NullNode
1717

1818
public final static NullNode instance = new NullNode();
1919

20-
private NullNode() { }
20+
/**
21+
*<p>
22+
* NOTE: visibility raised to `protected` in 2.9.3 to allow custom subtypes.
23+
*/
24+
protected NullNode() { }
2125

2226
public static NullNode getInstance() { return instance; }
2327

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ public JsonNodeType getNodeType() {
7878
return JsonNodeType.OBJECT;
7979
}
8080

81+
@Override
82+
public final boolean isObject() {
83+
return true;
84+
}
85+
8186
@Override public JsonToken asToken() { return JsonToken.START_OBJECT; }
8287

8388
@Override

0 commit comments

Comments
 (0)