static String generateRustLiteral(final PrimitiveType type, final String value) { Verify.notNull(type, "type"); Verify.notNull(value, "value"); final String typeName = rustTypeName(type); if (typeName == null) { throw new IllegalArgumentException("Unknown Rust type name found for primitive " + type.primitiveName()); } switch (type) { case CHAR: case UINT8: case INT8: case INT16: case UINT16: case INT32: case INT64: case UINT32: case UINT64: return value + typeName; case FLOAT: case DOUBLE: return value.endsWith("NaN") ? typeName + "::NAN" : value + typeName; default: throw new IllegalArgumentException("Unsupported literal generation for type: " + type.primitiveName()); } }
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();
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); }
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 typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final String enumUnderlyingType = cSharpTypeName(token.encoding().primitiveType()); final int offset = token.offset();
static String generateRustLiteral(final PrimitiveType type, final String value) { Verify.notNull(type, "type"); Verify.notNull(value, "value"); final String typeName = rustTypeName(type); if (typeName == null) { throw new IllegalArgumentException("Unknown Rust type name found for primitive " + type.primitiveName()); } switch (type) { case CHAR: case UINT8: case INT8: case INT16: case UINT16: case INT32: case INT64: case UINT32: case UINT64: return value + typeName; case FLOAT: case DOUBLE: return value.endsWith("NaN") ? typeName + "::NAN" : value + typeName; default: throw new IllegalArgumentException("Unsupported literal generation for type: " + type.primitiveName()); } }
static String generateRustLiteral(final PrimitiveType type, final String value) { Verify.notNull(type, "type"); Verify.notNull(value, "value"); final String typeName = rustTypeName(type); if (typeName == null) { throw new IllegalArgumentException("Unknown Rust type name found for primitive " + type.primitiveName()); } switch (type) { case CHAR: case UINT8: case INT8: case INT16: case UINT16: case INT32: case INT64: case UINT32: case UINT64: return value + typeName; case FLOAT: case DOUBLE: return value.endsWith("NaN") ? typeName + "::NAN" : value + typeName; default: throw new IllegalArgumentException("Unsupported literal generation for type: " + type.primitiveName()); } }
private CharSequence generateChoiceClear(final String bitSetClassName, final Token token) { final StringBuilder sb = new StringBuilder(); final Encoding encoding = token.encoding(); final String typePrefix = encoding.primitiveType().primitiveName(); final String literalValue = generateLiteral(encoding.primitiveType(), "0"); final String byteOrderStr = byteOrderString(encoding); sb.append(String.format( "\n" + " public %s clear()\n" + " {\n" + " CodecUtil.%sPut(buffer, offset, %s%s);\n" + " return this;\n" + " }\n", bitSetClassName, typePrefix, literalValue, byteOrderStr )); return sb; }
private CharSequence generateChoiceEncoders(final String bitSetClassName, final List<Token> tokens) { return concatTokens(tokens, Signal.CHOICE, (token) -> { final String choiceName = token.name(); final Encoding encoding = token.encoding(); final String typePrefix = encoding.primitiveType().primitiveName(); final String choiceBitPosition = encoding.constValue().toString(); final String byteOrderStr = byteOrderString(encoding); return String.format( "\n" + " public %s %s(final boolean value)\n" + " {\n" + " CodecUtil.%sPutChoice(buffer, offset, %s, value%s);\n" + " return this;\n" + " }\n", bitSetClassName, choiceName, typePrefix, choiceBitPosition, byteOrderStr ); }); }
private CharSequence generateEnumEncoder( final String containingClassName, final String propertyName, final Token token, final String indent) { final String enumName = formatClassName(token.name()); final Encoding encoding = token.encoding(); final String typePrefix = encoding.primitiveType().primitiveName(); final int offset = token.offset(); final String byteOrderStr = byteOrderString(encoding); return String.format( indent + " public %s %s(final %s value)\n" + indent + " {\n" + indent + " CodecUtil.%sPut(buffer, offset + %d, value.value()%s);\n" + indent + " return this;\n" + indent + " }\n", formatClassName(containingClassName), propertyName, enumName, typePrefix, offset, byteOrderStr ); }
private CharSequence generateChoiceDecoders(final List<Token> tokens) { return concatTokens(tokens, Signal.CHOICE, (token) -> { final String choiceName = token.name(); final Encoding encoding = token.encoding(); final String typePrefix = encoding.primitiveType().primitiveName(); final String choiceBitPosition = encoding.constValue().toString(); final String byteOrderStr = byteOrderString(encoding); return String.format( "\n" + " public boolean %s()\n" + " {\n" + " return CodecUtil.%sGetChoice(buffer, offset, %s%s);\n" + " }\n\n", choiceName, typePrefix, choiceBitPosition, byteOrderStr ); }); }
private CharSequence generateSingleValuePropertyEncode( final String containingClassName, final String propertyName, final Token token, final String indent) { final Encoding encoding = token.encoding(); final String javaTypeName = javaTypeName(encoding.primitiveType()); final String typePrefix = encoding.primitiveType().primitiveName(); final int offset = token.offset(); final String byteOrderStr = byteOrderString(encoding); return String.format( indent + " public %s %s(final %s value)\n" + indent + " {\n" + indent + " CodecUtil.%sPut(buffer, offset + %d, value%s);\n" + indent + " return this;\n" + indent + " }\n", formatClassName(containingClassName), propertyName, javaTypeName, typePrefix, offset, byteOrderStr ); }
private CharSequence generateEnumDecoder(final String propertyName, final Token token, final String indent) { final String enumName = formatClassName(token.name()); final Encoding encoding = token.encoding(); final String typePrefix = encoding.primitiveType().primitiveName(); final int offset = token.offset(); final String byteOrderStr = byteOrderString(encoding); return String.format( "\n" + indent + " public %s %s()\n" + indent + " {\n" + "%s" + indent + " return %s.get(CodecUtil.%sGet(buffer, offset + %d%s));\n" + indent + " }\n\n", enumName, propertyName, generateTypeFieldNotPresentCondition(token.version(), indent), enumName, typePrefix, offset, byteOrderStr ); }
final Encoding lengthEncoding = lengthToken.encoding(); final String lengthJavaType = javaTypeName(lengthEncoding.primitiveType()); final String lengthTypePrefix = lengthEncoding.primitiveType().primitiveName(); final String byteOrderStr = byteOrderString(lengthEncoding);
private CharSequence generateSingleValuePropertyDecode( final String propertyName, final Token token, final String indent) { final Encoding encoding = token.encoding(); final String javaTypeName = javaTypeName(encoding.primitiveType()); final String typePrefix = encoding.primitiveType().primitiveName(); final int offset = token.offset(); final String byteOrderStr = byteOrderString(encoding); return String.format( "\n" + indent + " public %s %s()\n" + indent + " {\n" + "%s" + indent + " return CodecUtil.%sGet(buffer, offset + %d%s);\n" + indent + " }\n\n", javaTypeName, propertyName, generateFieldNotPresentCondition(token.version(), encoding, indent), typePrefix, offset, byteOrderStr ); }
private CharSequence generateSingleValueProperty(final String propertyName, final Token token, final String indent) final String typePrefix = toUpperFirstChar(token.encoding().primitiveType().primitiveName()); final int offset = token.offset(); final ByteOrder byteOrder = token.encoding().byteOrder();
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 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); }
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); }