@@ -208,22 +208,19 @@ private void add(final CompositeType type, final int currOffset, final Field fie
208
208
.semanticType (semanticTypeOf (type , field ))
209
209
.build ();
210
210
211
+ final int version = null != field ? Math .max (field .sinceVersion (), type .sinceVersion ()) : type .sinceVersion ();
212
+
211
213
final Token .Builder builder = new Token .Builder ()
212
214
.signal (Signal .BEGIN_COMPOSITE )
213
215
.name (type .name ())
214
216
.referencedName (type .referencedName ())
215
217
.offset (currOffset )
216
218
.size (type .encodedLength ())
217
- .version (type . sinceVersion () )
219
+ .version (version )
218
220
.deprecated (type .deprecated ())
219
221
.description (type .description ())
220
222
.encoding (encoding );
221
223
222
- if (null != field )
223
- {
224
- builder .version (Math .max (field .sinceVersion (), type .sinceVersion ()));
225
- }
226
-
227
224
tokenList .add (builder .build ());
228
225
229
226
int offset = 0 ;
@@ -236,19 +233,21 @@ private void add(final CompositeType type, final int currOffset, final Field fie
236
233
237
234
if (elementType instanceof EncodedDataType )
238
235
{
239
- add ((EncodedDataType )elementType , offset );
236
+ add ((EncodedDataType )elementType ,
237
+ offset ,
238
+ null != field ? Math .max (field .sinceVersion (), type .sinceVersion ()) : elementType .sinceVersion ());
240
239
}
241
240
else if (elementType instanceof EnumType )
242
241
{
243
- add ((EnumType )elementType , offset , null );
242
+ add ((EnumType )elementType , offset , field );
244
243
}
245
244
else if (elementType instanceof SetType )
246
245
{
247
- add ((SetType )elementType , offset , null );
246
+ add ((SetType )elementType , offset , field );
248
247
}
249
248
else if (elementType instanceof CompositeType )
250
249
{
251
- add ((CompositeType )elementType , offset , null );
250
+ add ((CompositeType )elementType , offset , field );
252
251
}
253
252
254
253
offset += elementType .encodedLength ();
@@ -266,22 +265,19 @@ private void add(final EnumType type, final int offset, final Field field)
266
265
.nullValue (type .nullValue ())
267
266
.byteOrder (schema .byteOrder ());
268
267
268
+ final int version = null != field ? Math .max (field .sinceVersion (), type .sinceVersion ()) : type .sinceVersion ();
269
+
269
270
final Token .Builder builder = new Token .Builder ()
270
271
.signal (Signal .BEGIN_ENUM )
271
272
.name (type .name ())
272
273
.referencedName (type .referencedName ())
273
274
.size (encodingType .size ())
274
275
.offset (offset )
275
- .version (type . sinceVersion () )
276
+ .version (version )
276
277
.deprecated (type .deprecated ())
277
278
.description (type .description ())
278
279
.encoding (encodingBuilder .build ());
279
280
280
- if (null != field )
281
- {
282
- builder .version (Math .max (field .sinceVersion (), type .sinceVersion ()));
283
- }
284
-
285
281
tokenList .add (builder .build ());
286
282
287
283
for (final EnumType .ValidValue validValue : type .validValues ())
@@ -322,22 +318,19 @@ private void add(final SetType type, final int offset, final Field field)
322
318
.primitiveType (encodingType )
323
319
.build ();
324
320
321
+ final int version = null != field ? Math .max (field .sinceVersion (), type .sinceVersion ()) : type .sinceVersion ();
322
+
325
323
final Token .Builder builder = new Token .Builder ()
326
324
.signal (Signal .BEGIN_SET )
327
325
.name (type .name ())
328
326
.referencedName (type .referencedName ())
329
327
.size (encodingType .size ())
330
328
.offset (offset )
331
- .version (type . sinceVersion () )
329
+ .version (version )
332
330
.deprecated (type .deprecated ())
333
331
.description (type .description ())
334
332
.encoding (encoding );
335
333
336
- if (null != field )
337
- {
338
- builder .version (Math .max (field .sinceVersion (), type .sinceVersion ()));
339
- }
340
-
341
334
tokenList .add (builder .build ());
342
335
343
336
for (final SetType .Choice choice : type .choices ())
@@ -369,7 +362,7 @@ private void add(final SetType.Choice value, final PrimitiveType encodingType)
369
362
tokenList .add (builder .build ());
370
363
}
371
364
372
- private void add (final EncodedDataType type , final int offset )
365
+ private void add (final EncodedDataType type , final int offset , final int sinceVersion )
373
366
{
374
367
final Encoding .Builder encodingBuilder = new Encoding .Builder ()
375
368
.primitiveType (type .primitiveType ())
@@ -382,7 +375,7 @@ private void add(final EncodedDataType type, final int offset)
382
375
.referencedName (type .referencedName ())
383
376
.size (type .encodedLength ())
384
377
.description (type .description ())
385
- .version (type . sinceVersion () )
378
+ .version (sinceVersion )
386
379
.deprecated (type .deprecated ())
387
380
.offset (offset );
388
381
@@ -426,21 +419,18 @@ private void add(final EncodedDataType type, final int offset, final Field field
426
419
.timeUnit (field .timeUnit ())
427
420
.epoch (field .epoch ());
428
421
422
+ final int version = Math .max (field .sinceVersion (), type .sinceVersion ());
423
+
429
424
final Token .Builder tokenBuilder = new Token .Builder ()
430
425
.signal (Signal .ENCODING )
431
426
.name (type .name ())
432
427
.referencedName (type .referencedName ())
433
428
.size (type .encodedLength ())
434
429
.description (type .description ())
435
- .version (type . sinceVersion () )
430
+ .version (version )
436
431
.deprecated (type .deprecated ())
437
432
.offset (offset );
438
433
439
- if (field .type () instanceof CompositeType )
440
- {
441
- tokenBuilder .version (Math .max (field .sinceVersion (), type .sinceVersion ()));
442
- }
443
-
444
434
switch (field .presence ())
445
435
{
446
436
case REQUIRED :
0 commit comments