Skip to content

Commit ec71992

Browse files
committed
Added orElse Methods
1 parent 7e34d67 commit ec71992

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.lang.reflect.Field;
77
import java.util.HashMap;
88
import java.util.Map;
9+
import java.util.Optional;
910
import java.util.Set;
1011
import java.util.function.BiConsumer;
1112

@@ -65,6 +66,11 @@ public AbstractElement get(String key){
6566
return entries.get(key);
6667
}
6768

69+
public AbstractElement get(String key, AbstractElement orElse) {
70+
AbstractElement value = get(key);
71+
return (has(key) && !value.isNull()) ? value : orElse;
72+
}
73+
6874
public boolean has(String key){
6975
return entries.containsKey(key);
7076
}
@@ -87,26 +93,50 @@ public AbstractObject object(String key) {
8793
return get(key).object();
8894
}
8995

96+
public AbstractObject object(String key, AbstractObject orElse) {
97+
return get(key, orElse).object();
98+
}
99+
90100
public AbstractArray array(String key) {
91101
return get(key).array();
92102
}
93103

104+
public AbstractArray array(String key, AbstractArray orElse) {
105+
return get(key, orElse).array();
106+
}
107+
94108
public AbstractPrimitive primitive(String key) {
95109
return get(key).primitive();
96110
}
97111

112+
public AbstractPrimitive primitive(String key, AbstractPrimitive orElse) {
113+
return get(key, orElse).primitive();
114+
}
115+
98116
public String string(String key) {
99117
return get(key).string();
100118
}
101119

120+
public String string(String key, String orElse) {
121+
return get(key, new AbstractPrimitive(orElse)).string();
122+
}
123+
102124
public Boolean bool(String key) {
103125
return get(key).bool();
104126
}
105127

128+
public Boolean bool(String key, Boolean orElse) {
129+
return get(key, new AbstractPrimitive(orElse)).bool();
130+
}
131+
106132
public Number number(String key) {
107133
return get(key).number();
108134
}
109135

136+
public Number number(String key, Number orElse) {
137+
return get(key, new AbstractPrimitive(orElse)).number();
138+
}
139+
110140
public JsonElement toJson() {
111141
JsonObject object = new JsonObject();
112142
entries.forEach((k,v) -> object.add(k, v.toJson()));

0 commit comments

Comments
 (0)