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.SerializerProvider;
7
8
9
14 public class BooleanNode
15 extends ValueNode
16 {
17 private static final long serialVersionUID = 2L;
18
19
20
21 public final static BooleanNode TRUE = new BooleanNode(true);
22 public final static BooleanNode FALSE = new BooleanNode(false);
23
24 private final boolean _value;
25
26
30 protected BooleanNode(boolean v) { _value = v; }
31
32
33 protected Object readResolve() {
34 return _value ? TRUE : FALSE;
35 }
36
37 public static BooleanNode getTrue() { return TRUE; }
38 public static BooleanNode getFalse() { return FALSE; }
39
40 public static BooleanNode valueOf(boolean b) { return b ? TRUE : FALSE; }
41
42 @Override
43 public JsonNodeType getNodeType() {
44 return JsonNodeType.BOOLEAN;
45 }
46
47 @Override public JsonToken asToken() {
48 return _value ? JsonToken.VALUE_TRUE : JsonToken.VALUE_FALSE;
49 }
50
51 @Override
52 public boolean booleanValue() {
53 return _value;
54 }
55
56 @Override
57 public String asText() {
58 return _value ? "true" : "false";
59 }
60
61 @Override
62 public boolean asBoolean() {
63 return _value;
64 }
65
66 @Override
67 public boolean asBoolean(boolean defaultValue) {
68 return _value;
69 }
70
71 @Override
72 public int asInt(int defaultValue) {
73 return _value ? 1 : 0;
74 }
75 @Override
76 public long asLong(long defaultValue) {
77 return _value ? 1L : 0L;
78 }
79 @Override
80 public double asDouble(double defaultValue) {
81 return _value ? 1.0 : 0.0;
82 }
83
84 @Override
85 public final void serialize(JsonGenerator g, SerializerProvider provider) throws IOException {
86 g.writeBoolean(_value);
87 }
88
89 @Override
90 public int hashCode() {
91 return _value ? 3 : 1;
92 }
93
94 @Override
95 public boolean equals(Object o)
96 {
97
101 if (o == this) return true;
102 if (o == null) return false;
103 if (!(o instanceof BooleanNode)) {
104 return false;
105 }
106 return (_value == ((BooleanNode) o)._value);
107 }
108 }
109