Skip to content
This repository was archived by the owner on Oct 31, 2024. It is now read-only.

Commit 451db7e

Browse files
committed
code review fixes
1 parent 5011545 commit 451db7e

File tree

4 files changed

+56
-51
lines changed

4 files changed

+56
-51
lines changed

jmespath-jackson-jr/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66

77
<artifactId>jmespath-jackson-jr</artifactId>
8-
<name>JMESPath JacksonJr</name>
8+
<name>JMESPath Jackson jr</name>
99
<description>A JMESPath implementation for Java</description>
1010

1111
<parent>
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.burt.jmespath.jacksonjr;
22

33
import com.fasterxml.jackson.core.JsonToken;
4-
import com.fasterxml.jackson.core.TreeNode;
54
import com.fasterxml.jackson.jr.ob.JSON;
65
import com.fasterxml.jackson.jr.stree.JacksonJrsTreeCodec;
76
import com.fasterxml.jackson.jr.stree.JrsArray;
@@ -15,6 +14,7 @@
1514
import io.burt.jmespath.JmesPathType;
1615
import io.burt.jmespath.RuntimeConfiguration;
1716
import java.io.IOException;
17+
import java.io.UncheckedIOException;
1818
import java.util.AbstractList;
1919
import java.util.ArrayList;
2020
import java.util.Collection;
@@ -24,8 +24,9 @@
2424
import java.util.List;
2525
import java.util.Map;
2626

