1 package com.fasterxml.jackson.databind.node;
2
3 import java.io.IOException;
4
5 import com.fasterxml.jackson.core.*;
6 import com.fasterxml.jackson.databind.JsonNode;
7 import com.fasterxml.jackson.databind.SerializerProvider;
8
9
10
14 public class NullNode
15 extends ValueNode
16 {
17
18
19 private static final long serialVersionUID = 1L;
20
21 public final static NullNode instance = new NullNode();
22
23
27 protected NullNode() { }
28
29
30 protected Object readResolve() {
31 return instance;
32 }
33
34 public static NullNode getInstance() { return instance; }
35
36 @Override
37 public JsonNodeType getNodeType() {
38 return JsonNodeType.NULL;
39 }
40
41 @Override public JsonToken asToken() { return JsonToken.VALUE_NULL; }
42
43 @Override public String asText(String defaultValue) { return defaultValue; }
44 @Override public String asText() { return "null"; }
45
46 @SuppressWarnings("unchecked")
47 @Override
48 public JsonNode requireNonNull() {
49 return _reportRequiredViolation("requireNonNull() called on `NullNode`");
50 }
51
52
53
54
60
61 @Override
62 public final void serialize(JsonGenerator g, SerializerProvider provider)
63 throws IOException
64 {
65 provider.defaultSerializeNull(g);
66 }
67
68 @Override
69 public boolean equals(Object o) {
70
71
72 return (o == this) || (o instanceof NullNode);
73 }
74
75 @Override
76 public int hashCode() {
77 return JsonNodeType.NULL.ordinal();
78 }
79 }
80