public void generateFileFromTemplate(final String fileName, final String templateName) throws IOException { try (Writer out = outputManager.createOutput(fileName)) { out.append(generateFromTemplate(ir.namespaces(), templateName)); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.namespaces(), enumName, null)); out.append(generateEnumDeclaration(enumName)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(generateEnumLookupMethod(tokens.subList(1, tokens.size() - 1), enumToken)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.namespaces(), compositeName, generateTypesToIncludes(tokens.subList(1, tokens.size() - 1)))); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(compositeName, tokens.get(0).encodedLength())); out.append(generateCompositePropertyElements( compositeName, tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
public void generateMessageHeaderStub() throws IOException { final String messageHeader = "MessageHeader"; try (Writer out = outputManager.createOutput(messageHeader)) { final StringBuilder sb = new StringBuilder(); final List<Token> tokens = ir.headerStructure().tokens(); imports = new TreeSet<>(); imports.add("io"); generateTypeDeclaration(sb, messageHeader); generateTypeBodyComposite(sb, messageHeader, tokens.subList(1, tokens.size() - 1)); generateEncodeDecode(sb, messageHeader, tokens.subList(1, tokens.size() - 1), false, false); generateCompositePropertyElements(sb, messageHeader, tokens.subList(1, tokens.size() - 1)); out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }
private void generateComposite(final List<Token> tokens, final String namePrefix) throws IOException { final String compositeName = namePrefix + formatTypeName(tokens.get(0).applicableTypeName()); final StringBuilder sb = new StringBuilder(); try (Writer out = outputManager.createOutput(compositeName)) { imports = new TreeSet<>(); imports.add("io"); generateTypeDeclaration(sb, compositeName); generateTypeBodyComposite(sb, compositeName, tokens.subList(1, tokens.size() - 1)); generateEncodeDecode(sb, compositeName, tokens.subList(1, tokens.size() - 1), false, false); generateEncodedLength(sb, compositeName, tokens.get(0).encodedLength()); generateCompositePropertyElements(sb, compositeName, tokens.subList(1, tokens.size() - 1)); // The FileHeader needs to know which imports to add so // it's created last once that's known. out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }
private void generateChoiceSet(final List<Token> tokens) throws IOException { final Token choiceToken = tokens.get(0); final String choiceName = formatTypeName(choiceToken.applicableTypeName()); final StringBuilder sb = new StringBuilder(); try (Writer out = outputManager.createOutput(choiceName)) { imports = new TreeSet<>(); imports.add("io"); generateChoiceDecls( sb, choiceName, tokens.subList(1, tokens.size() - 1), choiceToken); generateChoiceEncodeDecode(sb, choiceName, choiceToken); // EncodedLength sb.append(String.format( "\nfunc (%1$s) EncodedLength() int64 {\n" + "\treturn %2$s\n" + "}\n", choiceName, choiceToken.encodedLength())); for (final Token token : tokens.subList(1, tokens.size() - 1)) { generateSinceActingDeprecated(sb, choiceName, token.name(), token); } out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }
private void generateChoiceSet(final List<Token> tokens) throws IOException { final String bitSetName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(bitSetName)) { out.append(generateFileHeader(ir.namespaces(), bitSetName, null)); out.append(generateClassDeclaration(bitSetName)); out.append(generateFixedFlyweightCode(bitSetName, tokens.get(0).encodedLength())); out.append(String.format( " %1$s &clear()\n" + " {\n" + " %2$s zero = 0;\n" + " std::memcpy(m_buffer + m_offset, &zero, sizeof(%2$s));\n" + " return *this;\n" + " }\n", bitSetName, cppTypeName(tokens.get(0).encoding().primitiveType()))); out.append(String.format("\n" + " bool isEmpty() const\n" + " {\n" + " %1$s val;\n" + " std::memcpy(&val, m_buffer + m_offset, sizeof(%1$s));\n" + " return 0 == val;\n" + " }\n", cppTypeName(tokens.get(0).encoding().primitiveType()))); out.append(generateChoices(bitSetName, tokens.subList(1, tokens.size() - 1))); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
out.append(generateFileHeader(ir.namespaces())); out.append(sb);
out.append(generateFileHeader(ir.namespaces(), className, typesToInclude)); out.append(generateClassDeclaration(className)); out.append(generateMessageFlyweightCode(className, msgToken)); out.append(generateVarData(className, varData, BASE_INDENT)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n");
generateVarData(sb, typeName, varData); out.append(generateFileHeader(ir.namespaces())); out.append(sb);
public void generateFileFromTemplate(final String fileName, final String templateName) throws IOException { try (Writer out = outputManager.createOutput(fileName)) { out.append(generateFromTemplate(ir.namespaces(), templateName)); } }
public void generateFileFromTemplate(final String fileName, final String templateName) throws IOException { try (Writer out = outputManager.createOutput(fileName)) { out.append(generateFromTemplate(ir.namespaces(), templateName)); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.namespaces(), enumName, null)); out.append(generateEnumDeclaration(enumName)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(generateEnumLookupMethod(tokens.subList(1, tokens.size() - 1), enumToken)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.namespaces(), enumName, null)); out.append(generateEnumDeclaration(enumName)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(generateEnumLookupMethod(tokens.subList(1, tokens.size() - 1), enumToken)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.namespaces(), compositeName, generateTypesToIncludes(tokens.subList(1, tokens.size() - 1)))); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(compositeName, tokens.get(0).encodedLength())); out.append(generateCompositePropertyElements( compositeName, tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.namespaces(), compositeName, generateTypesToIncludes(tokens.subList(1, tokens.size() - 1)))); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(compositeName, tokens.get(0).encodedLength())); out.append(generateCompositePropertyElements( compositeName, tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append("};\n"); out.append(CppUtil.closingBraces(ir.namespaces().length)).append("#endif\n"); } }
public void generateMessageHeaderStub() throws IOException { final String messageHeader = "MessageHeader"; try (Writer out = outputManager.createOutput(messageHeader)) { final StringBuilder sb = new StringBuilder(); final List<Token> tokens = ir.headerStructure().tokens(); imports = new TreeSet<>(); imports.add("io"); generateTypeDeclaration(sb, messageHeader); generateTypeBodyComposite(sb, messageHeader, tokens.subList(1, tokens.size() - 1)); generateEncodeDecode(sb, messageHeader, tokens.subList(1, tokens.size() - 1), false, false); generateCompositePropertyElements(sb, messageHeader, tokens.subList(1, tokens.size() - 1)); out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }
public void generateMessageHeaderStub() throws IOException { final String messageHeader = "MessageHeader"; try (Writer out = outputManager.createOutput(messageHeader)) { final StringBuilder sb = new StringBuilder(); final List<Token> tokens = ir.headerStructure().tokens(); imports = new TreeSet<>(); imports.add("io"); generateTypeDeclaration(sb, messageHeader); generateTypeBodyComposite(sb, messageHeader, tokens.subList(1, tokens.size() - 1)); generateEncodeDecode(sb, messageHeader, tokens.subList(1, tokens.size() - 1), false, false); generateCompositePropertyElements(sb, messageHeader, tokens.subList(1, tokens.size() - 1)); out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }
private void generateComposite(final List<Token> tokens, final String namePrefix) throws IOException { final String compositeName = namePrefix + formatTypeName(tokens.get(0).applicableTypeName()); final StringBuilder sb = new StringBuilder(); try (Writer out = outputManager.createOutput(compositeName)) { imports = new TreeSet<>(); imports.add("io"); generateTypeDeclaration(sb, compositeName); generateTypeBodyComposite(sb, compositeName, tokens.subList(1, tokens.size() - 1)); generateEncodeDecode(sb, compositeName, tokens.subList(1, tokens.size() - 1), false, false); generateEncodedLength(sb, compositeName, tokens.get(0).encodedLength()); generateCompositePropertyElements(sb, compositeName, tokens.subList(1, tokens.size() - 1)); // The FileHeader needs to know which imports to add so // it's created last once that's known. out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }
private void generateComposite(final List<Token> tokens, final String namePrefix) throws IOException { final String compositeName = namePrefix + formatTypeName(tokens.get(0).applicableTypeName()); final StringBuilder sb = new StringBuilder(); try (Writer out = outputManager.createOutput(compositeName)) { imports = new TreeSet<>(); imports.add("io"); generateTypeDeclaration(sb, compositeName); generateTypeBodyComposite(sb, compositeName, tokens.subList(1, tokens.size() - 1)); generateEncodeDecode(sb, compositeName, tokens.subList(1, tokens.size() - 1), false, false); generateEncodedLength(sb, compositeName, tokens.get(0).encodedLength()); generateCompositePropertyElements(sb, compositeName, tokens.subList(1, tokens.size() - 1)); // The FileHeader needs to know which imports to add so // it's created last once that's known. out.append(generateFileHeader(ir.namespaces())); out.append(sb); } }