@@ -132,7 +132,7 @@ public void generate() throws IOException
132132 collectVarData (messageBody , i , varData );
133133
134134 final StringBuilder sb = new StringBuilder ();
135- out .append (generateFields (className , fields , BASE_INDENT ));
135+ out .append (generateFields (className , fields , BASE_INDENT , false ));
136136 generateGroups (sb , groups , BASE_INDENT );
137137 out .append (sb );
138138 out .append (generateVarData (className , varData , BASE_INDENT ));
@@ -164,7 +164,7 @@ private void generateGroups(final StringBuilder sb, final List<Token> tokens, fi
164164
165165 final List <Token > fields = new ArrayList <>();
166166 i = collectFields (tokens , i , fields );
167- sb .append (generateFields (formatClassName (groupName ), fields , indent + INDENT ));
167+ sb .append (generateFields (formatClassName (groupName ), fields , indent + INDENT , false ));
168168
169169 final List <Token > groups = new ArrayList <>();
170170 i = collectGroups (tokens , i , groups );
@@ -976,7 +976,7 @@ private CharSequence generateCompositePropertyElements(
976976 final String propertyName = formatPropertyName (fieldToken .name ());
977977
978978 generateFieldMetaAttributeMethod (sb , fieldToken , indent );
979- generateFieldCommonMethods (indent , sb , fieldToken , fieldToken , propertyName );
979+ generateFieldCommonMethods (indent , sb , fieldToken , fieldToken , propertyName , true );
980980
981981 switch (fieldToken .signal ())
982982 {
@@ -1669,7 +1669,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final
16691669 generateConstructorsAndOperators (className ));
16701670 }
16711671
1672- private CharSequence generateFields (final String containingClassName , final List <Token > tokens , final String indent )
1672+ private CharSequence generateFields (
1673+ final String containingClassName , final List <Token > tokens , final String indent , final boolean inComposite )
16731674 {
16741675 final StringBuilder sb = new StringBuilder ();
16751676
@@ -1682,7 +1683,7 @@ private CharSequence generateFields(final String containingClassName, final List
16821683 final String propertyName = formatPropertyName (signalToken .name ());
16831684
16841685 generateFieldMetaAttributeMethod (sb , signalToken , indent );
1685- generateFieldCommonMethods (indent , sb , signalToken , encodingToken , propertyName );
1686+ generateFieldCommonMethods (indent , sb , signalToken , encodingToken , propertyName , inComposite );
16861687
16871688 switch (encodingToken .signal ())
16881689 {
@@ -1714,15 +1715,19 @@ private void generateFieldCommonMethods(
17141715 final StringBuilder sb ,
17151716 final Token fieldToken ,
17161717 final Token encodingToken ,
1717- final String propertyName )
1718+ final String propertyName ,
1719+ final boolean inComposite )
17181720 {
1719- sb .append (String .format ("\n " +
1720- indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n " +
1721- indent + " {\n " +
1722- indent + " return %2$d;\n " +
1723- indent + " }\n " ,
1724- propertyName ,
1725- fieldToken .id ()));
1721+ if (!inComposite )
1722+ {
1723+ sb .append (String .format ("\n " +
1724+ indent + " static SBE_CONSTEXPR std::uint16_t %1$sId() SBE_NOEXCEPT\n " +
1725+ indent + " {\n " +
1726+ indent + " return %2$d;\n " +
1727+ indent + " }\n " ,
1728+ propertyName ,
1729+ fieldToken .id ()));
1730+ }
17261731
17271732 sb .append (String .format ("\n " +
17281733 indent + " static SBE_CONSTEXPR std::uint64_t %1$sSinceVersion() SBE_NOEXCEPT\n " +
0 commit comments