Skip to content

Commit 37f3e7e

Browse files
authored
Merge pull request #85 from MikeDombo/eq
Implement equals for Jrs types
2 parents cc00db8 + 6b14328 commit 37f3e7e

File tree

6 files changed

+123
-4
lines changed

6 files changed

+123
-4
lines changed

jr-stree/src/main/java/com/fasterxml/jackson/jr/stree/JrsArray.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public Iterator<JrsValue> elements() {
8383
return _values.iterator();
8484
}
8585
// ensure caller can not modify values this way
86-
return Collections.unmodifiableList(_values).iterator();
86+
return Collections.unmodifiableList(_values).iterator();
8787
}
8888

8989
/*
@@ -101,4 +101,23 @@ protected void write(JsonGenerator g, JacksonJrsTreeCodec codec) throws IOExcept
101101
}
102102
g.writeEndArray();
103103
}
104+
105+
@Override
106+
public boolean equals(Object o) {
107+
if (this == o) {
108+
return true;
109+
}
110+
if (o == null || getClass() != o.getClass()) {
111+
return false;
112+
}
113+
114+
JrsArray jrsArray = (JrsArray) o;
115+
116+
return _values != null ? _values.equals(jrsArray._values) : jrsArray._values == null;
117+
}
118+
119+
@Override
120+
public int hashCode() {
121+
return _values != null ? _values.hashCode() : 0;
122+
}
104123
}

jr-stree/src/main/java/com/fasterxml/jackson/jr/stree/JrsBoolean.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,23 @@ public boolean booleanValue() {
4848
protected void write(JsonGenerator g, JacksonJrsTreeCodec codec) throws IOException {
4949
g.writeBoolean(_value);
5050
}
51+
52+
@Override
53+
public boolean equals(Object o) {
54+
if (this == o) {
55+
return true;
56+
}
57+
if (o == null || getClass() != o.getClass()) {
58+
return false;
59+
}
60+
61+
JrsBoolean that = (JrsBoolean) o;
62+
63+
return _value == that._value;
64+
}
65+
66+
@Override
67+
public int hashCode() {
68+
return (_value ? 1 : 0);
69+
}
5170
}

jr-stree/src/main/java/com/fasterxml/jackson/jr/stree/JrsEmbeddedObject.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,23 @@ protected void write(JsonGenerator g, JacksonJrsTreeCodec codec) throws IOExcept
5959
g.writeObject(_value);
6060
}
6161
}
62+
63+
@Override
64+
public boolean equals(Object o) {
65+
if (this == o) {
66+
return true;
67+
}
68+
if (o == null || getClass() != o.getClass()) {
69+
return false;
70+
}
71+
72+
JrsEmbeddedObject that = (JrsEmbeddedObject) o;
73+
74+
return _value != null ? _value.equals(that._value) : that._value == null;
75+
}
76+
77+
@Override
78+
public int hashCode() {
79+
return _value != null ? _value.hashCode() : 0;
80+
}
6281
}

jr-stree/src/main/java/com/fasterxml/jackson/jr/stree/JrsNumber.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public JsonToken asToken() {
7171
public String asText() {
7272
return String.valueOf(_value);
7373
}
74-
74+
7575
@Override
7676
public JsonParser.NumberType numberType() {
7777
return _numberType;
@@ -82,7 +82,7 @@ public JsonParser.NumberType numberType() {
8282
/* Extended API
8383
/**********************************************************************
8484
*/
85-
85+
8686
public BigInteger asBigInteger() throws IOException {
8787
if (_value instanceof BigInteger) {
8888
return (BigInteger) _value;
@@ -138,4 +138,28 @@ protected void write(JsonGenerator g, JacksonJrsTreeCodec codec) throws IOExcept
138138
break;
139139
}
140140
}
141+
142+
@Override
143+
public boolean equals(Object o) {
144+
if (this == o) {
145+
return true;
146+
}
147+
if (o == null || getClass() != o.getClass()) {
148+
return false;
149+
}
150+
151+
JrsNumber jrsNumber = (JrsNumber) o;
152+
153+
if (_value != null ? !_value.equals(jrsNumber._value) : jrsNumber._value != null) {
154+
return false;
155+
}
156+
return _numberType == jrsNumber._numberType;
157+
}
158+
159+
@Override
160+
public int hashCode() {
161+
int result = _value != null ? _value.hashCode() : 0;
162+
result = 31 * result + (_numberType != null ? _numberType.hashCode() : 0);
163+
return result;
164+
}
141165
}

jr-stree/src/main/java/com/fasterxml/jackson/jr/stree/JrsObject.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public Iterator<String> fieldNames()
5656
public JrsValue get(int i) {
5757
return null;
5858
}
59-
59+
6060
@Override
6161
public JrsValue get(String name) {
6262
return _values.get(name);
@@ -111,4 +111,23 @@ protected void write(JsonGenerator g, JacksonJrsTreeCodec codec) throws IOExcept
111111
}
112112
g.writeEndObject();
113113
}
114+
115+
@Override
116+
public boolean equals(Object o) {
117+
if (this == o) {
118+
return true;
119+
}
120+
if (o == null || getClass() != o.getClass()) {
121+
return false;
122+
}
123+
124+
JrsObject jrsObject = (JrsObject) o;
125+
126+
return _values != null ? _values.equals(jrsObject._values) : jrsObject._values == null;
127+
}
128+
129+
@Override
130+
public int hashCode() {
131+
return _values != null ? _values.hashCode() : 0;
132+
}
114133
}

jr-stree/src/main/java/com/fasterxml/jackson/jr/stree/JrsString.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,23 @@ public String asText() {
4242
protected void write(JsonGenerator g, JacksonJrsTreeCodec codec) throws IOException {
4343
g.writeString(_value);
4444
}
45+
46+
@Override
47+
public boolean equals(Object o) {
48+
if (this == o) {
49+
return true;
50+
}
51+
if (o == null || getClass() != o.getClass()) {
52+
return false;
53+
}
54+
55+
JrsString jrsString = (JrsString) o;
56+
57+
return _value.equals(jrsString._value);
58+
}
59+
60+
@Override
61+
public int hashCode() {
62+
return _value.hashCode();
63+
}
4564
}

0 commit comments

Comments
 (0)