Skip to content

Commit 26e02a6

Browse files
committed
Implemented equals methods
1 parent a344c2d commit 26e02a6

File tree

5 files changed

+54
-1
lines changed

5 files changed

+54
-1
lines changed

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

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

346+
public boolean equals(Object obj) {
347+
if (obj == null)
348+
return false;
349+
if (!(obj instanceof AbstractArray))
350+
return false;
351+
AbstractArray arr = (AbstractArray) obj;
352+
if (arr.size() != arr.size())
353+
return false;
354+
355+
for (int i = 0; i < size(); i++) {
356+
if (!(get(i).equals(arr.get(i))))
357+
return false;
358+
}
359+
360+
return true;
361+
}
346362
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,5 +245,4 @@ public boolean isPrimitive() {
245245
return this == NUMBER || this == BOOLEAN || this == STRING;
246246
}
247247
}
248-
249248
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,8 @@ public AbstractElement clone() {
5555
public Type getType() {
5656
return Type.NULL;
5757
}
58+
59+
public boolean equals(Object obj) {
60+
return obj == null || obj instanceof AbstractNull;
61+
}
5862
}

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

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

270+
public boolean equals(Object obj) {
271+
if (obj == null)
272+
return false;
273+
if (!(obj instanceof AbstractObject))
274+
return false;
275+
AbstractObject object = (AbstractObject) obj;
276+
if (size() != object.size())
277+
return false;
278+
279+
for (String key : keys()) {
280+
if (!object.has(key))
281+
return false;
282+
if (!object.get(key).equals(get(key)))
283+
return false;
284+
}
285+
286+
return true;
287+
}
270288
}

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

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

178+
public boolean equals(Object obj) {
179+
if (obj == null)
180+
return false;
181+
if (!(obj instanceof AbstractPrimitive))
182+
return false;
183+
184+
AbstractPrimitive primitive = (AbstractPrimitive) obj;
185+
if (isBoolean() && primitive.isBoolean())
186+
return bool().equals(primitive.bool());
187+
if (isNumber() && primitive.isNumber())
188+
return number().equals(primitive.number());
189+
if (isString() && primitive.isString())
190+
return string().equals(primitive.string());
191+
192+
return false;
193+
}
178194
}

0 commit comments

Comments
 (0)