Skip to content

Commit 858625f

Browse files
authored
Merge pull request #27 from JavaWebStack/dev
Release 1.0.5
2 parents e6d897b + c4e3934 commit 858625f

File tree

11 files changed

+309
-121
lines changed

11 files changed

+309
-121
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ You can find the current docs on our [website](https://docs.javawebstack.org/fra
2222
<dependency>
2323
<groupId>org.javawebstack</groupId>
2424
<artifactId>abstract-data</artifactId>
25-
<version>1.0.4</version>
25+
<version>1.0.5</version>
2626
</dependency>
2727
```

pom.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<properties>
88
<maven.compiler.source>8</maven.compiler.source>
99
<maven.compiler.target>8</maven.compiler.target>
10-
<buildVersion>1.0.4-SNAPSHOT</buildVersion>
10+
<buildVersion>1.0.5-SNAPSHOT</buildVersion>
1111
</properties>
1212

1313
<groupId>org.javawebstack</groupId>
@@ -44,14 +44,20 @@
4444
<dependency>
4545
<groupId>org.yaml</groupId>
4646
<artifactId>snakeyaml</artifactId>
47-
<version>1.30</version>
47+
<version>2.0</version>
4848
</dependency>
4949
<dependency>
5050
<groupId>org.mongodb</groupId>
5151
<artifactId>bson</artifactId>
52-
<version>4.6.0</version>
52+
<version>4.9.1</version>
5353
<optional>true</optional>
5454
</dependency>
55+
<dependency>
56+
<groupId>org.junit.jupiter</groupId>
57+
<artifactId>junit-jupiter</artifactId>
58+
<version>5.9.3</version>
59+
<scope>test</scope>
60+
</dependency>
5561
</dependencies>
5662

5763
<build>

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

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

346+
public boolean equals(Object obj, boolean strict) {
347+
if (obj == null)
348+
return false;
349+
if (!(obj instanceof AbstractElement))
350+
return false;
351+
try {
352+
AbstractArray arr = ((AbstractElement) obj).array(strict);
353+
if (size() != arr.size())
354+
return false;
355+
if (size() == 0 || arr.size() == 0)
356+
return false;
357+
358+
for (int i = 0; i < size(); i++) {
359+
if (!(get(i).equals(arr.get(i), strict)))
360+
return false;
361+
}
362+
return true;
363+
} catch (AbstractCoercingException ignored) {
364+
return false;
365+
}
366+
}
367+
368+
public boolean equals (Object obj) {
369+
return equals(obj, false);
370+
}
371+
372+
public AbstractArray addAll(AbstractArray array) {
373+
elements.addAll(array.elements);
374+
return this;
375+
}
376+
377+
public AbstractArray concat(AbstractArray... array) {
378+
AbstractArray newArr = new AbstractArray();
379+
newArr.addAll(this);
380+
for (AbstractArray arr : array)
381+
newArr.addAll(arr);
382+
383+
return newArr;
384+
}
346385
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,4 +246,5 @@ public boolean isPrimitive() {
246246
}
247247
}
248248

249+
boolean equals(Object obj, boolean strict);
249250
}

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

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

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

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

270+
public boolean equals(Object obj, boolean strict) {
271+
if (obj == null)
272+
return false;
273+
if (!(obj instanceof AbstractElement))
274+
return false;
275+
try {
276+
AbstractObject object = ((AbstractElement) obj).object(strict);
277+
if (size() != object.size())
278+
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;
288+
}
289+
}
290+
291+
public boolean equals (Object obj) {
292+
return equals(obj, false);
293+
}
270294
}

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

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

178+
public boolean equals(Object obj, boolean strict) {
179+
if (obj == null)
180+
return false;
181+
if (!(obj instanceof AbstractPrimitive))
182+
return false;
183+
AbstractPrimitive primitive = (AbstractPrimitive) obj;
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) {}
192+
return false;
193+
}
194+
195+
public boolean equals (Object obj) {
196+
return equals(obj, false);
197+
}
178198
}

0 commit comments

Comments
 (0)