Skip to content

Commit 174620a

Browse files
committed
fix: include field 'deprecated' in ir encoding and decoding
1 parent 0da03ae commit 174620a

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/Encoding.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public enum Presence
4848
}
4949

5050
private Presence presence;
51+
private final PrimitiveValue deprecated;
5152
private final PrimitiveType primitiveType;
5253
private final ByteOrder byteOrder;
5354
private final PrimitiveValue minValue;
@@ -62,6 +63,7 @@ public enum Presence
6263
Encoding()
6364
{
6465
presence = Presence.REQUIRED;
66+
deprecated = null;
6567
primitiveType = null;
6668
byteOrder = ByteOrder.LITTLE_ENDIAN;
6769
minValue = null;
@@ -76,6 +78,7 @@ public enum Presence
7678

7779
Encoding(
7880
final Presence presence,
81+
final PrimitiveValue deprecated,
7982
final PrimitiveType primitiveType,
8083
final ByteOrder byteOrder,
8184
final PrimitiveValue minValue,
@@ -91,6 +94,7 @@ public enum Presence
9194
Verify.notNull(byteOrder, "byteOrder");
9295

9396
this.primitiveType = primitiveType;
97+
this.deprecated = deprecated;
9498
this.presence = presence;
9599
this.byteOrder = byteOrder;
96100
this.minValue = minValue;
@@ -183,6 +187,16 @@ public void presence(final Presence presence)
183187
this.presence = presence;
184188
}
185189

190+
/**
191+
* The version at which a field was deprecated.
192+
*
193+
* @return the version at which a field was deprecated.
194+
*/
195+
public PrimitiveValue deprecated()
196+
{
197+
return this.deprecated;
198+
}
199+
186200
/**
187201
* The most applicable null value for the encoded type.
188202
*
@@ -276,6 +290,7 @@ public String toString()
276290
return
277291
"Encoding{" +
278292
"presence=" + presence +
293+
", deprecated=" + deprecated +
279294
", primitiveType=" + primitiveType +
280295
", byteOrder=" + byteOrder +
281296
", minValue=" + minValue +
@@ -296,6 +311,7 @@ public static class Builder
296311
{
297312
private PrimitiveType primitiveType = null;
298313
private Presence presence = Presence.REQUIRED;
314+
private PrimitiveValue deprecated = null;
299315
private ByteOrder byteOrder = ByteOrder.LITTLE_ENDIAN;
300316
private PrimitiveValue minValue = null;
301317
private PrimitiveValue maxValue = null;
@@ -330,6 +346,18 @@ public Builder presence(final Presence presence)
330346
return this;
331347
}
332348

349+
/**
350+
* Deprecated for the Encoding.
351+
*
352+
* @param deprecated for the Encoding.
353+
* @return this for a fluent API.
354+
*/
355+
public Builder deprecated(final PrimitiveValue deprecated)
356+
{
357+
this.deprecated = deprecated;
358+
return this;
359+
}
360+
333361
/**
334362
* ByteOrder for the Encoding.
335363
*
@@ -446,7 +474,9 @@ public Builder semanticType(final String semanticType)
446474
public Encoding build()
447475
{
448476
return new Encoding(
449-
presence, primitiveType,
477+
presence,
478+
deprecated,
479+
primitiveType,
450480
byteOrder,
451481
minValue,
452482
maxValue,

sbe-tool/src/main/java/uk/co/real_logic/sbe/ir/IrEncoder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ private int encodeToken(final Token token)
192192
.signal(mapSignal(token.signal()))
193193
.primitiveType(mapPrimitiveType(type))
194194
.byteOrder(mapByteOrder(encoding.byteOrder()))
195-
.presence(mapPresence(encoding.presence()));
195+
.presence(mapPresence(encoding.presence()))
196+
.deprecated(token.deprecated());
196197

197198
try
198199
{

0 commit comments

Comments
 (0)