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 generateGroups(final StringBuilder sb, final List<Token> tokens, final String prefix) { for (int i = 0, size = tokens.size(); i < size; i++) { final Token groupToken = tokens.get(i); if (groupToken.signal() != Signal.BEGIN_GROUP) { throw new IllegalStateException("tokens must begin with BEGIN_GROUP: token=" + groupToken); } // Make a unique Group name by adding our parent final String groupName = prefix + formatTypeName(groupToken.name()); ++i; final int groupHeaderTokenCount = tokens.get(i).componentTokenCount(); i += groupHeaderTokenCount; final List<Token> fields = new ArrayList<>(); i = collectFields(tokens, i, fields); generateFields(sb, groupName, fields); final List<Token> groups = new ArrayList<>(); i = collectGroups(tokens, i, groups); generateGroups(sb, groups, groupName); final List<Token> varData = new ArrayList<>(); i = collectVarData(tokens, i, varData); generateVarData(sb, formatTypeName(groupName), varData); } }
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 generateEnum(final List<Token> tokens) throws IOException final String enumName = formatTypeName(tokens.get(0).applicableTypeName());
final String typeName = formatTypeName(msgToken.name());
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); } }
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 generateGroups(final StringBuilder sb, final List<Token> tokens, final String prefix) { for (int i = 0, size = tokens.size(); i < size; i++) { final Token groupToken = tokens.get(i); if (groupToken.signal() != Signal.BEGIN_GROUP) { throw new IllegalStateException("tokens must begin with BEGIN_GROUP: token=" + groupToken); } // Make a unique Group name by adding our parent final String groupName = prefix + formatTypeName(groupToken.name()); ++i; final int groupHeaderTokenCount = tokens.get(i).componentTokenCount(); i += groupHeaderTokenCount; final List<Token> fields = new ArrayList<>(); i = collectFields(tokens, i, fields); generateFields(sb, groupName, fields); final List<Token> groups = new ArrayList<>(); i = collectGroups(tokens, i, groups); generateGroups(sb, groups, groupName); final List<Token> varData = new ArrayList<>(); i = collectVarData(tokens, i, varData); generateVarData(sb, formatTypeName(groupName), varData); } }
private void generateGroups(final StringBuilder sb, final List<Token> tokens, final String prefix) { for (int i = 0, size = tokens.size(); i < size; i++) { final Token groupToken = tokens.get(i); if (groupToken.signal() != Signal.BEGIN_GROUP) { throw new IllegalStateException("tokens must begin with BEGIN_GROUP: token=" + groupToken); } // Make a unique Group name by adding our parent final String groupName = prefix + formatTypeName(groupToken.name()); ++i; final int groupHeaderTokenCount = tokens.get(i).componentTokenCount(); i += groupHeaderTokenCount; final List<Token> fields = new ArrayList<>(); i = collectFields(tokens, i, fields); generateFields(sb, groupName, fields); final List<Token> groups = new ArrayList<>(); i = collectGroups(tokens, i, groups); generateGroups(sb, groups, groupName); final List<Token> varData = new ArrayList<>(); i = collectVarData(tokens, i, varData); generateVarData(sb, formatTypeName(groupName), varData); } }
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 generateEnum(final List<Token> tokens) throws IOException final String enumName = formatTypeName(tokens.get(0).applicableTypeName());
private void generateEnum(final List<Token> tokens) throws IOException final String enumName = formatTypeName(tokens.get(0).applicableTypeName());
final String typeName = formatTypeName(msgToken.name());
final String typeName = formatTypeName(msgToken.name());