Skip to content

Commit 548028b

Browse files
authored
Fix #4869: rename JsonNode.elements() as JsonNode.values() (#4870)
1 parent 30bb56d commit 548028b

File tree

11 files changed

+20
-19
lines changed

11 files changed

+20
-19
lines changed

release-notes/VERSION

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ Versions: 3.x (for earlier see VERSION-2.x)
8484
#4820: Change JDK baseline for Jackson 3.0 from Java 8 to Java 17
8585
#4835: Remove dynamic work-arounds wrt accessing `Record` definition
8686
#4840: Increase minimum Android SDK required to 34 for Jackson 3.0
87+
#4869: Rename JsonNode method elements() as values() to unify naming in 3.0
8788
- Remove `MappingJsonFactory`
8889
- Add context parameter for `TypeSerializer` contextualization (`forProperty()`)
8990
- Default for `JsonNodeFeature.STRIP_TRAILING_BIGDECIMAL_ZEROES` changed to `false` for 3.0

src/main/java/tools/jackson/databind/JsonNode.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -966,20 +966,20 @@ public boolean hasNonNull(int index) {
966966
*/
967967

968968
/**
969-
* Same as calling {@link #elements}; implemented so that
969+
* Same as calling {@link #values()}; implemented so that
970970
* convenience "for-each" loop can be used for looping over elements
971971
* of JSON Array constructs.
972972
*/
973973
@Override
974-
public final Iterator<JsonNode> iterator() { return elements(); }
974+
public final Iterator<JsonNode> iterator() { return values(); }
975975

976976
/**
977977
* Method for accessing all value nodes of this Node, iff
978978
* this node is a JSON Array or Object node. In case of Object node,
979979
* field names (keys) are not included, only values.
980980
* For other types of nodes, returns empty iterator.
981981
*/
982-
public Iterator<JsonNode> elements() {
982+
public Iterator<JsonNode> values() {
983983
return ClassUtil.emptyIterator();
984984
}
985985

@@ -1056,7 +1056,7 @@ public void forEachEntry(BiConsumer<? super String, ? super JsonNode> action) {
10561056
* If no matching field is found in this node or its descendants, returns null.
10571057
*<p>
10581058
* Note that traversal is done in document order (that is, order in which
1059-
* nodes are iterated if using {@link JsonNode#elements()})
1059+
* nodes are iterated if using {@link JsonNode#values()})
10601060
*
10611061
* @param fieldName Name of field to look for
10621062
*

src/main/java/tools/jackson/databind/node/ArrayNode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public int size() {
225225
* (before was only generic {@link java.util.Iterator}).
226226
*/
227227
@Override
228-
public Iterator<JsonNode> elements() {
228+
public Iterator<JsonNode> values() {
229229
return _children.listIterator();
230230
}
231231

src/main/java/tools/jackson/databind/node/InternalNodeSerializer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ protected void _serializeNonRecursive(JsonGenerator g, JsonNode node)
7272
_serializeNonRecursive(g, new IteratorStack(), node.fields());
7373
} else if (node instanceof ArrayNode) {
7474
g.writeStartArray(this, node.size());
75-
_serializeNonRecursive(g, new IteratorStack(), node.elements());
75+
_serializeNonRecursive(g, new IteratorStack(), node.values());
7676
} else {
7777
node.serialize(g, _context);
7878
}
@@ -104,7 +104,7 @@ protected void _serializeNonRecursive(JsonGenerator g, IteratorStack stack,
104104
g.writeStartObject(value, value.size());
105105
} else if (value instanceof ArrayNode) {
106106
stack.push(currIt);
107-
currIt = value.elements();
107+
currIt = value.values();
108108
g.writeStartArray(value, value.size());
109109
} else if (value instanceof POJONode) {
110110
// [databind#3262] Problematic case, try to handle

src/main/java/tools/jackson/databind/node/NodeCursor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ protected final static class ArrayCursor
155155

156156
public ArrayCursor(JsonNode n, NodeCursor p) {
157157
super(TokenStreamContext.TYPE_ARRAY, p);
158-
_contents = n.elements();
158+
_contents = n.values();
159159
}
160160

161161
@Override

src/main/java/tools/jackson/databind/node/ObjectNode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ public int size() {
231231
public boolean isEmpty() { return _children.isEmpty(); }
232232

233233
@Override
234-
public Iterator<JsonNode> elements() {
234+
public Iterator<JsonNode> values() {
235235
return _children.values().iterator();
236236
}
237237

src/test/java/tools/jackson/databind/ObjectReaderTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ public Iterator<Entry<String, JsonNode>> fields() {
534534
}
535535

536536
@Override
537-
public Iterator<JsonNode> elements() {
537+
public Iterator<JsonNode> values() {
538538
return Collections.emptyIterator();
539539
}
540540

@@ -654,8 +654,8 @@ public int size() {
654654
}
655655

656656
@Override
657-
public Iterator<JsonNode> elements() {
658-
return _delegate.elements();
657+
public Iterator<JsonNode> values() {
658+
return _delegate.values();
659659
}
660660

661661
@Override

src/test/java/tools/jackson/databind/node/ArrayNodeTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ public void testDirectCreation() throws Exception
3535
assertFalse(n.canConvertToExactIntegral());
3636

3737
assertStandardEquals(n);
38-
assertFalse(n.elements().hasNext());
38+
assertFalse(n.values().hasNext());
3939
assertFalse(n.propertyNames().hasNext());
4040
assertTrue(n.isEmpty());
4141
TextNode text = TextNode.valueOf("x");
4242
n.add(text);
4343
assertEquals(1, n.size());
4444
assertFalse(n.isEmpty());
4545
assertFalse(0 == n.hashCode());
46-
assertTrue(n.elements().hasNext());
46+
assertTrue(n.values().hasNext());
4747
// no field names for arrays
4848
assertFalse(n.propertyNames().hasNext());
4949
assertNull(n.get("x")); // not used with arrays

src/test/java/tools/jackson/databind/node/NullNodeTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void testBasicsWithNullNode() throws Exception
5959

6060
assertEquals(0, n.size());
6161
assertTrue(n.isEmpty());
62-
assertFalse(n.elements().hasNext());
62+
assertFalse(n.values().hasNext());
6363
assertFalse(n.propertyNames().hasNext());
6464
// path is never null; but does point to missing node
6565
assertNotNull(n.path("xyz"));

src/test/java/tools/jackson/databind/node/ObjectNodeTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public void testBasics()
143143
assertStandardEquals(n);
144144
assertTrue(n.isEmpty());
145145

146-
assertFalse(n.elements().hasNext());
146+
assertFalse(n.values().hasNext());
147147
assertFalse(n.fields().hasNext());
148148
assertFalse(n.propertyNames().hasNext());
149149
assertNull(n.get("a"));
@@ -153,7 +153,7 @@ public void testBasics()
153153
assertSame(n, n.set("a", text));
154154

155155
assertEquals(1, n.size());
156-
assertTrue(n.elements().hasNext());
156+
assertTrue(n.values().hasNext());
157157
assertTrue(n.fields().hasNext());
158158
assertTrue(n.propertyNames().hasNext());
159159
assertSame(text, n.get("a"));

src/test/java/tools/jackson/databind/node/TreeReadViaMapperTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void testSimple() throws Exception
4141

4242
ObjectNode main = (ObjectNode) result;
4343
assertEquals("Image", main.propertyNames().next());
44-
JsonNode ob = main.elements().next();
44+
JsonNode ob = main.values().next();
4545
assertType(ob, ObjectNode.class);
4646
ObjectNode imageMap = (ObjectNode) ob;
4747

@@ -75,7 +75,7 @@ public void testSimple() throws Exception
7575
assertTrue(ob.isArray());
7676
ArrayNode idList = (ArrayNode) ob;
7777
assertEquals(4, idList.size());
78-
assertEquals(4, calcLength(idList.elements()));
78+
assertEquals(4, calcLength(idList.values()));
7979
assertEquals(4, calcLength(idList.iterator()));
8080
{
8181
int[] values = new int[] {

0 commit comments

Comments
 (0)