Skip to content

Commit

Permalink
[C++] Don't generate id methods when in a composite. Issue #640.
Browse files Browse the repository at this point in the history
  • Loading branch information
mjpt777 committed Feb 5, 2019
1 parent c60ac3f commit 6314e29
Showing 1 changed file with 18 additions and 13 deletions.
Expand Up @@ -132,7 +132,7 @@ public void generate() throws IOException
collectVarData(messageBody, i, varData);

final StringBuilder sb = new StringBuilder();
out.append(generateFields(className, fields, BASE_INDENT));
out.append(generateFields(className, fields, BASE_INDENT, false));
generateGroups(sb, groups, BASE_INDENT);
out.append(sb);
out.append(generateVarData(className, varData, BASE_INDENT));
Expand Down Expand Up @@ -164,7 +164,7 @@ private void generateGroups(final StringBuilder sb, final List<Token> tokens, fi

final List<Token> fields = new ArrayList<>();
i = collectFields(tokens, i, fields);
sb.append(generateFields(formatClassName(groupName), fields, indent + INDENT));
sb.append(generateFields(formatClassName(groupName), fields, indent + INDENT, false));

final List<Token> groups = new ArrayList<>();
i = collectGroups(tokens, i, groups);
Expand Down Expand Up @@ -976,7 +976,7 @@ private CharSequence generateCompositePropertyElements(
final String propertyName = formatPropertyName(fieldToken.name());

generateFieldMetaAttributeMethod(sb, fieldToken, indent);
generateFieldCommonMethods(indent, sb, fieldToken, fieldToken, propertyName);
generateFieldCommonMethods(indent, sb, fieldToken, fieldToken, propertyName, true);

switch (fieldToken.signal())
{
Expand Down Expand Up @@ -1669,7 +1669,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final
generateConstructorsAndOperators(className));
}

private CharSequence generateFields(final String containingClassName, final List<Token> tokens, final String indent)
private CharSequence generateFields(
final String containingClassName, final List<Token> tokens, final String indent, final boolean inComposite)
{
final StringBuilder sb = new StringBuilder();

Expand All @@ -1682,7 +1683,7 @@ private CharSequence generateFields(final String containingClassName, final List
final String propertyName = formatPropertyName(signalToken.name());

generateFieldMetaAttributeMethod(sb, signalToken, indent);
generateFieldCommonMethods(indent, sb, signalToken, encodingToken, propertyName);
generateFieldCommonMethods(indent, sb, signalToken, encodingToken, propertyName, inComposite);

switch (encodingToken.signal())
{
Expand Down Expand Up @@ -1714,15 +1715,19 @@ private void generateFieldCommonMethods(
final StringBuilder sb,
final Token fieldToken,
final Token encodingToken,
final String propertyName)
final String propertyName,
final boolean inComposite)
{
sb.append(String.format("\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n",
propertyName,
fieldToken.id()));
if (!inComposite)
{
sb.append(String.format("\n" +
indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " return %2$d;\n" +
indent + " }\n",
propertyName,
fieldToken.id()));
}

sb.append(String.format("\n" +
indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion() SBE_NOEXCEPT\n" +
Expand Down

1 comment on commit 6314e29

@tmontgomery
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mjpt777 Think you meant #641 and not #640

Please sign in to comment.