@@ -171,6 +171,7 @@ public void generate() throws IOException
171
171
{
172
172
final Token msgToken = tokens .get (0 );
173
173
final List <Token > messageBody = getMessageBody (tokens );
174
+ final boolean hasVarData = -1 != findSignal (messageBody , Signal .BEGIN_VAR_DATA );
174
175
175
176
int i = 0 ;
176
177
final List <Token > fields = new ArrayList <>();
@@ -182,21 +183,25 @@ public void generate() throws IOException
182
183
final List <Token > varData = new ArrayList <>();
183
184
collectVarData (messageBody , i , varData );
184
185
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 );
187
188
}
188
189
}
189
190
190
191
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 )
192
197
throws IOException
193
198
{
194
199
final String className = formatClassName (encoderName (msgToken .name ()));
195
200
final String implementsString = implementsInterface (MessageEncoderFlyweight .class .getSimpleName ());
196
201
197
202
try (Writer out = outputManager .createOutput (className ))
198
203
{
199
- out .append (generateMainHeader (ir .applicableNamespace (), ENCODER , ! varData . isEmpty () ));
204
+ out .append (generateMainHeader (ir .applicableNamespace (), ENCODER , hasVarData ));
200
205
201
206
generateAnnotations (BASE_INDENT , className , groups , out , 0 , this ::encoderName );
202
207
out .append (generateDeclaration (className , implementsString , msgToken ));
@@ -215,15 +220,19 @@ private void generateEncoder(
215
220
}
216
221
217
222
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 )
219
228
throws IOException
220
229
{
221
230
final String className = formatClassName (decoderName (msgToken .name ()));
222
231
final String implementsString = implementsInterface (MessageDecoderFlyweight .class .getSimpleName ());
223
232
224
233
try (Writer out = outputManager .createOutput (className ))
225
234
{
226
- out .append (generateMainHeader (ir .applicableNamespace (), DECODER , ! varData . isEmpty () ));
235
+ out .append (generateMainHeader (ir .applicableNamespace (), DECODER , hasVarData ));
227
236
228
237
generateAnnotations (BASE_INDENT , className , groups , out , 0 , this ::decoderName );
229
238
out .append (generateDeclaration (className , implementsString , msgToken ));
0 commit comments