Skip to content

Commit 0425684

Browse files
committed
[Java] Clean up constant enum IR generation.
1 parent 3982a9e commit 0425684

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

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

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public enum Presence
4747
CONSTANT
4848
}
4949

50+
private Presence presence;
5051
private final PrimitiveType primitiveType;
51-
private final Presence presence;
5252
private final ByteOrder byteOrder;
5353
private final PrimitiveValue minValue;
5454
private final PrimitiveValue maxValue;
@@ -61,8 +61,8 @@ public enum Presence
6161

6262
public Encoding()
6363
{
64-
primitiveType = null;
6564
presence = Presence.REQUIRED;
65+
primitiveType = null;
6666
byteOrder = ByteOrder.LITTLE_ENDIAN;
6767
minValue = null;
6868
maxValue = null;
@@ -75,8 +75,8 @@ public Encoding()
7575
}
7676

7777
public Encoding(
78-
final PrimitiveType primitiveType,
7978
final Presence presence,
79+
final PrimitiveType primitiveType,
8080
final ByteOrder byteOrder,
8181
final PrimitiveValue minValue,
8282
final PrimitiveValue maxValue,
@@ -173,6 +173,16 @@ public Presence presence()
173173
return presence;
174174
}
175175

176+
/**
177+
* Set the {@link Presence} for this encoding.
178+
*
179+
* @param presence the {@link Presence} for this encoding.
180+
*/
181+
public void presence(final Presence presence)
182+
{
183+
this.presence = presence;
184+
}
185+
176186
/**
177187
* The most applicable null value for the encoded type.
178188
*
@@ -263,8 +273,8 @@ public String toString()
263273
{
264274
return
265275
"Encoding{" +
266-
"primitiveType=" + primitiveType +
267-
", presence=" + presence +
276+
"presence=" + presence +
277+
", primitiveType=" + primitiveType +
268278
", byteOrder=" + byteOrder +
269279
", minValue=" + minValue +
270280
", maxValue=" + maxValue +
@@ -363,8 +373,7 @@ public Builder semanticType(final String semanticType)
363373
public Encoding build()
364374
{
365375
return new Encoding(
366-
primitiveType,
367-
presence,
376+
presence, primitiveType,
368377
byteOrder,
369378
minValue,
370379
maxValue,

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,18 @@ private void compressConstantEnums(final List<Token> tokens)
109109
nextToken = iter.next();
110110
if (Signal.END_ENUM == nextToken.signal())
111111
{
112+
nextToken.encoding().presence(Encoding.Presence.CONSTANT);
112113
break;
113114
}
114115

115116
if (!valueRef.endsWith(nextToken.name()))
116117
{
117118
iter.remove();
118119
}
120+
else
121+
{
122+
nextToken.encoding().presence(Encoding.Presence.CONSTANT);
123+
}
119124
}
120125
}
121126
}

sbe-tool/src/test/resources/code-generation-schema.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
<field name="vehicleCode" id="6" type="VehicleCode"/>
5757
<field name="extras" id="5" type="OptionalExtras"/>
5858
<field name="engine" id="7" type="Engine"/>
59-
<field name="commonModel" id="8" type="Model" presence="constant" valueRef="Model.C"/>
59+
<field name="discountedModel" id="8" type="Model" presence="constant" valueRef="Model.C"/>
6060
<group name="fuelFigures" id="9" dimensionType="groupSizeEncoding">
6161
<field name="speed" id="10" type="uint16"/>
6262
<field name="mpg" id="11" type="float"/>

0 commit comments

Comments
 (0)