Skip to content

Commit f407b85

Browse files
committed
Added some helper methods for AbstractArray
1 parent 23a5dac commit f407b85

File tree

2 files changed

+46
-5
lines changed

2 files changed

+46
-5
lines changed

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)