|
24 | 24 | package co.elastic.clients.elasticsearch._types.aggregations; |
25 | 25 |
|
26 | 26 | import co.elastic.clients.elasticsearch._types.Script; |
| 27 | +import co.elastic.clients.elasticsearch._types.SortOrder; |
27 | 28 | import co.elastic.clients.elasticsearch._types.Time; |
28 | 29 | import co.elastic.clients.elasticsearch.transform.PivotGroupBy; |
29 | 30 | import co.elastic.clients.elasticsearch.transform.PivotGroupByVariant; |
|
34 | 35 | import co.elastic.clients.json.ObjectBuilderDeserializer; |
35 | 36 | import co.elastic.clients.json.ObjectDeserializer; |
36 | 37 | import co.elastic.clients.util.ApiTypeHelper; |
| 38 | +import co.elastic.clients.util.NamedValue; |
37 | 39 | import co.elastic.clients.util.ObjectBuilder; |
38 | 40 | import jakarta.json.stream.JsonGenerator; |
39 | 41 | import java.lang.Boolean; |
40 | 42 | import java.lang.Integer; |
41 | 43 | import java.lang.String; |
| 44 | +import java.util.List; |
42 | 45 | import java.util.Map; |
43 | 46 | import java.util.Objects; |
44 | 47 | import java.util.function.Function; |
@@ -84,8 +87,7 @@ public class DateHistogramAggregation extends BucketAggregationBase implements A |
84 | 87 | @Nullable |
85 | 88 | private final Time offset; |
86 | 89 |
|
87 | | - @Nullable |
88 | | - private final HistogramOrder order; |
| 90 | + private final List<NamedValue<SortOrder>> order; |
89 | 91 |
|
90 | 92 | private final Map<String, JsonData> params; |
91 | 93 |
|
@@ -113,7 +115,7 @@ private DateHistogramAggregation(Builder builder) { |
113 | 115 | this.minDocCount = builder.minDocCount; |
114 | 116 | this.missing = builder.missing; |
115 | 117 | this.offset = builder.offset; |
116 | | - this.order = builder.order; |
| 118 | + this.order = ApiTypeHelper.unmodifiable(builder.order); |
117 | 119 | this.params = ApiTypeHelper.unmodifiable(builder.params); |
118 | 120 | this.script = builder.script; |
119 | 121 | this.timeZone = builder.timeZone; |
@@ -224,8 +226,7 @@ public final Time offset() { |
224 | 226 | /** |
225 | 227 | * API name: {@code order} |
226 | 228 | */ |
227 | | - @Nullable |
228 | | - public final HistogramOrder order() { |
| 229 | + public final List<NamedValue<SortOrder>> order() { |
229 | 230 | return this.order; |
230 | 231 | } |
231 | 232 |
|
@@ -312,9 +313,17 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { |
312 | 313 | this.offset.serialize(generator, mapper); |
313 | 314 |
|
314 | 315 | } |
315 | | - if (this.order != null) { |
| 316 | + if (ApiTypeHelper.isDefined(this.order)) { |
316 | 317 | generator.writeKey("order"); |
317 | | - this.order.serialize(generator, mapper); |
| 318 | + generator.writeStartArray(); |
| 319 | + for (NamedValue<SortOrder> item0 : this.order) { |
| 320 | + generator.writeStartObject(); |
| 321 | + generator.writeKey(item0.name()); |
| 322 | + item0.value().serialize(generator, mapper); |
| 323 | + generator.writeEnd(); |
| 324 | + |
| 325 | + } |
| 326 | + generator.writeEnd(); |
318 | 327 |
|
319 | 328 | } |
320 | 329 | if (ApiTypeHelper.isDefined(this.params)) { |
@@ -386,7 +395,7 @@ public static class Builder extends BucketAggregationBase.AbstractBuilder<Builde |
386 | 395 | private Time offset; |
387 | 396 |
|
388 | 397 | @Nullable |
389 | | - private HistogramOrder order; |
| 398 | + private List<NamedValue<SortOrder>> order; |
390 | 399 |
|
391 | 400 | @Nullable |
392 | 401 | private Map<String, JsonData> params; |
@@ -519,17 +528,22 @@ public final Builder offset(Function<Time.Builder, ObjectBuilder<Time>> fn) { |
519 | 528 |
|
520 | 529 | /** |
521 | 530 | * API name: {@code order} |
| 531 | + * <p> |
| 532 | + * Adds all elements of <code>list</code> to <code>order</code>. |
522 | 533 | */ |
523 | | - public final Builder order(@Nullable HistogramOrder value) { |
524 | | - this.order = value; |
| 534 | + public final Builder order(List<NamedValue<SortOrder>> list) { |
| 535 | + this.order = _listAddAll(this.order, list); |
525 | 536 | return this; |
526 | 537 | } |
527 | 538 |
|
528 | 539 | /** |
529 | 540 | * API name: {@code order} |
| 541 | + * <p> |
| 542 | + * Adds one or more values to <code>order</code>. |
530 | 543 | */ |
531 | | - public final Builder order(Function<HistogramOrder.Builder, ObjectBuilder<HistogramOrder>> fn) { |
532 | | - return this.order(fn.apply(new HistogramOrder.Builder()).build()); |
| 544 | + public final Builder order(NamedValue<SortOrder> value, NamedValue<SortOrder>... values) { |
| 545 | + this.order = _listAdd(this.order, value, values); |
| 546 | + return this; |
533 | 547 | } |
534 | 548 |
|
535 | 549 | /** |
@@ -624,7 +638,8 @@ protected static void setupDateHistogramAggregationDeserializer( |
624 | 638 | op.add(Builder::minDocCount, JsonpDeserializer.integerDeserializer(), "min_doc_count"); |
625 | 639 | op.add(Builder::missing, JsonpDeserializer.stringDeserializer(), "missing"); |
626 | 640 | op.add(Builder::offset, Time._DESERIALIZER, "offset"); |
627 | | - op.add(Builder::order, HistogramOrder._DESERIALIZER, "order"); |
| 641 | + op.add(Builder::order, |
| 642 | + JsonpDeserializer.arrayDeserializer(NamedValue.deserializer(() -> SortOrder._DESERIALIZER)), "order"); |
628 | 643 | op.add(Builder::params, JsonpDeserializer.stringMapDeserializer(JsonData._DESERIALIZER), "params"); |
629 | 644 | op.add(Builder::script, Script._DESERIALIZER, "script"); |
630 | 645 | op.add(Builder::timeZone, JsonpDeserializer.stringDeserializer(), "time_zone"); |
|
0 commit comments