27-
public class JacksonJrRuntime extends BaseRuntime<TreeNode> {
27+
public class JacksonJrRuntime extends BaseRuntime<JrsValue> {
2828
private final JSON json;
29+
2930
public JacksonJrRuntime() {
3031
this(RuntimeConfiguration.defaultConfiguration());
3132
}
@@ -35,29 +36,30 @@ public JacksonJrRuntime(RuntimeConfiguration configuration) {
3536
.treeCodec(new JacksonJrsTreeCodec())
3637
.build());
3738
}
39+
3840
public JacksonJrRuntime(RuntimeConfiguration configuration, JSON json) {
3941
super(configuration);
4042
this.json = json;
4143
}
4244

4345
@Override
44-
public TreeNode parseString(String str) {
46+
public JrsValue parseString(String str) {
4547
try {
4648
return json.treeFrom(str);
4749
} catch (IOException e) {
4850
throw new IllegalStateException(e);
4951
}
5052
}
5153

52-
private static class JrsArrayListWrapper extends AbstractList<TreeNode> {
54+
private static class JrsArrayListWrapper extends AbstractList<JrsValue> {
5355
private final JrsArray array;
5456

5557
JrsArrayListWrapper(JrsArray array) {
5658
this.array = array;
5759
}
5860

5961
@Override
60-
public TreeNode get(int index) {
62+
public JrsValue get(int index) {
6163
return array.get(index);
6264
}
6365

@@ -68,19 +70,18 @@ public int size() {
6870
}
6971

7072
@Override
71-
public List<TreeNode> toList(TreeNode value) {
73+
public List<JrsValue> toList(JrsValue value) {
7274
if (value == null) {
7375
return Collections.emptyList();
74-
}
75-
if (value.isArray()) {
76+
} else if (value.isArray()) {
7677
return new JrsArrayListWrapper((JrsArray) value);
7778
} else if (value.isObject()) {
7879
JrsObject object = (JrsObject) value;
79-
List<TreeNode> list = new ArrayList<>(object.size());
80+
List<JrsValue> list = new ArrayList<>(object.size());
8081
Iterator<Map.Entry<String, JrsValue>> iterator = object.fields();
8182

8283
while (iterator.hasNext()) {
83-
Map.Entry<String, TreeNode> entry = (Map.Entry) iterator.next();
84+
Map.Entry<String, JrsValue> entry = iterator.next();
8485
list.add(entry.getValue());
8586
}
8687
return list;
@@ -90,50 +91,54 @@ public List<TreeNode> toList(TreeNode value) {
9091
}
9192

9293
@Override
93-
public String toString(TreeNode value) {
94-
if (value.asToken().equals(JsonToken.VALUE_STRING)) {
95-
return ((JrsString) value).asText();
94+
public String toString(JrsValue value) {
95+
if (JsonToken.VALUE_STRING.equals(value.asToken())) {
96+
return value.asText();
9697
} else {
9798
try {
9899
return json.asString(value);
99100
} catch (IOException e) {
100-
return "";
101+
throw new UncheckedIOException(e);
101102
}
102103
}
103104
}
104105

105106
@Override
106-
public Number toNumber(TreeNode value) {
107-
if (value.isValueNode() && ((JrsValue) value).isNumber()) {
107+
public Number toNumber(JrsValue value) {
108+
if (value.isValueNode() && value.isNumber()) {
108109
JrsNumber number = (JrsNumber) value;
109110
return number.getValue();
110-
} else return null;
111+
} else {
112+
return null;
113+
}
111114
}
112115

113116
@Override
114-
public boolean isTruthy(TreeNode value) {
115-
// false, null, empty lists, empty objects, empty strings.
117+
public boolean isTruthy(JrsValue value) {
116118
if (value.isContainerNode()) {
117119
return value.size() > 0;
118120
} else if (value.isValueNode()) {
119-
if (value.asToken().equals(JsonToken.VALUE_STRING)) {
120-
return !((JrsString) value).asText().isEmpty();
121-
} else return !value.asToken().equals(JsonToken.VALUE_FALSE) &&
122-
!value.asToken().equals(JsonToken.VALUE_NULL);
121+
switch (value.asToken()) {
122+
case VALUE_STRING:
123+
return !value.asText().isEmpty();
124+
case VALUE_FALSE:
125+
case VALUE_NULL:
126+
return false;
127+
default:
128+
return true;
129+
}
123130
} else {
124131
return !value.isMissingNode();
125132
}
126133
}
127134

128135
@Override
129-
public JmesPathType typeOf(TreeNode value) {
136+
public JmesPathType typeOf(JrsValue value) {
130137
switch (value.asToken()) {
131138
case START_ARRAY:
132-
case END_ARRAY:
133139
return JmesPathType.ARRAY;
134140
case VALUE_EMBEDDED_OBJECT:
135141
case START_OBJECT:
136-
case END_OBJECT:
137142
return JmesPathType.OBJECT;
138143
case VALUE_STRING:
139144
return JmesPathType.STRING;
@@ -152,19 +157,19 @@ public JmesPathType typeOf(TreeNode value) {
152157
}
153158

154159
@Override
155-
public TreeNode getProperty(TreeNode value, TreeNode name) {
156-
if (value == null || value.asToken().equals(JsonToken.VALUE_NULL)) {
160+
public JrsValue getProperty(JrsValue value, JrsValue name) {
161+
if (JsonToken.VALUE_NULL.equals(value.asToken())) {
157162
return JrsNull.instance();
158163
} else {
159-
TreeNode node = value.get(((JrsString) name).asText());
164+
JrsValue node = value.get(name.asText());
160165
return node != null ? node : createNull();
161166
}
162167
}
163168

164169
@Override
165-
public Collection<TreeNode> getPropertyNames(TreeNode value) {
166-
if (value != null && value.isObject()) {
167-
List<TreeNode> names = new ArrayList<>(value.size());
170+
public Collection<JrsValue> getPropertyNames(JrsValue value) {
171+
if (value.isObject()) {
172+
List<JrsValue> names = new ArrayList<>(value.size());
168173
Iterator<String> fieldNames = value.fieldNames();
169174
while (fieldNames.hasNext()) {
170175
names.add(createString(fieldNames.next()));
@@ -176,50 +181,50 @@ public Collection<TreeNode> getPropertyNames(TreeNode value) {
176181
}
177182

178183
@Override
179-
public TreeNode createNull() {
184+
public JrsValue createNull() {
180185
return JrsNull.instance();
181186
}
182187

183188
@Override
184-
public TreeNode createArray(Collection<TreeNode> elements) {
189+
public JrsValue createArray(Collection<JrsValue> elements) {
185190
List<JrsValue> values = new ArrayList<>();
186-
for (TreeNode node: elements) {
191+
for (JrsValue node: elements) {
187192
if (node == null) {
188193
values.add(JrsNull.instance());
189194
} else {
190-
values.add((JrsValue) node);
195+
values.add(node);
191196
}
192197
}
193198
return new JrsArray(values);
194199

195200
}
196201

197202
@Override
198-
public TreeNode createString(String str) {
203+
public JrsValue createString(String str) {
199204
return new JrsString(str);
200205
}
201206

202207
@Override
203-
public TreeNode createBoolean(boolean b) {
208+
public JrsValue createBoolean(boolean b) {
204209
return b ? JrsBoolean.TRUE : JrsBoolean.FALSE;
205210
}
206211

207212
@Override
208-
public TreeNode createObject(Map<TreeNode, TreeNode> obj) {
213+
public JrsValue createObject(Map<JrsValue, JrsValue> obj) {
209214
Map<String, JrsValue> values = new HashMap<>();
210-
for (Map.Entry<TreeNode, TreeNode> entry : obj.entrySet()) {
211-
values.put(((JrsString)entry.getKey()).asText(), (JrsValue) entry.getValue());
215+
for (Map.Entry<JrsValue, JrsValue> entry : obj.entrySet()) {
216+
values.put(entry.getKey().asText(), entry.getValue());
212217
}
213218
return new JrsObject(values);
214219
}
215220

216221
@Override
217-
public TreeNode createNumber(double n) {
222+
public JrsValue createNumber(double n) {
218223
return new JrsNumber(n);
219224
}
220225

221226
@Override
222-
public TreeNode createNumber(long n) {
227+
public JrsValue createNumber(long n) {
223228
return new JrsNumber(n);
224229
}
225230
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package io.burt.jmespath.jacksonjr;
22

3-
import com.fasterxml.jackson.core.TreeNode;
3+
import com.fasterxml.jackson.jr.stree.JrsValue;
44
import io.burt.jmespath.Adapter;
55
import io.burt.jmespath.JmesPathComplianceTest;
66

7-
public class JacksonJrComplianceTest extends JmesPathComplianceTest<TreeNode> {
8-
private Adapter<TreeNode> runtime = new JacksonJrRuntime();
7+
public class JacksonJrComplianceTest extends JmesPathComplianceTest<JrsValue> {
8+
private Adapter<JrsValue> runtime = new JacksonJrRuntime();
99

1010
@Override
11-
protected Adapter<TreeNode> runtime() { return runtime; }
11+
protected Adapter<JrsValue> runtime() { return runtime; }
1212
}
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package io.burt.jmespath.jacksonjr;
22

33

4-
import com.fasterxml.jackson.core.TreeNode;
4+
import com.fasterxml.jackson.jr.stree.JrsValue;
55
import io.burt.jmespath.Adapter;
66
import io.burt.jmespath.JmesPathRuntimeTest;
77
import io.burt.jmespath.RuntimeConfiguration;
88

9-
public class JacksonJrTest extends JmesPathRuntimeTest<TreeNode> {
9+
public class JacksonJrTest extends JmesPathRuntimeTest<JrsValue> {
1010
@Override
11-
protected Adapter<TreeNode> createRuntime(RuntimeConfiguration configuration) {
11+
protected Adapter<JrsValue> createRuntime(RuntimeConfiguration configuration) {
1212
return new JacksonJrRuntime(configuration);
1313
}
1414
}

0 commit comments

Comments
 (0)