aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@vespa.ai>2024-06-07 15:12:01 +0200
committerBjørn Christian Seime <bjorncs@vespa.ai>2024-06-07 15:12:01 +0200
commit6a8a23caa1debb60a40496ec382553c16ef90076 (patch)
tree4772f5af667feea23e0073485c1fbd50bd1eaa47 /vespajlib/src
parent0a5fde8f0e91cb774ce65fe525f54bf7fd905260 (diff)
Add `addAll`
Diffstat (limited to 'vespajlib/src')
-rw-r--r--vespajlib/src/main/java/ai/vespa/json/Json.java4
-rw-r--r--vespajlib/src/test/java/ai/vespa/json/JsonTest.java23
2 files changed, 27 insertions, 0 deletions
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<Json> {
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);
+ }
}