generateAnnotations(indent + INDENT, groupClassName, tokens, sb, groupIndex + 1, this::encoderName); generateGroupEncoderClassHeader(sb, groupName, outerClassName, tokens, groups, groupIndex, indent + INDENT);
generateAnnotations(indent + INDENT, groupName, tokens, sb, groupIndex + 1, this::decoderName); generateGroupDecoderClassHeader(sb, groupName, outerClassName, tokens, groups, groupIndex, indent + INDENT);
private void generateDecoder( final String indent, final List<Token> fields, final List<Token> groups, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(decoderName(msgToken.name())); final String implementsString = implementsInterface(MESSAGE_DECODER_FLYWEIGHT); try (Writer out = outputManager.createOutput(className)) { out.append(generateMainHeader(ir.applicableNamespace())); generateAnnotations(indent, className, groups, out, 0, this::decoderName); out.append(generateDeclaration(className, implementsString, msgToken)); out.append(generateDecoderFlyweightCode(className, msgToken)); out.append(generateDecoderFields(fields, indent)); final StringBuilder sb = new StringBuilder(); generateDecoderGroups(sb, className, groups, indent, false); out.append(sb); out.append(generateDecoderVarData(varData, indent)); out.append(generateDecoderDisplay(msgToken.name(), fields, groups, varData, indent)); out.append("}\n"); } }
private void generateEncoder( final String indent, final List<Token> fields, final List<Token> groups, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(encoderName(msgToken.name())); final String implementsString = implementsInterface(MESSAGE_ENCODER_FLYWEIGHT); try (Writer out = outputManager.createOutput(className)) { out.append(generateMainHeader(ir.applicableNamespace())); generateAnnotations(indent, className, groups, out, 0, this::encoderName); out.append(generateDeclaration(className, implementsString, msgToken)); out.append(generateEncoderFlyweightCode(className, msgToken)); out.append(generateEncoderFields(className, fields, indent)); final StringBuilder sb = new StringBuilder(); generateEncoderGroups(sb, className, groups, indent, false); out.append(sb); out.append(generateEncoderVarData(className, varData, indent)); out.append(generateEncoderDisplay(formatClassName(decoderName(msgToken.name())), indent)); out.append("}\n"); } }
private void generateEncoder( final List<Token> groups, final List<Token> rootFields, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(encoderName(msgToken.name())); try (final Writer out = outputManager.createOutput(className)) { out.append(generateFileHeader(ir.applicableNamespace(), fullMutableBuffer)); generateAnnotations(className, groups, out, 0, this::encoderName); out.append(generateClassDeclaration(className)); out.append(generateEncoderFlyweightCode(className, msgToken)); out.append(generateEncoderFields(className, rootFields, BASE_INDENT)); final StringBuilder sb = new StringBuilder(); generateEncoderGroups(sb, className, groups, 0, BASE_INDENT); out.append(sb); out.append(generateVarDataEncoders(className, varData)); out.append("}\n"); } }
private void generateDecoder( final List<Token> groups, final List<Token> rootFields, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(decoderName(msgToken.name())); try (final Writer out = outputManager.createOutput(className)) { out.append(generateFileHeader(ir.applicableNamespace(), fullReadOnlyBuffer)); generateAnnotations(className, groups, out, 0, this::decoderName); out.append(generateClassDeclaration(className)); out.append(generateDecoderFlyweightCode(className, msgToken)); out.append(generateDecoderFields(rootFields, BASE_INDENT)); final StringBuilder sb = new StringBuilder(); generateDecoderGroups(sb, className, groups, 0, BASE_INDENT); out.append(sb); out.append(generateVarDataDecoders(varData)); out.append("}\n"); } }
generateAnnotations(indent + INDENT, groupName, tokens, sb, groupIndex + 1, this::decoderName); generateGroupDecoderClassHeader(sb, groupName, outerClassName, tokens, groups, groupIndex, indent + INDENT);
private int generateEncoderGroups( final StringBuilder sb, final String parentMessageClassName, final List<Token> tokens, int index, final String indent) throws IOException { for (int size = tokens.size(); index < size; index++) { final Token groupToken = tokens.get(index); if (groupToken.signal() == Signal.BEGIN_GROUP) { final String groupName = groupToken.name(); final String groupClassName = formatClassName(encoderName(groupName)); sb.append(generateGroupEncoderProperty(groupName, groupToken, indent)); generateAnnotations(groupClassName, tokens, sb, index + 1, this::encoderName); generateGroupEncoderClassHeader(sb, groupName, parentMessageClassName, tokens, index, indent + INDENT); final List<Token> rootFields = new ArrayList<>(); index = collectRootFields(tokens, ++index, rootFields); sb.append(generateEncoderFields(groupClassName, rootFields, indent + INDENT)); if (tokens.get(index).signal() == Signal.BEGIN_GROUP) { index = generateEncoderGroups(sb, parentMessageClassName, tokens, index, indent + INDENT); } sb.append(indent).append(" }\n"); } } return index; }
private int generateDecoderGroups( final StringBuilder sb, final String parentMessageClassName, final List<Token> tokens, int index, final String indent) throws IOException { for (int size = tokens.size(); index < size; index++) { final Token groupToken = tokens.get(index); if (groupToken.signal() == Signal.BEGIN_GROUP) { final String groupName = decoderName(formatClassName(groupToken.name())); sb.append(generateGroupDecoderProperty(groupName, groupToken, indent)); generateAnnotations(groupName, tokens, sb, index + 1, this::decoderName); generateGroupDecoderClassHeader(sb, groupName, parentMessageClassName, tokens, index, indent + INDENT); final List<Token> rootFields = new ArrayList<>(); index = collectRootFields(tokens, ++index, rootFields); sb.append(generateDecoderFields(rootFields, indent + INDENT)); if (tokens.get(index).signal() == Signal.BEGIN_GROUP) { index = generateDecoderGroups(sb, parentMessageClassName, tokens, index, indent + INDENT); } sb.append(indent).append(" }\n"); } } return index; }
generateAnnotations(indent + INDENT, groupClassName, tokens, sb, groupIndex + 1, this::encoderName); generateGroupEncoderClassHeader(sb, groupName, outerClassName, tokens, groups, groupIndex, indent + INDENT);
generateAnnotations(indent + INDENT, groupName, tokens, sb, groupIndex + 1, this::decoderName); generateGroupDecoderClassHeader(sb, groupName, outerClassName, tokens, groups, groupIndex, indent + INDENT);
generateAnnotations(indent + INDENT, groupClassName, tokens, sb, groupIndex + 1, this::encoderName); generateGroupEncoderClassHeader(sb, groupName, outerClassName, tokens, groups, groupIndex, indent + INDENT);
private void generateDecoder( final String indent, final List<Token> fields, final List<Token> groups, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(decoderName(msgToken.name())); final String implementsString = implementsInterface(MESSAGE_DECODER_FLYWEIGHT); try (Writer out = outputManager.createOutput(className)) { out.append(generateMainHeader(ir.applicableNamespace())); generateAnnotations(indent, className, groups, out, 0, this::decoderName); out.append(generateDeclaration(className, implementsString, msgToken)); out.append(generateDecoderFlyweightCode(className, msgToken)); out.append(generateDecoderFields(fields, indent)); final StringBuilder sb = new StringBuilder(); generateDecoderGroups(sb, className, groups, indent, false); out.append(sb); out.append(generateDecoderVarData(varData, indent)); out.append(generateDecoderDisplay(msgToken.name(), fields, groups, varData, indent)); out.append("}\n"); } }
private void generateDecoder( final String indent, final List<Token> fields, final List<Token> groups, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(decoderName(msgToken.name())); final String implementsString = implementsInterface(MESSAGE_DECODER_FLYWEIGHT); try (Writer out = outputManager.createOutput(className)) { out.append(generateMainHeader(ir.applicableNamespace())); generateAnnotations(indent, className, groups, out, 0, this::decoderName); out.append(generateDeclaration(className, implementsString, msgToken)); out.append(generateDecoderFlyweightCode(className, msgToken)); out.append(generateDecoderFields(fields, indent)); final StringBuilder sb = new StringBuilder(); generateDecoderGroups(sb, className, groups, indent, false); out.append(sb); out.append(generateDecoderVarData(varData, indent)); out.append(generateDecoderDisplay(msgToken.name(), fields, groups, varData, indent)); out.append("}\n"); } }
private void generateEncoder( final String indent, final List<Token> fields, final List<Token> groups, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(encoderName(msgToken.name())); final String implementsString = implementsInterface(MESSAGE_ENCODER_FLYWEIGHT); try (Writer out = outputManager.createOutput(className)) { out.append(generateMainHeader(ir.applicableNamespace())); generateAnnotations(indent, className, groups, out, 0, this::encoderName); out.append(generateDeclaration(className, implementsString, msgToken)); out.append(generateEncoderFlyweightCode(className, msgToken)); out.append(generateEncoderFields(className, fields, indent)); final StringBuilder sb = new StringBuilder(); generateEncoderGroups(sb, className, groups, indent, false); out.append(sb); out.append(generateEncoderVarData(className, varData, indent)); out.append(generateEncoderDisplay(formatClassName(decoderName(msgToken.name())), indent)); out.append("}\n"); } }
private void generateEncoder( final String indent, final List<Token> fields, final List<Token> groups, final List<Token> varData, final Token msgToken) throws IOException { final String className = formatClassName(encoderName(msgToken.name())); final String implementsString = implementsInterface(MESSAGE_ENCODER_FLYWEIGHT); try (Writer out = outputManager.createOutput(className)) { out.append(generateMainHeader(ir.applicableNamespace())); generateAnnotations(indent, className, groups, out, 0, this::encoderName); out.append(generateDeclaration(className, implementsString, msgToken)); out.append(generateEncoderFlyweightCode(className, msgToken)); out.append(generateEncoderFields(className, fields, indent)); final StringBuilder sb = new StringBuilder(); generateEncoderGroups(sb, className, groups, indent, false); out.append(sb); out.append(generateEncoderVarData(className, varData, indent)); out.append(generateEncoderDisplay(formatClassName(decoderName(msgToken.name())), indent)); out.append("}\n"); } }