File tree Expand file tree Collapse file tree 11 files changed +309
-121
lines changed
main/java/org/javawebstack/abstractdata
test/java/org/javawebstack/abstractdata Expand file tree Collapse file tree 11 files changed +309
-121
lines changed Original file line number Diff line number Diff 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```
Original file line number Diff line number Diff line change 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 >
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 >
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff line change @@ -246,4 +246,5 @@ public boolean isPrimitive() {
246246 }
247247 }
248248
249+ boolean equals (Object obj , boolean strict );
249250}
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments