diff options
author | Bjørn Christian Seime <bjorncs@vespa.ai> | 2024-06-07 15:12:01 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@vespa.ai> | 2024-06-07 15:12:01 +0200 |
commit | 6a8a23caa1debb60a40496ec382553c16ef90076 (patch) | |
tree | 4772f5af667feea23e0073485c1fbd50bd1eaa47 /vespajlib/src | |
parent | 0a5fde8f0e91cb774ce65fe525f54bf7fd905260 (diff) |
Add `addAll`
Diffstat (limited to 'vespajlib/src')
-rw-r--r-- | vespajlib/src/main/java/ai/vespa/json/Json.java | 4 | ||||
-rw-r--r-- | vespajlib/src/test/java/ai/vespa/json/JsonTest.java | 23 |
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); + } } |