Skip to content

Commit 56a323f

Browse files
committed
[Java] Added sinceVersion metadata accessor methods to generated decoders.
1 parent e0c6983 commit 56a323f

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,15 @@ private static CharSequence generateGroupDecoderProperty(final String groupName,
572572
formatPropertyName(groupName),
573573
token.id()));
574574

575+
sb.append(String.format(
576+
"\n" +
577+
indent + " public static int %sSinceVersion()\n" +
578+
indent + " {\n" +
579+
indent + " return %d;\n" +
580+
indent + " }\n",
581+
formatPropertyName(groupName),
582+
token.version()));
583+
575584
sb.append(String.format(
576585
"\n" +
577586
indent + " public %1$s %2$s()\n" +
@@ -633,6 +642,8 @@ private CharSequence generateDecoderVarData(final List<Token> tokens, final Stri
633642
}
634643

635644
generateFieldIdMethod(sb, token, indent);
645+
generateFieldSinceVersionMethod(sb, token, indent);
646+
636647
final String characterEncoding = tokens.get(i + 3).encoding().characterEncoding();
637648
generateCharacterEncodingMethod(sb, token.name(), characterEncoding, indent);
638649
generateFieldMetaAttributeMethod(sb, token, indent);
@@ -1946,6 +1957,7 @@ private CharSequence generateDecoderFields(final List<Token> tokens, final Strin
19461957
final String typeName = decoderName(formatClassName(typeToken.name()));
19471958

19481959
generateFieldIdMethod(sb, fieldToken, indent);
1960+
generateFieldSinceVersionMethod(sb, fieldToken, indent);
19491961
generateFieldMetaAttributeMethod(sb, fieldToken, indent);
19501962

19511963
switch (typeToken.signal())
@@ -2001,6 +2013,18 @@ private static void generateFieldIdMethod(final StringBuilder sb, final Token to
20012013
token.id()));
20022014
}
20032015

2016+
private static void generateFieldSinceVersionMethod(final StringBuilder sb, final Token token, final String indent)
2017+
{
2018+
sb.append(String.format(
2019+
"\n" +
2020+
indent + " public static int %sSinceVersion()\n" +
2021+
indent + " {\n" +
2022+
indent + " return %d;\n" +
2023+
indent + " }\n",
2024+
formatPropertyName(token.name()),
2025+
token.version()));
2026+
}
2027+
20042028
private static void generateFieldMetaAttributeMethod(final StringBuilder sb, final Token token, final String indent)
20052029
{
20062030
final Encoding encoding = token.encoding();

0 commit comments

Comments
 (0)