Skip to content

Commit 57ac5b9

Browse files
author
Bebendorf, Jan
committed
Fixed equals methods and upgraded dependencies
1 parent 9b6bb4c commit 57ac5b9

File tree

4 files changed

+36
-45
lines changed

4 files changed

+36
-45
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@
4444
<dependency>
4545
<groupId>org.yaml</groupId>
4646
<artifactId>snakeyaml</artifactId>
47-
<version>1.30</version>
47+
<version>1.33</version>
4848
</dependency>
4949
<dependency>
5050
<groupId>org.mongodb</groupId>
5151
<artifactId>bson</artifactId>
52-
<version>4.6.0</version>
52+
<version>4.7.1</version>
5353
<optional>true</optional>
5454
</dependency>
5555
</dependencies>

src/main/java/org/javawebstack/abstractdata/AbstractArray.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -346,23 +346,21 @@ public AbstractElement clone() {
346346
public boolean equals(Object obj, boolean strict) {
347347
if (obj == null)
348348
return false;
349-
if (!(obj instanceof AbstractArray)) {
350-
if (strict)
349+
if (!(obj instanceof AbstractElement))
350+
return false;
351+
try {
352+
AbstractArray arr = ((AbstractElement) obj).array(strict);
353+
if (arr.size() != arr.size())
351354
return false;
352355

353-
obj = AbstractElement.fromAbstractObject(obj).array();
354-
}
355-
356-
AbstractArray arr = (AbstractArray) obj;
357-
if (arr.size() != arr.size())
356+
for (int i = 0; i < size(); i++) {
357+
if (!(get(i).equals(arr.get(i), strict)))
358+
return false;
359+
}
360+
return true;
361+
} catch (AbstractCoercingException ignored) {
358362
return false;
359-
360-
for (int i = 0; i < size(); i++) {
361-
if (!(get(i).equals(arr.get(i), strict)))
362-
return false;
363363
}
364-
365-
return true;
366364
}
367365

368366
public boolean equals (Object obj) {

src/main/java/org/javawebstack/abstractdata/AbstractObject.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -270,25 +270,22 @@ public AbstractElement clone() {
270270
public boolean equals(Object obj, boolean strict) {
271271
if (obj == null)
272272
return false;
273-
if (!(obj instanceof AbstractObject)) {
274-
if (strict)
275-
return false;
276-
277-
obj = AbstractElement.fromAbstractObject(obj).object();
278-
}
279-
280-
AbstractObject object = (AbstractObject) obj;
281-
if (size() != object.size())
273+
if (!(obj instanceof AbstractElement))
282274
return false;
283-
284-
for (String key : keys()) {
285-
if (!object.has(key))
286-
return false;
287-
if (!object.get(key).equals(get(key), strict))
275+
try {
276+
AbstractObject object = ((AbstractElement) obj).object(strict);
277+
if (size() != object.size())
288278
return false;
279+
for (String key : keys()) {
280+
if (!object.has(key))
281+
return false;
282+
if (!object.get(key).equals(get(key), strict))
283+
return false;
284+
}
285+
return true;
286+
} catch (AbstractCoercingException ignored) {
287+
return false;
289288
}
290-
291-
return true;
292289
}
293290

294291
public boolean equals (Object obj) {

src/main/java/org/javawebstack/abstractdata/AbstractPrimitive.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -178,21 +178,17 @@ public AbstractElement clone() {
178178
public boolean equals(Object obj, boolean strict) {
179179
if (obj == null)
180180
return false;
181-
if (!(obj instanceof AbstractPrimitive)) {
182-
if (strict)
183-
return false;
184-
185-
obj = AbstractElement.fromAbstractObject(obj).primitive();
186-
}
187-
181+
if (!(obj instanceof AbstractPrimitive))
182+
return false;
188183
AbstractPrimitive primitive = (AbstractPrimitive) obj;
189-
if (isBoolean() && primitive.isBoolean())
190-
return bool(strict).equals(primitive.bool(strict));
191-
if (isNumber() && primitive.isNumber())
192-
return number(strict).equals(primitive.number(strict));
193-
if (isString() && primitive.isString())
194-
return string(strict).equals(primitive.string(strict));
195-
184+
try {
185+
if(isBoolean())
186+
return bool() == primitive.bool(strict);
187+
if(isNumber())
188+
return number().equals(primitive.number(strict));
189+
if(isString())
190+
return string().equals(primitive.string(strict));
191+
} catch (AbstractCoercingException ignored) {}
196192
return false;
197193
}
198194

0 commit comments

Comments
 (0)