/** * Format a String as a property name. * * @param str to be formatted. * @return the string formatted as a property name. */ public static String formatPropertyName(final String str) { return toUpperFirstChar(str); }
/** * Format a String as a class name. * * @param str to be formatted. * @return the string formatted as a class name. */ public static String formatClassName(final String str) { return toUpperFirstChar(str); } }
private CharSequence generateFileHeader(final String packageName) { String[] tokens = packageName.split("\\."); final StringBuilder sb = new StringBuilder(); for (final String t : tokens) { sb.append(toUpperFirstChar(t)).append("."); } if (sb.length() > 0) { sb.setLength(sb.length() - 1); } tokens = sb.toString().split("-"); sb.setLength(0); for (final String t : tokens) { sb.append(toUpperFirstChar(t)); } return String.format( "/* Generated SBE (Simple Binary Encoding) message codec */\n\n" + "#pragma warning disable 1591 // disable warning on missing comments\n" + "using System;\n" + "using Org.SbeTool.Sbe.Dll;\n\n" + "namespace %s\n" + "{\n", sb); }
toUpperFirstChar(groupName), token.id())); generateSinceActingDeprecated(sb, indent, toUpperFirstChar(groupName), token); indent + "}\n", className, toUpperFirstChar(groupName), toLowerFirstChar(groupName))); indent + "}\n", className, toUpperFirstChar(groupName), toLowerFirstChar(groupName)));
private CharSequence generateChoices(final List<Token> tokens) { final StringBuilder sb = new StringBuilder(); for (final Token token : tokens) { if (token.signal() == Signal.CHOICE) { final String choiceName = toUpperFirstChar(token.applicableTypeName()); final String choiceBitPosition = token.encoding().constValue().toString(); final int choiceValue = (int)Math.pow(2, Integer.parseInt(choiceBitPosition)); sb.append(String.format(INDENT + INDENT + "%s = %s,\n", choiceName, choiceValue)); } } return sb; }
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; }
indent + INDENT + "public %1$s %2$s { get { return %3$s; } }\n", cSharpTypeName(token.encoding().primitiveType()), toUpperFirstChar(propertyName), generateLiteral(token.encoding().primitiveType(), token.encoding().constValue().toString())); "\n" + indent + INDENT + "public const int %1$sLength = %2$d;\n", toUpperFirstChar(propertyName), constantValue.length)); indent + INDENT + "}\n\n", javaTypeName, toUpperFirstChar(propertyName), propertyName)); indent + INDENT + INDENT + "return bytesCopied;\n" + indent + INDENT + "}\n", toUpperFirstChar(propertyName), constantValue.length, propertyName));
private void generateFieldMetaAttributeMethod(final StringBuilder sb, final Token token, final String indent) { final Encoding encoding = token.encoding(); final String epoch = encoding.epoch() == null ? "" : encoding.epoch(); final String timeUnit = encoding.timeUnit() == null ? "" : encoding.timeUnit(); final String semanticType = encoding.semanticType() == null ? "" : encoding.semanticType(); final String presence = encoding.presence() == null ? "" : encoding.presence().toString().toLowerCase(); sb.append(String.format("\n" + indent + "public static string %sMetaAttribute(MetaAttribute metaAttribute)\n" + indent + "{\n" + indent + INDENT + "switch (metaAttribute)\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "case MetaAttribute.Epoch: return \"%s\";\n" + indent + INDENT + INDENT + "case MetaAttribute.TimeUnit: return \"%s\";\n" + indent + INDENT + INDENT + "case MetaAttribute.SemanticType: return \"%s\";\n" + indent + INDENT + INDENT + "case MetaAttribute.Presence: return \"%s\";\n" + indent + INDENT + "}\n\n" + indent + INDENT + "return \"\";\n" + indent + "}\n", toUpperFirstChar(token.name()), epoch, timeUnit, semanticType, presence)); }
generateFieldMetaAttributeMethod(sb, token, indent); final String propertyName = toUpperFirstChar(token.name()); final Token lengthToken = Generators.findFirst("length", tokens, i); final int sizeOfLengthField = lengthToken.encodedLength(); final Encoding lengthEncoding = lengthToken.encoding(); final String lengthCSharpType = cSharpTypeName(lengthEncoding.primitiveType()); final String lengthTypePrefix = toUpperFirstChar(lengthEncoding.primitiveType().primitiveName()); final ByteOrder byteOrder = lengthEncoding.byteOrder(); final String byteOrderStr = generateByteOrder(byteOrder, lengthEncoding.primitiveType().size());
final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final int offset = token.offset(); final ByteOrder byteOrder = token.encoding().byteOrder(); final int fieldLength = token.arrayLength(); final int typeSize = token.encoding().primitiveType().size(); final String propName = toUpperFirstChar(propertyName);
private CharSequence generateSingleValueProperty( final String propertyName, final Token token, final String indent) { final String typeName = cSharpTypeName(token.encoding().primitiveType()); final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final int offset = token.offset(); final ByteOrder byteOrder = token.encoding().byteOrder(); final String byteOrderStr = generateByteOrder(byteOrder, token.encoding().primitiveType().size()); return String.format("\n" + indent + "public %1$s %2$s\n" + indent + "{\n" + indent + INDENT + "get\n" + indent + INDENT + "{\n" + "%3$s" + indent + INDENT + INDENT + "return _buffer.%4$sGet%6$s(_offset + %5$d);\n" + indent + INDENT + "}\n" + indent + INDENT + "set\n" + indent + INDENT + "{\n" + indent + INDENT + INDENT + "_buffer.%4$sPut%6$s(_offset + %5$d, value);\n" + indent + INDENT + "}\n" + indent + "}\n\n", typeName, toUpperFirstChar(propertyName), generateFieldNotPresentCondition(token.version(), token.encoding(), indent), typePrefix, offset, byteOrderStr); }
final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final String enumUnderlyingType = cSharpTypeName(token.encoding().primitiveType()); final int offset = token.offset(); indent + INDENT + "}\n\n", enumName, toUpperFirstChar(propertyName), constValue); indent + INDENT + "}\n\n", enumName, toUpperFirstChar(propertyName), generateEnumFieldNotPresentCondition(token.version(), enumName, indent), enumName,
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); }
private CharSequence generatePrimitiveFieldMetaData( final String propertyName, final Token token, final String indent) { final PrimitiveType primitiveType = token.encoding().primitiveType(); final String typeName = cSharpTypeName(primitiveType); return String.format( "\n" + indent + "public const %1$s %2$sNullValue = %3$s;\n" + indent + "public const %1$s %2$sMinValue = %4$s;\n" + indent + "public const %1$s %2$sMaxValue = %5$s;\n", typeName, toUpperFirstChar(propertyName), generateLiteral(primitiveType, token.encoding().applicableNullValue().toString()), generateLiteral(primitiveType, token.encoding().applicableMinValue().toString()), generateLiteral(primitiveType, token.encoding().applicableMaxValue().toString())); }
/** * Format a String as a property name. * * @param str to be formatted. * @return the string formatted as a property name. */ public static String formatPropertyName(final String str) { return toUpperFirstChar(str); }
/** * Format a String as a property name. * * @param str to be formatted. * @return the string formatted as a property name. */ public static String formatPropertyName(final String str) { return toUpperFirstChar(str); }
/** * Format a String as a class name. * * @param str to be formatted. * @return the string formatted as a class name. */ public static String formatClassName(final String str) { return toUpperFirstChar(str); } }
/** * Format a String as a class name. * * @param str to be formatted. * @return the string formatted as a class name. */ public static String formatClassName(final String str) { return toUpperFirstChar(str); } }
/** * Format a String as a class name. * * @param str to be formatted. * @return the string formatted as a class name. */ public static String formatClassName(final String str) { return toUpperFirstChar(str); } }
/** * Format a String as a property name. * * @param str to be formatted. * @return the string formatted as a property name. */ public static String formatPropertyName(final String str) { return toUpperFirstChar(str); }