private void generateGroupFieldRepresentations( final OutputManager outputManager, final List<GroupTreeNode> groupTree) throws IOException { try (Writer writer = outputManager.createOutput("Group fixed-field member representations")) { generateGroupFieldRepresentations(writer, groupTree); } }
private void generateGroupFieldRepresentations( final Appendable appendable, final List<GroupTreeNode> groupTree) throws IOException { for (final GroupTreeNode node : groupTree) { appendStructHeader(appendable, node.contextualName + "Member", true); appendStructFields(appendable, node.simpleNamedFields); appendable.append("}\n"); generateConstantAccessorImpl(appendable, node.contextualName + "Member", node.rawFields); generateGroupFieldRepresentations(appendable, node.groups); } }
public void generate() throws IOException { generateSharedImports(ir, outputManager); generateResultEnums(outputManager); generateDecoderScratchStruct(outputManager); generateEncoderScratchStruct(ir, outputManager); generateEitherEnum(outputManager); generateEnums(ir, outputManager); generateComposites(ir, outputManager); generateBitSets(ir, outputManager); final int headerSize = totalByteSize(ir.headerStructure()); for (final List<Token> tokens : ir.messages()) { final MessageComponents components = MessageComponents.collectMessageComponents(tokens); final String messageTypeName = formatTypeName(components.messageToken.name()); final Optional<FieldsRepresentationSummary> fieldsRepresentation = generateFieldsRepresentation(messageTypeName, components, outputManager); generateMessageHeaderDefault(ir, outputManager, components.messageToken); // Avoid the work of recomputing the group tree twice per message final List<GroupTreeNode> groupTree = buildGroupTrees(messageTypeName, components.groups); generateGroupFieldRepresentations(outputManager, groupTree); generateMessageDecoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); generateMessageEncoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); } }
private void generateGroupFieldRepresentations( final OutputManager outputManager, final List<GroupTreeNode> groupTree) throws IOException { try (Writer writer = outputManager.createOutput("Group fixed-field member representations")) { generateGroupFieldRepresentations(writer, groupTree); } }
private void generateGroupFieldRepresentations( final OutputManager outputManager, final List<GroupTreeNode> groupTree) throws IOException { try (Writer writer = outputManager.createOutput("Group fixed-field member representations")) { generateGroupFieldRepresentations(writer, groupTree); } }
private void generateGroupFieldRepresentations( final Appendable appendable, final List<GroupTreeNode> groupTree) throws IOException { for (final GroupTreeNode node : groupTree) { appendStructHeader(appendable, node.contextualName + "Member", true); appendStructFields(appendable, node.simpleNamedFields); appendable.append("}\n"); generateConstantAccessorImpl(appendable, node.contextualName + "Member", node.rawFields); generateGroupFieldRepresentations(appendable, node.groups); } }
private void generateGroupFieldRepresentations( final Appendable appendable, final List<GroupTreeNode> groupTree) throws IOException { for (final GroupTreeNode node : groupTree) { appendStructHeader(appendable, node.contextualName + "Member", true); appendStructFields(appendable, node.simpleNamedFields); appendable.append("}\n"); generateConstantAccessorImpl(appendable, node.contextualName + "Member", node.rawFields); generateGroupFieldRepresentations(appendable, node.groups); } }
public void generate() throws IOException { generateSharedImports(ir, outputManager); generateResultEnums(outputManager); generateDecoderScratchStruct(outputManager); generateEncoderScratchStruct(ir, outputManager); generateEitherEnum(outputManager); generateEnums(ir, outputManager); generateComposites(ir, outputManager); generateBitSets(ir, outputManager); final int headerSize = totalByteSize(ir.headerStructure()); for (final List<Token> tokens : ir.messages()) { final MessageComponents components = MessageComponents.collectMessageComponents(tokens); final String messageTypeName = formatTypeName(components.messageToken.name()); final Optional<FieldsRepresentationSummary> fieldsRepresentation = generateFieldsRepresentation(messageTypeName, components, outputManager); generateMessageHeaderDefault(ir, outputManager, components.messageToken); // Avoid the work of recomputing the group tree twice per message final List<GroupTreeNode> groupTree = buildGroupTrees(messageTypeName, components.groups); generateGroupFieldRepresentations(outputManager, groupTree); generateMessageDecoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); generateMessageEncoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); } }
public void generate() throws IOException { generateSharedImports(ir, outputManager); generateResultEnums(outputManager); generateDecoderScratchStruct(outputManager); generateEncoderScratchStruct(ir, outputManager); generateEitherEnum(outputManager); generateEnums(ir, outputManager); generateComposites(ir, outputManager); generateBitSets(ir, outputManager); final int headerSize = totalByteSize(ir.headerStructure()); for (final List<Token> tokens : ir.messages()) { final MessageComponents components = MessageComponents.collectMessageComponents(tokens); final String messageTypeName = formatTypeName(components.messageToken.name()); final Optional<FieldsRepresentationSummary> fieldsRepresentation = generateFieldsRepresentation(messageTypeName, components, outputManager); generateMessageHeaderDefault(ir, outputManager, components.messageToken); // Avoid the work of recomputing the group tree twice per message final List<GroupTreeNode> groupTree = buildGroupTrees(messageTypeName, components.groups); generateGroupFieldRepresentations(outputManager, groupTree); generateMessageDecoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); generateMessageEncoder(outputManager, components, groupTree, fieldsRepresentation, headerSize); } }