Skip to content

Commit f7b11ac

Browse files
committed
[Java] Simplify JavaCodeGenerator.
1 parent 567e716 commit f7b11ac

File tree

1 file changed

+24
-31
lines changed

1 file changed

+24
-31
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ private void generateEncoder(
207207
out.append(generateMainHeader(className, ir.applicableNamespace()));
208208

209209
generateAnnotations(indent, className, groups, out, 0, this::encoderName);
210-
out.append(generateDeclaration("class", className, implementsString));
210+
out.append(generateDeclaration(className, implementsString));
211211
out.append(generateEncoderFlyweightCode(className, msgToken));
212212
out.append(generateEncoderFields(className, fields, indent));
213213

@@ -238,7 +238,7 @@ private void generateDecoder(
238238
out.append(generateMainHeader(className, ir.applicableNamespace()));
239239

240240
generateAnnotations(indent, className, groups, out, 0, this::decoderName);
241-
out.append(generateDeclaration("class", className, implementsString));
241+
out.append(generateDeclaration(className, implementsString));
242242
out.append(generateDecoderFlyweightCode(className, msgToken));
243243
out.append(generateDecoderFields(fields, indent));
244244

@@ -972,8 +972,8 @@ private void generateFixedFlyweightHeader(
972972
final String implementsString) throws IOException
973973
{
974974
out.append(generateFileHeader(encoderName, ir.applicableNamespace(), fqBuffer));
975-
out.append(generateDeclaration("class", encoderName, implementsString));
976-
out.append(generateFixedFlyweightCode(encoderName, token.encodedLength(), false, buffer));
975+
out.append(generateDeclaration(encoderName, implementsString));
976+
out.append(generateFixedFlyweightCode(encoderName, token.encodedLength(), buffer));
977977
}
978978

979979
private void generateEnum(final List<Token> tokens) throws IOException
@@ -1132,7 +1132,7 @@ private CharSequence generateChoiceDecoders(final List<Token> tokens)
11321132
" return %s;\n" +
11331133
" }\n",
11341134
choiceName,
1135-
generateChoiceGet(encoding.primitiveType(), "offset", choiceBitIndex, byteOrderStr)
1135+
generateChoiceGet(encoding.primitiveType(), choiceBitIndex, byteOrderStr)
11361136
);
11371137
});
11381138
}
@@ -1158,7 +1158,7 @@ private CharSequence generateChoiceEncoders(final String bitSetClassName, final
11581158
" }\n",
11591159
bitSetClassName,
11601160
choiceName,
1161-
generateChoicePut(encoding.primitiveType(), "offset", choiceBitIndex, byteOrderStr));
1161+
generateChoicePut(encoding.primitiveType(), choiceBitIndex, byteOrderStr));
11621162
});
11631163
}
11641164

@@ -1362,14 +1362,12 @@ else if (tokens.get(index).signal() == Signal.END_GROUP && --level < 0)
13621362
}
13631363
}
13641364

1365-
private static CharSequence generateDeclaration(
1366-
final String classType, final String className, final String implementsString)
1365+
private static CharSequence generateDeclaration(final String className, final String implementsString)
13671366
{
13681367
return String.format(
13691368
"@SuppressWarnings(\"all\")\n" +
1370-
"public %s %s%s\n" +
1369+
"public class %s%s\n" +
13711370
"{\n",
1372-
classType,
13731371
className,
13741372
implementsString);
13751373
}
@@ -1859,19 +1857,15 @@ private static CharSequence generateByteLiteralList(final byte[] bytes)
18591857
}
18601858

18611859
private static CharSequence generateFixedFlyweightCode(
1862-
final String className, final int size, final boolean callsSuper, final String bufferImplementation)
1860+
final String className, final int size, final String bufferImplementation)
18631861
{
1864-
final String body = callsSuper ?
1865-
" super.wrap(buffer, offset);\n" : "";
1866-
18671862
return String.format(
18681863
" public static final int ENCODED_LENGTH = %2$d;\n" +
18691864
" private %3$s buffer;\n" +
18701865
" private int offset;\n\n" +
18711866
" public %1$s wrap(final %3$s buffer, final int offset)\n" +
18721867
" {\n" +
18731868
" this.buffer = buffer;\n" +
1874-
"%4$s" +
18751869
" this.offset = offset;\n\n" +
18761870
" return this;\n" +
18771871
" }\n\n" +
@@ -1889,8 +1883,7 @@ private static CharSequence generateFixedFlyweightCode(
18891883
" }\n",
18901884
className,
18911885
size,
1892-
bufferImplementation,
1893-
body);
1886+
bufferImplementation);
18941887
}
18951888

