Skip to content

Commit 9b6bb4c

Browse files
committed
Added code to respect strict setting
1 parent 50f13de commit 9b6bb4c

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,13 @@ public AbstractElement clone() {
346346
public boolean equals(Object obj, boolean strict) {
347347
if (obj == null)
348348
return false;
349-
if (!(obj instanceof AbstractArray))
350-
return false;
349+
if (!(obj instanceof AbstractArray)) {
350+
if (strict)
351+
return false;
352+
353+
obj = AbstractElement.fromAbstractObject(obj).array();
354+
}
355+
351356
AbstractArray arr = (AbstractArray) obj;
352357
if (arr.size() != arr.size())
353358
return false;
@@ -373,7 +378,7 @@ public AbstractArray concat(AbstractArray... array) {
373378
AbstractArray newArr = new AbstractArray();
374379
newArr.addAll(this);
375380
for (AbstractArray arr : array)
376-
newArr.add(arr);
381+
newArr.addAll(arr);
377382

378383
return newArr;
379384
}

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,13 @@ public AbstractElement clone() {
270270
public boolean equals(Object obj, boolean strict) {
271271
if (obj == null)
272272
return false;
273-
if (!(obj instanceof AbstractObject))
274-
return false;
273+
if (!(obj instanceof AbstractObject)) {
274+
if (strict)
275+
return false;
276+
277+
obj = AbstractElement.fromAbstractObject(obj).object();
278+
}
279+
275280
AbstractObject object = (AbstractObject) obj;
276281
if (size() != object.size())
277282
return false;

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,12 @@ public AbstractElement clone() {
178178
public boolean equals(Object obj, boolean strict) {
179179
if (obj == null)
180180
return false;
181-
if (!(obj instanceof AbstractPrimitive))
182-
return false;
181+
if (!(obj instanceof AbstractPrimitive)) {
182+
if (strict)
183+
return false;
184+
185+
obj = AbstractElement.fromAbstractObject(obj).primitive();
186+
}
183187

184188
AbstractPrimitive primitive = (AbstractPrimitive) obj;
185189
if (isBoolean() && primitive.isBoolean())

0 commit comments

Comments
 (0)