private void generateGroupEnumerator(final StringBuilder sb, final String groupName, final String indent) { sb.append( indent + INDENT + "public int ActingBlockLength { get { return _blockLength; } }\n\n" + indent + INDENT + "public int Count { get { return _count; } }\n\n" + indent + INDENT + "public bool HasNext { get { return (_index + 1) < _count; } }\n"); sb.append(String.format("\n" + indent + INDENT + "public %sGroup Next()\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "if (_index + 1 >= _count)\n" + indent + INDENT + INDENT + "{\n" + indent + INDENT + INDENT + INDENT + "throw new InvalidOperationException();\n" + indent + INDENT + INDENT + "}\n\n" + indent + INDENT + INDENT + "_offset = _parentMessage.Limit;\n" + indent + INDENT + INDENT + "_parentMessage.Limit = _offset + _blockLength;\n" + indent + INDENT + INDENT + "++_index;\n\n" + indent + INDENT + INDENT + "return this;\n" + indent + INDENT + "}\n", formatClassName(groupName))); sb.append("\n" + indent + INDENT + "public System.Collections.IEnumerator GetEnumerator()\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "while (this.HasNext)\n" + indent + INDENT + INDENT + "{\n" + indent + INDENT + INDENT + INDENT + "yield return this.Next();\n" + indent + INDENT + INDENT + "}\n" + indent + INDENT + "}\n"); }
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = CSharpUtil.formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.applicableNamespace())); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(tokens.get(0).encodedLength())); out.append(generateCompositePropertyElements(tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, false)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateBitSet(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, true)); out.append(generateChoices(tokens.subList(1, tokens.size() - 1))); out.append(INDENT + "}\n"); out.append("}\n"); } }
private Object generateCompositeProperty(final String propertyName, final Token token, final String indent) { final String compositeName = CSharpUtil.formatClassName(token.applicableTypeName()); final int offset = token.offset(); final StringBuilder sb = new StringBuilder(); sb.append(String.format("\n" + indent + INDENT + "private readonly %1$s _%2$s = new %3$s();\n", compositeName, toLowerFirstChar(propertyName), compositeName)); sb.append(String.format("\n" + indent + INDENT + "public %1$s %2$s\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "get\n" + indent + INDENT + INDENT + "{\n" + "%3$s" + indent + INDENT + INDENT + INDENT + "_%4$s.Wrap(_buffer, _offset + %5$d, _actingVersion);\n" + indent + INDENT + INDENT + INDENT + "return _%4$s;\n" + indent + INDENT + INDENT + "}\n" + indent + INDENT + "}\n", compositeName, toUpperFirstChar(propertyName), generateTypeFieldNotPresentCondition(token.version(), indent), toLowerFirstChar(propertyName), offset)); return sb; }
final String className = formatClassName(msgToken.name());
final String className = CSharpUtil.formatClassName(groupName);
final String indent) final String dimensionsClassName = formatClassName(tokens.get(index + 1).name()); final int dimensionHeaderLength = tokens.get(index + 1).encodedLength(); indent + INDENT + "private int _index;\n" + indent + INDENT + "private int _offset;\n", formatClassName(groupName), dimensionsClassName, parentMessageClassName));
private String generateBitSetProperty(final String propertyName, final Token token, final String indent) { final String bitSetName = formatClassName(token.applicableTypeName()); final int offset = token.offset(); final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final ByteOrder byteOrder = token.encoding().byteOrder(); final String byteOrderStr = generateByteOrder(byteOrder, token.encoding().primitiveType().size()); final String typeName = cSharpTypeName(token.encoding().primitiveType()); return String.format("\n" + indent + INDENT + "public %1$s %2$s\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "get\n" + indent + INDENT + INDENT + "{\n" + "%3$s" + indent + INDENT + INDENT + INDENT + "return (%4$s)_buffer.%5$sGet%7$s(_offset + %6$d);\n" + indent + INDENT + INDENT + "}\n" + indent + INDENT + INDENT + "set\n" + indent + INDENT + INDENT + "{\n" + indent + INDENT + INDENT + INDENT + "_buffer.%5$sPut%7$s(_offset + %6$d, (%8$s)value);\n" + indent + INDENT + INDENT + "}\n" + indent + INDENT + "}\n", bitSetName, toUpperFirstChar(propertyName), generateTypeFieldNotPresentCondition(token.version(), indent), bitSetName, typePrefix, offset, byteOrderStr, typeName); }
final String indent) final String enumName = formatClassName(token.applicableTypeName()); final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final String enumUnderlyingType = cSharpTypeName(token.encoding().primitiveType());
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = CSharpUtil.formatClassName(tokens.get(0).name()); try (final Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.applicableNamespace())); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(tokens.get(0).encodedLength())); out.append(generatePrimitivePropertyEncodings(tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append(" }\n"); out.append("}\n"); } }
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = CSharpUtil.formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.applicableNamespace())); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(tokens.get(0).encodedLength())); out.append(generateCompositePropertyElements(tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateComposite(final List<Token> tokens) throws IOException { final String compositeName = CSharpUtil.formatClassName(tokens.get(0).applicableTypeName()); try (Writer out = outputManager.createOutput(compositeName)) { out.append(generateFileHeader(ir.applicableNamespace())); out.append(generateClassDeclaration(compositeName)); out.append(generateFixedFlyweightCode(tokens.get(0).encodedLength())); out.append(generateCompositePropertyElements(tokens.subList(1, tokens.size() - 1), BASE_INDENT)); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateBitSet(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.name()); try (final Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, true)); out.append(generateChoices(tokens.subList(1, tokens.size() - 1))); out.append(INDENT).append("}\n"); out.append("}\n"); } }
private void generateBitSet(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, true)); out.append(generateChoices(tokens.subList(1, tokens.size() - 1))); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, false)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.name()); try (final Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, false)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(INDENT).append("}\n"); out.append("}\n"); } }
private void generateBitSet(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, true)); out.append(generateChoices(tokens.subList(1, tokens.size() - 1))); out.append(INDENT + "}\n"); out.append("}\n"); } }
private void generateEnum(final List<Token> tokens) throws IOException { final Token enumToken = tokens.get(0); final String enumName = CSharpUtil.formatClassName(enumToken.applicableTypeName()); try (Writer out = outputManager.createOutput(enumName)) { out.append(generateFileHeader(ir.applicableNamespace())); final String enumPrimitiveType = cSharpTypeName(enumToken.encoding().primitiveType()); out.append(generateEnumDeclaration(enumName, enumPrimitiveType, false)); out.append(generateEnumValues(tokens.subList(1, tokens.size() - 1), enumToken)); out.append(INDENT + "}\n"); out.append("}\n"); } }
private String generateBitSetProperty(final String propertyName, final Token token, final String indent) { final String bitSetName = formatClassName(token.applicableTypeName()); final int offset = token.offset(); final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final ByteOrder byteOrder = token.encoding().byteOrder(); final String byteOrderStr = generateByteOrder(byteOrder, token.encoding().primitiveType().size()); final String typeName = cSharpTypeName(token.encoding().primitiveType()); return String.format("\n" + indent + INDENT + "public %1$s %2$s\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "get\n" + indent + INDENT + INDENT + "{\n" + "%3$s" + indent + INDENT + INDENT + INDENT + "return (%4$s)_buffer.%5$sGet%7$s(_offset + %6$d);\n" + indent + INDENT + INDENT + "}\n" + indent + INDENT + INDENT + "set\n" + indent + INDENT + INDENT + "{\n" + indent + INDENT + INDENT + INDENT + "_buffer.%5$sPut%7$s(_offset + %6$d, (%8$s)value);\n" + indent + INDENT + INDENT + "}\n" + indent + INDENT + "}\n", bitSetName, toUpperFirstChar(propertyName), generateTypeFieldNotPresentCondition(token.version(), indent), bitSetName, typePrefix, offset, byteOrderStr, typeName); }