private void generateComposite(final List<Token> tokens) throws IOException
{
final Token token = tokens.get(0);
final String compositeName = formatClassName(token.name());
final String decoderName = decoderName(compositeName);
final String encoderName = encoderName(compositeName);
final List<Token> messageBody = getMessageBody(tokens);
try (final Writer out = outputManager.createOutput(decoderName))
{
generateFixedFlyweightHeader(token, decoderName, out, readOnlyBuffer, fullReadOnlyBuffer);
out.append(concatEncodingTokens(messageBody,
(tok) -> generatePrimitiveDecoder(tok.name(), tok, BASE_INDENT)));
out.append("}\n");
}
try (final Writer out = outputManager.createOutput(encoderName))
{
generateFixedFlyweightHeader(token, encoderName, out, mutableBuffer, fullMutableBuffer);
out.append(concatEncodingTokens(messageBody,
(tok) -> generatePrimitiveEncoder(encoderName, tok.name(), tok, BASE_INDENT)));
out.append("}\n");
}
}