Skip to content

Commit 20f723d

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents d8b8011 + 19208be commit 20f723d

File tree

3 files changed

+63
-6
lines changed

3 files changed

+63
-6
lines changed

README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,18 @@
1-
# AbstractData
1+
<p align="center"><img src="https://raw.githubusercontent.com/JavaWebStack/docs/master/docs/assets/img/icon.svg" width="100">
2+
<br><br>
3+
JWS Abstract Data Representation
4+
</p>
5+
6+
![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/JavaWebStack/AbstractData/Maven%20Deploy/master)
7+
![GitHub](https://img.shields.io/github/license/JavaWebStack/AbstractData)
8+
![Maven metadata URL](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo.javawebstack.org%2Forg%2Fjavawebstack%2FAbstractData%2Fmaven-metadata.xml)
9+
![GitHub contributors](https://img.shields.io/github/contributors/JavaWebStack/AbstractData)
10+
![Lines of code](https://img.shields.io/tokei/lines/github/JavaWebStack/AbstractData)
11+
![Discord](https://img.shields.io/discord/815612319378833408?color=%237289DA&label=discord)
12+
![Twitter Follow](https://img.shields.io/twitter/follow/JavaWebStack?style=social)
13+
14+
## Introduction
215
A library to abstractly represent structured data and convert it from and to several formats
16+
17+
## Documentation
18+
You can find the current docs on our [website](https://docs.javawebstack.org/framework). This is a work-in-progress project though so it's not yet complete.

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

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package org.javawebstack.abstractdata;
22

3+
import com.google.gson.Gson;
34
import com.google.gson.JsonArray;
45
import com.google.gson.JsonElement;
56

6-
import java.util.ArrayList;
7-
import java.util.Iterator;
8-
import java.util.List;
9-
import java.util.Map;
7+
import java.util.*;
108
import java.util.stream.Stream;
119

1210
public class AbstractArray implements AbstractElement, Iterable<AbstractElement> {
1311

14-
private final List<AbstractElement> elements = new ArrayList<>();
12+
private final List<AbstractElement> elements;
1513

1614
public boolean isArray() {
1715
return true;
@@ -52,6 +50,24 @@ public AbstractArray add(AbstractElement element) {
5250
return this;
5351
}
5452

53+
public AbstractArray(){
54+
elements = new ArrayList<>();
55+
}
56+
57+
public AbstractArray(Object[] objects){
58+
this();
59+
for (Object o : objects) {
60+
if (o instanceof AbstractElement)
61+
elements.add((AbstractElement) o);
62+
else
63+
elements.add(AbstractElement.fromAbstractObject(o));
64+
}
65+
}
66+
67+
public AbstractArray(Collection<Object> abstractElements){
68+
this(abstractElements.toArray());
69+
}
70+
5571
public AbstractArray addNull() {
5672
return add(AbstractNull.INSTANCE);
5773
}
@@ -110,6 +126,10 @@ public AbstractArray remove(int i){
110126
return this;
111127
}
112128

129+
public AbstractElement[] toArray(){
130+
return elements.toArray(new AbstractElement[0]);
131+
}
132+
113133
public AbstractElement get(int i){
114134
return elements.get(i);
115135
}
@@ -122,6 +142,14 @@ public int size() {
122142
return elements.size();
123143
}
124144

145+
public boolean contains(Object o){
146+
for (AbstractElement element : elements) {
147+
if (o instanceof AbstractElement ? ((AbstractElement) o).toAbstractObject().equals(element.toAbstractObject()) : element.toAbstractObject().equals(o))
148+
return true;
149+
}
150+
return false;
151+
}
152+
125153
public AbstractArray clear() {
126154
elements.clear();
127155
return this;
@@ -149,6 +177,15 @@ public static AbstractArray fromJson(JsonArray array){
149177
return a;
150178
}
151179

180+
181+
public static AbstractArray fromArray(Object[] objects){
182+
return new AbstractArray(objects);
183+
}
184+
185+
public static AbstractArray fromList(Collection collection){
186+
return new AbstractArray(collection);
187+
}
188+
152189
public Type getType() {
153190
return Type.ARRAY;
154191
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ public Set<String> keys(){
167167
return entries.keySet();
168168
}
169169

170+
public AbstractArray values(){
171+
return AbstractArray.fromList(entries.values());
172+
}
173+
170174
public AbstractElement clone() {
171175
AbstractObject object = new AbstractObject();
172176
forEach((k, v) -> object.set(k, v.clone()));

0 commit comments

Comments
 (0)