Skip to content

Commit ac2840e

Browse files
committed
support method getVarFieldName for UTF similar to Ascii.
1 parent 50e902a commit ac2840e

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,28 @@ private void generateDataDecodeMethods(
904904
generateGet(lengthType, "limit", byteOrderStr),
905905
byteOrderStr);
906906
}
907+
if (characterEncoding.contains("UTF8"))
908+
{
909+
new Formatter(sb).format("\n" +
910+
indent + " public int get%1$s(final Appendable appendable)\n" +
911+
indent + " {\n" +
912+
"%2$s" +
913+
indent + " final int headerLength = %3$d;\n" +
914+
indent + " final int limit = parentMessage.limit();\n" +
915+
indent + " final int dataLength = (int)%4$s;\n" +
916+
indent + " final int dataOffset = limit + headerLength;\n\n" +
917+
indent + " parentMessage.limit(dataOffset + dataLength);\n" +
918+
indent + " appendable.append(buffer.getStringWithoutLengthUtf8(dataOffset, dataLength));\n\n" +
919+
//TODO: wait for signature below, similar to getStringWithoutLengthAscii(offset,length,appendable)
920+
indent + " //buffer.getStringWithoutLengthUtf8(dataOffset, dataLength, appendable);\n\n" +
921+
indent + " return dataLength;\n" +
922+
indent + " }\n",
923+
Generators.toUpperFirstChar(propertyName),
924+
generateStringNotPresentConditionForAppendable(token.version(), indent),
925+
sizeOfLengthField,
926+
generateGet(lengthType, "limit", byteOrderStr),
927+
byteOrderStr);
928+
}
907929
}
908930
}
909931

0 commit comments

Comments
 (0)