From 6a8a23caa1debb60a40496ec382553c16ef90076 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Fri, 7 Jun 2024 15:12:01 +0200 Subject: Add `addAll` --- vespajlib/src/main/java/ai/vespa/json/Json.java | 4 ++++ .../src/test/java/ai/vespa/json/JsonTest.java | 23 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'vespajlib/src') diff --git a/vespajlib/src/main/java/ai/vespa/json/Json.java b/vespajlib/src/main/java/ai/vespa/json/Json.java index fef6e2e988e..242f8946162 100644 --- a/vespajlib/src/main/java/ai/vespa/json/Json.java +++ b/vespajlib/src/main/java/ai/vespa/json/Json.java @@ -222,6 +222,10 @@ public class Json implements Iterable { SlimeUtils.addValue(json.inspector, cursor); return this; } public Builder.Array add(Json.Builder builder) { return add(builder.build()); } + /** Add all values from {@code array} to this array. */ + public Builder.Array addAll(Json.Builder.Array array) { + SlimeUtils.copyArray(array.cursor, cursor); return this; + } /** Note: does not return {@code this}! */ public Builder.Array addArray() { return new Array(cursor.addArray()); } diff --git a/vespajlib/src/test/java/ai/vespa/json/JsonTest.java b/vespajlib/src/test/java/ai/vespa/json/JsonTest.java index 51b64637fd8..5183366e12e 100644 --- a/vespajlib/src/test/java/ai/vespa/json/JsonTest.java +++ b/vespajlib/src/test/java/ai/vespa/json/JsonTest.java @@ -130,4 +130,27 @@ class JsonTest { .toJson(true); assertEquals(expected, json); } + + @Test + void add_all() { + var expected = + """ + [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + """; + var json = Json.Builder.newArray() + .addAll(Json.Builder.Array.newArray().add(1).add(2).add(3)) + .add(4) + .addAll(Json.Builder.Array.newArray().add(5)) + .add(6) + .build() + .toJson(true); + assertEquals(expected, json); + } } -- cgit v1.2.3