3636
3737package org .opensearch .client .opensearch ._types .aggregations ;
3838
39+ import jakarta .json .stream .JsonGenerator ;
40+ import java .util .Map ;
41+ import java .util .Objects ;
3942import java .util .function .Function ;
4043import javax .annotation .Generated ;
4144import javax .annotation .Nonnull ;
42- import org .opensearch .client .json .JsonpDeserializable ;
45+ import javax .annotation .Nullable ;
46+ import org .opensearch .client .json .JsonData ;
4347import org .opensearch .client .json .JsonpDeserializer ;
48+ import org .opensearch .client .json .JsonpMapper ;
4449import org .opensearch .client .json .ObjectBuilderDeserializer ;
4550import org .opensearch .client .json .ObjectDeserializer ;
51+ import org .opensearch .client .json .PlainJsonSerializable ;
52+ import org .opensearch .client .util .ApiTypeHelper ;
4653import org .opensearch .client .util .CopyableBuilder ;
4754import org .opensearch .client .util .ObjectBuilder ;
55+ import org .opensearch .client .util .ObjectBuilderBase ;
4856import org .opensearch .client .util .ToCopyableBuilder ;
4957
5058// typedef: _types.aggregations.AdjacencyMatrixAggregate
5159
52- @ JsonpDeserializable
5360@ Generated ("org.opensearch.client.codegen.CodeGenerator" )
54- public class AdjacencyMatrixAggregate extends MultiBucketAggregateBase < AdjacencyMatrixBucket >
61+ public class AdjacencyMatrixAggregate < TBucket >
5562 implements
5663 AggregateVariant ,
57- ToCopyableBuilder <AdjacencyMatrixAggregate .Builder , AdjacencyMatrixAggregate > {
64+ PlainJsonSerializable ,
65+ ToCopyableBuilder <AdjacencyMatrixAggregate .Builder <TBucket >, AdjacencyMatrixAggregate <TBucket >> {
66+
67+ @ Nonnull
68+ private final Buckets <TBucket > buckets ;
69+
70+ @ Nonnull
71+ private final Map <String , JsonData > meta ;
5872
5973 // ---------------------------------------------------------------------------------------------
6074
61- private AdjacencyMatrixAggregate (Builder builder ) {
62- super (builder );
75+ private AdjacencyMatrixAggregate (Builder <TBucket > builder ) {
76+ this .buckets = ApiTypeHelper .requireNonNull (builder .buckets , this , "buckets" );
77+ this .meta = ApiTypeHelper .unmodifiable (builder .meta );
6378 }
6479
65- public static AdjacencyMatrixAggregate of (Function <AdjacencyMatrixAggregate .Builder , ObjectBuilder <AdjacencyMatrixAggregate >> fn ) {
66- return fn .apply (new Builder ()).build ();
80+ public static <TBucket > AdjacencyMatrixAggregate <TBucket > of (
81+ Function <AdjacencyMatrixAggregate .Builder <TBucket >, ObjectBuilder <AdjacencyMatrixAggregate <TBucket >>> fn
82+ ) {
83+ return fn .apply (new Builder <>()).build ();
6784 }
6885
6986 /**
@@ -74,45 +91,128 @@ public Aggregate.Kind _aggregateKind() {
7491 return Aggregate .Kind .AdjacencyMatrix ;
7592 }
7693
94+ /**
95+ * Required - API name: {@code buckets}
96+ */
97+ @ Nonnull
98+ public final Buckets <TBucket > buckets () {
99+ return this .buckets ;
100+ }
101+
102+ /**
103+ * API name: {@code meta}
104+ */
105+ @ Nonnull
106+ public final Map <String , JsonData > meta () {
107+ return this .meta ;
108+ }
109+
110+ /**
111+ * Serialize this object to JSON.
112+ */
113+ @ Override
114+ public void serialize (JsonGenerator generator , JsonpMapper mapper ) {
115+ generator .writeStartObject ();
116+ serializeInternal (generator , mapper );
117+ generator .writeEnd ();
118+ }
119+
120+ protected void serializeInternal (JsonGenerator generator , JsonpMapper mapper ) {
121+ generator .writeKey ("buckets" );
122+ this .buckets .serialize (generator , mapper );
123+
124+ if (ApiTypeHelper .isDefined (this .meta )) {
125+ generator .writeKey ("meta" );
126+ generator .writeStartObject ();
127+ for (Map .Entry <String , JsonData > item0 : this .meta .entrySet ()) {
128+ generator .writeKey (item0 .getKey ());
129+ item0 .getValue ().serialize (generator , mapper );
130+ }
131+ generator .writeEnd ();
132+ }
133+ }
134+
77135 // ---------------------------------------------------------------------------------------------
78136
79137 @ Override
80138 @ Nonnull
81- public Builder toBuilder () {
82- return new Builder (this );
139+ public Builder < TBucket > toBuilder () {
140+ return new Builder <> (this );
83141 }
84142
85143 @ Nonnull
86- public static Builder builder () {
87- return new Builder ();
144+ public static < TBucket > Builder builder () {
145+ return new Builder <> ();
88146 }
89147
90148 /**
91149 * Builder for {@link AdjacencyMatrixAggregate}.
92150 */
93- public static class Builder extends MultiBucketAggregateBase . AbstractBuilder < AdjacencyMatrixBucket , Builder >
151+ public static class Builder < TBucket > extends ObjectBuilderBase
94152 implements
95- CopyableBuilder <Builder , AdjacencyMatrixAggregate > {
153+ CopyableBuilder <Builder <TBucket >, AdjacencyMatrixAggregate <TBucket >> {
154+ private Buckets <TBucket > buckets ;
155+ @ Nullable
156+ private Map <String , JsonData > meta ;
96157
97158 public Builder () {}
98159
99- private Builder (AdjacencyMatrixAggregate o ) {
100- super (o );
160+ private Builder (AdjacencyMatrixAggregate <TBucket > o ) {
161+ this .buckets = o .buckets ;
162+ this .meta = _mapCopy (o .meta );
101163 }
102164
103- private Builder (Builder o ) {
104- super (o );
165+ private Builder (Builder <TBucket > o ) {
166+ this .buckets = o .buckets ;
167+ this .meta = _mapCopy (o .meta );
105168 }
106169
107170 @ Override
108171 @ Nonnull
109- public Builder copy () {
110- return new Builder (this );
172+ public Builder < TBucket > copy () {
173+ return new Builder <> (this );
111174 }
112175
113- @ Override
176+ /**
177+ * Required - API name: {@code buckets}
178+ */
114179 @ Nonnull
115- protected Builder self () {
180+ public final Builder <TBucket > buckets (Buckets <TBucket > value ) {
181+ this .buckets = value ;
182+ return this ;
183+ }
184+
185+ /**
186+ * Required - API name: {@code buckets}
187+ */
188+ @ Nonnull
189+ public final Builder <TBucket > buckets (Function <Buckets .Builder <TBucket >, ObjectBuilder <Buckets <TBucket >>> fn ) {
190+ return buckets (fn .apply (new Buckets .Builder <TBucket >()).build ());
191+ }
192+
193+ /**
194+ * API name: {@code meta}
195+ *
196+ * <p>
197+ * Adds all elements of <code>map</code> to <code>meta</code>.
198+ * </p>
199+ */
200+ @ Nonnull
201+ public final Builder <TBucket > meta (Map <String , JsonData > map ) {
202+ this .meta = _mapPutAll (this .meta , map );
203+ return this ;
204+ }
205+
206+ /**
207+ * API name: {@code meta}
208+ *
209+ * <p>
210+ * Adds an entry to <code>meta</code>.
211+ * </p>
212+ */
213+ @ Nonnull
214+ public final Builder <TBucket > meta (String key , JsonData value ) {
215+ this .meta = _mapPut (this .meta , key , value );
116216 return this ;
117217 }
118218
@@ -123,40 +223,48 @@ protected Builder self() {
123223 */
124224 @ Override
125225 @ Nonnull
126- public AdjacencyMatrixAggregate build () {
226+ public AdjacencyMatrixAggregate < TBucket > build () {
127227 _checkSingleUse ();
128228
129- return new AdjacencyMatrixAggregate (this );
229+ return new AdjacencyMatrixAggregate <> (this );
130230 }
131231 }
132232
133233 // ---------------------------------------------------------------------------------------------
134234
135235 /**
136- * Json deserializer for {@link AdjacencyMatrixAggregate}
236+ * Create a JSON deserializer for AdjacencyMatrixAggregate.
137237 */
138- public static final JsonpDeserializer <AdjacencyMatrixAggregate > _DESERIALIZER = ObjectBuilderDeserializer .lazy (
139- Builder ::new ,
140- AdjacencyMatrixAggregate ::setupAdjacencyMatrixAggregateDeserializer
141- );
238+ public static <TBucket > JsonpDeserializer <AdjacencyMatrixAggregate <TBucket >> createAdjacencyMatrixAggregateDeserializer (
239+ JsonpDeserializer <TBucket > tBucketDeserializer
240+ ) {
241+ return ObjectBuilderDeserializer .createForObject (
242+ Builder <TBucket >::new ,
243+ op -> AdjacencyMatrixAggregate .setupAdjacencyMatrixAggregateDeserializer (op , tBucketDeserializer )
244+ );
245+ }
142246
143- protected static void setupAdjacencyMatrixAggregateDeserializer (ObjectDeserializer <AdjacencyMatrixAggregate .Builder > op ) {
144- setupMultiBucketAggregateBaseDeserializer (op , AdjacencyMatrixBucket ._DESERIALIZER );
247+ protected static <TBucket > void setupAdjacencyMatrixAggregateDeserializer (
248+ ObjectDeserializer <AdjacencyMatrixAggregate .Builder <TBucket >> op ,
249+ JsonpDeserializer <TBucket > tBucketDeserializer
250+ ) {
251+ op .add (Builder ::buckets , Buckets .createBucketsDeserializer (tBucketDeserializer ), "buckets" );
252+ op .add (Builder ::meta , JsonpDeserializer .stringMapDeserializer (JsonData ._DESERIALIZER ), "meta" );
145253 }
146254
147255 @ Override
148256 public int hashCode () {
149- int result = super .hashCode ();
257+ int result = 17 ;
258+ result = 31 * result + this .buckets .hashCode ();
259+ result = 31 * result + Objects .hashCode (this .meta );
150260 return result ;
151261 }
152262
153263 @ Override
154264 public boolean equals (Object o ) {
155- if (!super .equals (o )) {
156- return false ;
157- }
158265 if (this == o ) return true ;
159266 if (o == null || this .getClass () != o .getClass ()) return false ;
160- return true ;
267+ AdjacencyMatrixAggregate <?> other = (AdjacencyMatrixAggregate <?>) o ;
268+ return this .buckets .equals (other .buckets ) && Objects .equals (this .meta , other .meta );
161269 }
162270}
0 commit comments