18961889
private CharSequence generateDecoderFlyweightCode(final String className, final Token token)
@@ -2411,54 +2404,54 @@ private String generatePut(final PrimitiveType type, final String index, final S
24112404
throw new IllegalArgumentException("primitive type not supported: " + type);
24122405
}
24132406

2414-
private String generateChoiceGet(final PrimitiveType type, final String index, final String bitIndex, final String byteOrder)
2407+
private String generateChoiceGet(final PrimitiveType type, final String bitIndex, final String byteOrder)
24152408
{
24162409
switch (type)
24172410
{
24182411
case UINT8:
2419-
return "0 != (buffer.getByte(" + index + ") & (1 << " + bitIndex + "))";
2412+
return "0 != (buffer.getByte(offset) & (1 << " + bitIndex + "))";
24202413

24212414
case UINT16:
2422-
return "0 != (buffer.getShort(" + index + byteOrder + ") & (1 << " + bitIndex + "))";
2415+
return "0 != (buffer.getShort(offset" + byteOrder + ") & (1 << " + bitIndex + "))";
24232416

24242417
case UINT32:
2425-
return "0 != (buffer.getInt(" + index + byteOrder + ") & (1 << " + bitIndex + "))";
2418+
return "0 != (buffer.getInt(offset" + byteOrder + ") & (1 << " + bitIndex + "))";
24262419

24272420
case UINT64:
2428-
return "0 != (buffer.getLong(" + index + byteOrder + ") & (1L << " + bitIndex + "))";
2421+
return "0 != (buffer.getLong(offset" + byteOrder + ") & (1L << " + bitIndex + "))";
24292422
}
24302423

24312424
throw new IllegalArgumentException("primitive type not supported: " + type);
24322425
}
24332426

24342427
private String generateChoicePut(
2435-
final PrimitiveType type, final String index, final String bitIndex, final String byteOrder)
2428+
final PrimitiveType type, final String bitIndex, final String byteOrder)
24362429
{
24372430
switch (type)
24382431
{
24392432
case UINT8:
24402433
return
2441-
" byte bits = buffer.getByte(" + index + ");\n" +
2434+
" byte bits = buffer.getByte(offset);\n" +
24422435
" bits = (byte)(value ? bits | (1 << " + bitIndex + ") : bits & ~(1 << " + bitIndex + "));\n" +
2443-
" buffer.putByte(" + index + ", bits);";
2436+
" buffer.putByte(offset, bits);";
24442437

24452438
case UINT16:
24462439
return
2447-
" short bits = buffer.getShort(" + index + byteOrder + ");\n" +
2440+
" short bits = buffer.getShort(offset" + byteOrder + ");\n" +
24482441
" bits = (short)(value ? bits | (1 << " + bitIndex + ") : bits & ~(1 << " + bitIndex + "));\n" +
2449-
" buffer.putShort(" + index + ", bits" + byteOrder + ");";
2442+
" buffer.putShort(offset, bits" + byteOrder + ");";
24502443

24512444
case UINT32:
24522445
return
2453-
" int bits = buffer.getInt(" + index + byteOrder + ");\n" +
2446+
" int bits = buffer.getInt(offset" + byteOrder + ");\n" +
24542447
" bits = value ? bits | (1 << " + bitIndex + ") : bits & ~(1 << " + bitIndex + ");\n" +
2455-
" buffer.putInt(" + index + ", bits" + byteOrder + ");";
2448+
" buffer.putInt(offset, bits" + byteOrder + ");";
24562449

24572450
case UINT64:
24582451
return
2459-
" long bits = buffer.getLong(" + index + byteOrder + ");\n" +
2452+
" long bits = buffer.getLong(offset" + byteOrder + ");\n" +
24602453
" bits = value ? bits | (1L << " + bitIndex + ") : bits & ~(1L << " + bitIndex + ");\n" +
2461-
" buffer.putLong(" + index + ", bits" + byteOrder + ");";
2454+
" buffer.putLong(offset, bits" + byteOrder + ");";
24622455
}
24632456

24642457
throw new IllegalArgumentException("primitive type not supported: " + type);

0 commit comments

Comments
 (0)