Skip to content

Commit ddd3a3b

Browse files
committed
Switched the shortcut methods to the new query method (issue #3)
1 parent 2dc2684 commit ddd3a3b

File tree

2 files changed

+94
-12
lines changed

2 files changed

+94
-12
lines changed

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

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,54 @@ public AbstractArray array() {
1818
return this;
1919
}
2020

21+
public AbstractObject object(String key) {
22+
return query(key).object();
23+
}
24+
25+
public AbstractArray array(String key) {
26+
return query(key).array();
27+
}
28+
29+
public AbstractPrimitive primitive(String key) {
30+
return query(key).primitive();
31+
}
32+
33+
public String string(String key) {
34+
return query(key).string();
35+
}
36+
37+
public Boolean bool(String key) {
38+
return query(key).bool();
39+
}
40+
41+
public Number number(String key) {
42+
return query(key).number();
43+
}
44+
45+
public AbstractObject object(String key, AbstractObject orElse) {
46+
return query(key, orElse).object();
47+
}
48+
49+
public AbstractArray array(String key, AbstractArray orElse) {
50+
return query(key, orElse).array();
51+
}
52+
53+
public AbstractPrimitive primitive(String key, AbstractPrimitive orElse) {
54+
return query(key, orElse).primitive();
55+
}
56+
57+
public String string(String key, String orElse) {
58+
return query(key, new AbstractPrimitive(orElse)).string();
59+
}
60+
61+
public Boolean bool(String key, Boolean orElse) {
62+
return query(key, new AbstractPrimitive(orElse)).bool();
63+
}
64+
65+
public Number number(String key, Number orElse) {
66+
return query(key, new AbstractPrimitive(orElse)).number();
67+
}
68+
2169
public AbstractObject object(int index) {
2270
return get(index).object();
2371
}
@@ -42,6 +90,30 @@ public Number number(int index) {
4290
return get(index).number();
4391
}
4492

93+
public AbstractObject object(int index, AbstractObject orElse) {
94+
return get(index, orElse).object();
95+
}
96+
97+
public AbstractArray array(int index, AbstractArray orElse) {
98+
return get(index, orElse).array();
99+
}
100+
101+
public AbstractPrimitive primitive(int index, AbstractPrimitive orElse) {
102+
return get(index, orElse).primitive();
103+
}
104+
105+
public String string(int index, String orElse) {
106+
return get(index, new AbstractPrimitive(orElse)).string();
107+
}
108+
109+
public Boolean bool(int index, Boolean orElse) {
110+
return get(index, new AbstractPrimitive(orElse)).bool();
111+
}
112+
113+
public Number number(int index, Number orElse) {
114+
return get(index, new AbstractPrimitive(orElse)).number();
115+
}
116+
45117
public AbstractArray add(AbstractElement element) {
46118
if (element == null)
47119
element = AbstractNull.INSTANCE;
@@ -155,6 +227,11 @@ public AbstractElement query(String query) {
155227
}
156228
}
157229

230+
public AbstractElement query(String query, AbstractElement orElse) {
231+
AbstractElement value = query(query);
232+
return (value != null && !value.isNull()) ? value : orElse;
233+
}
234+
158235
public Stream<AbstractElement> stream() {
159236
return elements.stream();
160237
}

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

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ public AbstractElement query(String query) {
8282
return null;
8383
}
8484

85+
public AbstractElement query(String query, AbstractElement orElse) {
86+
AbstractElement value = query(query);
87+
return (value != null && !value.isNull()) ? value : orElse;
88+
}
89+
8590
public boolean has(String key) {
8691
return entries.containsKey(key);
8792
}
@@ -101,51 +106,51 @@ public AbstractArray array() {
101106
}
102107

103108
public AbstractObject object(String key) {
104-
return get(key).object();
109+
return query(key).object();
105110
}
106111

107112
public AbstractObject object(String key, AbstractObject orElse) {
108-
return get(key, orElse).object();
113+
return query(key, orElse).object();
109114
}
110115

111116
public AbstractArray array(String key) {
112-
return get(key).array();
117+
return query(key).array();
113118
}
114119

115120
public AbstractArray array(String key, AbstractArray orElse) {
116-
return get(key, orElse).array();
121+
return query(key, orElse).array();
117122
}
118123

119124
public AbstractPrimitive primitive(String key) {
120-
return get(key).primitive();
125+
return query(key).primitive();
121126
}
122127

123128
public AbstractPrimitive primitive(String key, AbstractPrimitive orElse) {
124-
return get(key, orElse).primitive();
129+
return query(key, orElse).primitive();
125130
}
126131

127132
public String string(String key) {
128-
return get(key).string();
133+
return query(key).string();
129134
}
130135

131136
public String string(String key, String orElse) {
132-
return get(key, new AbstractPrimitive(orElse)).string();
137+
return query(key, new AbstractPrimitive(orElse)).string();
133138
}
134139

135140
public Boolean bool(String key) {
136-
return get(key).bool();
141+
return query(key).bool();
137142
}
138143

139144
public Boolean bool(String key, Boolean orElse) {
140-
return get(key, new AbstractPrimitive(orElse)).bool();
145+
return query(key, new AbstractPrimitive(orElse)).bool();
141146
}
142147

143148
public Number number(String key) {
144-
return get(key).number();
149+
return query(key).number();
145150
}
146151

147152
public Number number(String key, Number orElse) {
148-
return get(key, new AbstractPrimitive(orElse)).number();
153+
return query(key, new AbstractPrimitive(orElse)).number();
149154
}
150155

151156
public JsonElement toJson() {

0 commit comments

Comments
 (0)