Skip to content

Commit 50f13de

Browse files
committed
Added option to use strict mode
1 parent f124d1d commit 50f13de

File tree

5 files changed

+27
-9
lines changed

5 files changed

+27
-9
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ public AbstractElement clone() {
343343
return new AbstractArrayCollector<>(e -> e);
344344
}
345345

346-
public boolean equals(Object obj) {
346+
public boolean equals(Object obj, boolean strict) {
347347
if (obj == null)
348348
return false;
349349
if (!(obj instanceof AbstractArray))
@@ -353,13 +353,17 @@ public boolean equals(Object obj) {
353353
return false;
354354

355355
for (int i = 0; i < size(); i++) {
356-
if (!(get(i).equals(arr.get(i))))
356+
if (!(get(i).equals(arr.get(i), strict)))
357357
return false;
358358
}
359359

360360
return true;
361361
}
362362

363+
public boolean equals (Object obj) {
364+
return equals(obj, false);
365+
}
366+
363367
public AbstractArray addAll(AbstractArray array) {
364368
elements.addAll(array.elements);
365369
return this;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,4 +245,6 @@ public boolean isPrimitive() {
245245
return this == NUMBER || this == BOOLEAN || this == STRING;
246246
}
247247
}
248+
249+
boolean equals(Object obj, boolean strict);
248250
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ public Type getType() {
5656
return Type.NULL;
5757
}
5858

59-
public boolean equals(Object obj) {
59+
public boolean equals(Object obj, boolean strict) {
6060
return obj == null || obj instanceof AbstractNull;
6161
}
62+
63+
public boolean equals (Object obj) {
64+
return equals(obj, false);
65+
}
6266
}

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ public AbstractElement clone() {
267267
return new AbstractObjectCollector<>(keyFunction, valueFunction);
268268
}
269269

270-
public boolean equals(Object obj) {
270+
public boolean equals(Object obj, boolean strict) {
271271
if (obj == null)
272272
return false;
273273
if (!(obj instanceof AbstractObject))
@@ -279,10 +279,14 @@ public boolean equals(Object obj) {
279279
for (String key : keys()) {
280280
if (!object.has(key))
281281
return false;
282-
if (!object.get(key).equals(get(key)))
282+
if (!object.get(key).equals(get(key), strict))
283283
return false;
284284
}
285285

286286
return true;
287287
}
288+
289+
public boolean equals (Object obj) {
290+
return equals(obj, false);
291+
}
288292
}

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,20 +175,24 @@ public AbstractElement clone() {
175175
return from(value);
176176
}
177177

178-
public boolean equals(Object obj) {
178+
public boolean equals(Object obj, boolean strict) {
179179
if (obj == null)
180180
return false;
181181
if (!(obj instanceof AbstractPrimitive))
182182
return false;
183183

184184
AbstractPrimitive primitive = (AbstractPrimitive) obj;
185185
if (isBoolean() && primitive.isBoolean())
186-
return bool().equals(primitive.bool());
186+
return bool(strict).equals(primitive.bool(strict));
187187
if (isNumber() && primitive.isNumber())
188-
return number().equals(primitive.number());
188+
return number(strict).equals(primitive.number(strict));
189189
if (isString() && primitive.isString())
190-
return string().equals(primitive.string());
190+
return string(strict).equals(primitive.string(strict));
191191

192192
return false;
193193
}
194+
195+
public boolean equals (Object obj) {
196+
return equals(obj, false);
197+
}
194198
}

0 commit comments

Comments
 (0)