Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions src/main/java/org/javawebstack/abstractdata/AbstractArray.java
Original file line number Diff line number Diff line change
Expand Up @@ -343,4 +343,38 @@ public AbstractElement clone() {
return new AbstractArrayCollector<>(e -> e);
}

public boolean equals(Object obj, boolean strict) {
if (obj == null)
return false;
if (!(obj instanceof AbstractArray))
Comment thread
x7airworker marked this conversation as resolved.
Resolved
return false;
AbstractArray arr = (AbstractArray) obj;
if (arr.size() != arr.size())
return false;

for (int i = 0; i < size(); i++) {
if (!(get(i).equals(arr.get(i), strict)))
return false;
}

return true;
}

public boolean equals (Object obj) {
return equals(obj, false);
}

public AbstractArray addAll(AbstractArray array) {
elements.addAll(array.elements);
return this;
}

public AbstractArray concat(AbstractArray... array) {
AbstractArray newArr = new AbstractArray();
newArr.addAll(this);
for (AbstractArray arr : array)
newArr.add(arr);
Comment thread
x7airworker marked this conversation as resolved.
Resolved

return newArr;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -246,4 +246,5 @@ public boolean isPrimitive() {
}
}

boolean equals(Object obj, boolean strict);
}
8 changes: 8 additions & 0 deletions src/main/java/org/javawebstack/abstractdata/AbstractNull.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,12 @@ public AbstractElement clone() {
public Type getType() {
return Type.NULL;
}

public boolean equals(Object obj, boolean strict) {
return obj == null || obj instanceof AbstractNull;
}

public boolean equals (Object obj) {
return equals(obj, false);
}
}
22 changes: 22 additions & 0 deletions src/main/java/org/javawebstack/abstractdata/AbstractObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -267,4 +267,26 @@ public AbstractElement clone() {
return new AbstractObjectCollector<>(keyFunction, valueFunction);
}

public boolean equals(Object obj, boolean strict) {
if (obj == null)
return false;
if (!(obj instanceof AbstractObject))
Comment thread
x7airworker marked this conversation as resolved.
Resolved
return false;
AbstractObject object = (AbstractObject) obj;
if (size() != object.size())
return false;

for (String key : keys()) {
if (!object.has(key))
return false;
if (!object.get(key).equals(get(key), strict))
return false;
}

return true;
}

public boolean equals (Object obj) {
return equals(obj, false);
}
}
20 changes: 20 additions & 0 deletions src/main/java/org/javawebstack/abstractdata/AbstractPrimitive.java
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,24 @@ public AbstractElement clone() {
return from(value);
}

public boolean equals(Object obj, boolean strict) {
if (obj == null)
return false;
if (!(obj instanceof AbstractPrimitive))
return false;

AbstractPrimitive primitive = (AbstractPrimitive) obj;
if (isBoolean() && primitive.isBoolean())
Comment thread
x7airworker marked this conversation as resolved.
Resolved
return bool(strict).equals(primitive.bool(strict));
if (isNumber() && primitive.isNumber())
return number(strict).equals(primitive.number(strict));
if (isString() && primitive.isString())
return string(strict).equals(primitive.string(strict));

return false;
}

public boolean equals (Object obj) {
return equals(obj, false);
}
}