private String byteOrderString(final Encoding encoding) { return sizeOfPrimitive(encoding) == 1 ? "" : ", java.nio.ByteOrder." + encoding.byteOrder(); }
public Ir decode() { decodeFrame(); final List<Token> tokens = new ArrayList<>(); while (offset < length) { tokens.add(decodeToken()); } int i = 0; if (tokens.get(0).signal() == Signal.BEGIN_COMPOSITE) { i = captureHeader(tokens); } final ByteOrder byteOrder = tokens.size() > 0 ? tokens.get(0).encoding().byteOrder() : null; final Ir ir = new Ir(irPackageName, irNamespaceName, irId, irVersion, semanticVersion, byteOrder, irHeader); for (int size = tokens.size(); i < size; i++) { if (tokens.get(i).signal() == Signal.BEGIN_MESSAGE) { i = captureMessage(tokens, i, ir); } } return ir; }
final String choiceBitPosition = token.encoding().constValue().toString(); final String byteOrderStr = formatByteOrderEncoding( token.encoding().byteOrder(), token.encoding().primitiveType());
toLowerFirstChar(propertyName), generateArrayFieldNotPresentCondition(token.version(), BASE_INDENT), formatByteOrderEncoding(lengthToken.encoding().byteOrder(), lengthToken.encoding().primitiveType()), lengthCppType));
propertyName, generateEnumFieldNotPresentCondition(token.version(), enumName, indent), formatByteOrderEncoding(token.encoding().byteOrder(), token.encoding().primitiveType()), typeName, offset)); typeName, offset, formatByteOrderEncoding(token.encoding().byteOrder(), token.encoding().primitiveType())));
bufferOffset + lengthToken.offset(), lengthToken.encoding().primitiveType(), lengthToken.encoding().byteOrder()) : 0;
blockLengthOffset = token.offset(); blockLengthType = token.encoding().primitiveType(); blockLengthByteOrder = token.encoding().byteOrder(); break; templateIdOffset = token.offset(); templateIdType = token.encoding().primitiveType(); templateIdByteOrder = token.encoding().byteOrder(); break; schemaIdOffset = token.offset(); schemaIdType = token.encoding().primitiveType(); schemaIdByteOrder = token.encoding().byteOrder(); break; schemaVersionOffset = token.offset(); schemaVersionType = token.encoding().primitiveType(); schemaVersionByteOrder = token.encoding().byteOrder(); break;
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());
assertThat(valueOf(tokens.get(2).encodedLength()), is(valueOf(4))); assertThat(valueOf(tokens.get(2).offset()), is(valueOf(0))); assertThat(tokens.get(2).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN));
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()); final int fieldLength = token.arrayLength();
assertThat(valueOf(tokens.get(3).encodedLength()), is(valueOf(1))); assertThat(valueOf(tokens.get(3).offset()), is(valueOf(0))); assertThat(tokens.get(3).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN)); assertThat(valueOf(tokens.get(4).encodedLength()), is(valueOf(-1))); assertThat(valueOf(tokens.get(4).offset()), is(valueOf(1))); assertThat(tokens.get(4).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN));
final String lengthCppType = cppTypeName(lengthToken.encoding().primitiveType()); final String lengthByteOrderStr = formatByteOrderEncoding( lengthToken.encoding().byteOrder(), lengthToken.encoding().primitiveType());
assertThat(valueOf(tokens.get(1).encodedLength()), is(valueOf(2))); assertThat(valueOf(tokens.get(1).offset()), is(valueOf(0))); assertThat(tokens.get(1).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN)); assertThat(valueOf(tokens.get(2).encodedLength()), is(valueOf(2))); assertThat(valueOf(tokens.get(2).offset()), is(valueOf(2))); assertThat(tokens.get(2).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN)); assertThat(valueOf(tokens.get(3).encodedLength()), is(valueOf(2))); assertThat(valueOf(tokens.get(3).offset()), is(valueOf(4))); assertThat(tokens.get(3).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN)); assertThat(valueOf(tokens.get(4).encodedLength()), is(valueOf(2))); assertThat(valueOf(tokens.get(4).offset()), is(valueOf(6))); assertThat(tokens.get(4).encoding().byteOrder(), is(ByteOrder.LITTLE_ENDIAN));
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 enumUnderlyingType = cSharpTypeName(token.encoding().primitiveType()); final int offset = token.offset(); final ByteOrder byteOrder = token.encoding().byteOrder(); final String byteOrderStr = generateByteOrder(byteOrder, token.encoding().primitiveType().size());
private void assertEqual(final Token lhs, final Token rhs) { assertThat(lhs.name(), is(rhs.name())); assertThat(lhs.version(), is(rhs.version())); assertThat(lhs.offset(), is(rhs.offset())); assertThat((long)lhs.id(), is((long)rhs.id())); assertThat(lhs.signal(), is(rhs.signal())); assertThat(lhs.encodedLength(), is(rhs.encodedLength())); assertThat(lhs.encoding().byteOrder(), is(rhs.encoding().byteOrder())); assertThat(lhs.encoding().primitiveType(), is(rhs.encoding().primitiveType())); assertThat(lhs.encoding().presence(), is(rhs.encoding().presence())); assertThat(lhs.encoding().constValue(), is(rhs.encoding().constValue())); assertThat(lhs.encoding().minValue(), is(rhs.encoding().minValue())); assertThat(lhs.encoding().maxValue(), is(rhs.encoding().maxValue())); assertThat(lhs.encoding().nullValue(), is(rhs.encoding().nullValue())); assertThat(lhs.encoding().characterEncoding(), is(rhs.encoding().characterEncoding())); assertThat(lhs.encoding().epoch(), is(rhs.encoding().epoch())); assertThat(lhs.encoding().timeUnit(), is(rhs.encoding().timeUnit())); assertThat(lhs.encoding().semanticType(), is(rhs.encoding().semanticType())); }
.signal(mapSignal(token.signal())) .primitiveType(mapPrimitiveType(type)) .byteOrder(mapByteOrder(encoding.byteOrder())) .presence(mapPresence(encoding.presence()));