@@ -171,6 +171,7 @@ public void generate() throws IOException
171171 {
172172 final Token msgToken = tokens .get (0 );
173173 final List <Token > messageBody = getMessageBody (tokens );
174+ final boolean hasVarData = -1 != findSignal (messageBody , Signal .BEGIN_VAR_DATA );
174175
175176 int i = 0 ;
176177 final List <Token > fields = new ArrayList <>();
@@ -182,21 +183,25 @@ public void generate() throws IOException
182183 final List <Token > varData = new ArrayList <>();
183184 collectVarData (messageBody , i , varData );
184185
185- generateDecoder (fields , groups , varData , msgToken );
186- generateEncoder (fields , groups , varData , msgToken );
186+ generateDecoder (msgToken , fields , groups , varData , hasVarData );
187+ generateEncoder (msgToken , fields , groups , varData , hasVarData );
187188 }
188189 }
189190
190191 private void generateEncoder (
191- final List <Token > fields , final List <Token > groups , final List <Token > varData , final Token msgToken )
192+ final Token msgToken ,
193+ final List <Token > fields ,
194+ final List <Token > groups ,
195+ final List <Token > varData ,
196+ final boolean hasVarData )
192197 throws IOException
193198 {
194199 final String className = formatClassName (encoderName (msgToken .name ()));
195200 final String implementsString = implementsInterface (MessageEncoderFlyweight .class .getSimpleName ());
196201
197202 try (Writer out = outputManager .createOutput (className ))
198203 {
199- out .append (generateMainHeader (ir .applicableNamespace (), ENCODER , ! varData . isEmpty () ));
204+ out .append (generateMainHeader (ir .applicableNamespace (), ENCODER , hasVarData ));
200205
201206 generateAnnotations (BASE_INDENT , className , groups , out , 0 , this ::encoderName );
202207 out .append (generateDeclaration (className , implementsString , msgToken ));
@@ -215,15 +220,19 @@ private void generateEncoder(
215220 }
216221
217222 private void generateDecoder (
218- final List <Token > fields , final List <Token > groups , final List <Token > varData , final Token msgToken )
223+ final Token msgToken ,
224+ final List <Token > fields ,
225+ final List <Token > groups ,
226+ final List <Token > varData ,
227+ final boolean hasVarData )
219228 throws IOException
220229 {
221230 final String className = formatClassName (decoderName (msgToken .name ()));
222231 final String implementsString = implementsInterface (MessageDecoderFlyweight .class .getSimpleName ());
223232
224233 try (Writer out = outputManager .createOutput (className ))
225234 {
226- out .append (generateMainHeader (ir .applicableNamespace (), DECODER , ! varData . isEmpty () ));
235+ out .append (generateMainHeader (ir .applicableNamespace (), DECODER , hasVarData ));
227236
228237 generateAnnotations (BASE_INDENT , className , groups , out , 0 , this ::decoderName );
229238 out .append (generateDeclaration (className , implementsString , msgToken ));
0 commit comments