if (enumType.encodingType() != primitiveType)
if (((EncodedDataType)type).primitiveType() != enumType.encodingType())
@Test public void shouldHandleEncodingTypesWithNamedTypes() throws Exception { final MessageSchema schema = parse(TestUtil.getLocalResource( "encoding-types-schema.xml"), ParserOptions.DEFAULT); final List<Field> fields = schema.getMessage(1).fields(); assertNotNull(fields); EnumType type = (EnumType)fields.get(1).type(); assertThat(type.encodingType(), is(PrimitiveType.CHAR)); type = (EnumType)fields.get(2).type(); assertThat(type.encodingType(), is(PrimitiveType.UINT8)); }
@Test public void shouldHandleBinaryEnumType() throws Exception { final String testXmlString = "<types>" + "<enum name=\"biOp\" encodingType=\"uint8\">" + " <validValue name=\"off\" description=\"switch is off\">0</validValue>" + " <validValue name=\"on\" description=\"switch is on\">1</validValue>" + "</enum>" + "</types>"; final Map<String, Type> map = parseTestXmlWithMap("/types/enum", testXmlString); final EnumType e = (EnumType)map.get("biOp"); assertThat(e.name(), is("biOp")); assertThat(e.encodingType(), is(PrimitiveType.UINT8)); assertThat(e.validValues().size(), is(2)); assertThat(e.getValidValue("on").primitiveValue(), is(PrimitiveValue.parse("1", PrimitiveType.UINT8))); assertThat(e.getValidValue("off").primitiveValue(), is(PrimitiveValue.parse("0", PrimitiveType.UINT8))); }
@Test public void shouldHandleBooleanEnumType() throws Exception { final String testXmlString = "<types>" + "<enum name=\"Boolean\" encodingType=\"uint8\" semanticType=\"Boolean\">" + " <validValue name=\"False\">0</validValue>" + " <validValue name=\"True\">1</validValue>" + "</enum>" + "</types>"; final Map<String, Type> map = parseTestXmlWithMap("/types/enum", testXmlString); final EnumType e = (EnumType)map.get("Boolean"); assertThat(e.name(), is("Boolean")); assertThat(e.encodingType(), is(PrimitiveType.UINT8)); assertThat(e.validValues().size(), is(2)); assertThat(e.getValidValue("True").primitiveValue(), is(PrimitiveValue.parse("1", PrimitiveType.UINT8))); assertThat(e.getValidValue("False").primitiveValue(), is(PrimitiveValue.parse("0", PrimitiveType.UINT8))); }
assertThat(e.encodingType(), is(PrimitiveType.UINT8));
@Test public void shouldHandleOptionalBooleanEnumType() throws Exception { final String nullValueStr = "255"; final String testXmlString = "<types>" + "<enum name=\"optionalBoolean\" encodingType=\"uint8\" presence=\"optional\"" + " nullValue=\"" + nullValueStr + "\" semanticType=\"Boolean\">" + " <validValue name=\"False\">0</validValue>" + " <validValue name=\"True\">1</validValue>" + "</enum>" + "</types>"; final Map<String, Type> map = parseTestXmlWithMap("/types/enum", testXmlString); final EnumType e = (EnumType)map.get("optionalBoolean"); assertThat(e.name(), is("optionalBoolean")); assertThat(e.encodingType(), is(PrimitiveType.UINT8)); assertThat(e.validValues().size(), is(2)); assertThat(e.getValidValue("True").primitiveValue(), is(PrimitiveValue.parse("1", PrimitiveType.UINT8))); assertThat(e.getValidValue("False").primitiveValue(), is(PrimitiveValue.parse("0", PrimitiveType.UINT8))); assertThat(e.nullValue(), is(PrimitiveValue.parse(nullValueStr, PrimitiveType.UINT8))); }
@Test public void shouldHandleCharEnumEncodingType() throws Exception { final String testXmlString = "<types>" + "<enum name=\"mixed\" encodingType=\"char\">" + " <validValue name=\"Cee\">C</validValue>" + " <validValue name=\"One\">1</validValue>" + " <validValue name=\"Two\">2</validValue>" + " <validValue name=\"Eee\">E</validValue>" + "</enum>" + "</types>"; final Map<String, Type> map = parseTestXmlWithMap("/types/enum", testXmlString); final EnumType e = (EnumType)map.get("mixed"); assertThat(e.encodingType(), is(PrimitiveType.CHAR)); assertThat(e.getValidValue("Cee").primitiveValue(), is(PrimitiveValue.parse("C", PrimitiveType.CHAR))); assertThat(e.getValidValue("One").primitiveValue(), is(PrimitiveValue.parse("1", PrimitiveType.CHAR))); assertThat(e.getValidValue("Two").primitiveValue(), is(PrimitiveValue.parse("2", PrimitiveType.CHAR))); assertThat(e.getValidValue("Eee").primitiveValue(), is(PrimitiveValue.parse("E", PrimitiveType.CHAR))); }
private void add(final EnumType type, final int offset, final Field field) final PrimitiveType encodingType = type.encodingType(); final Encoding.Builder encodingBuilder = new Encoding.Builder() .primitiveType(encodingType)
if (enumType.encodingType() != primitiveType)
if (enumType.encodingType() != primitiveType)
if (((EncodedDataType)type).primitiveType() != enumType.encodingType())
if (((EncodedDataType)type).primitiveType() != enumType.encodingType())
private void add(final EnumType type, final int offset, final Field field) { final PrimitiveType encodingType = type.encodingType(); final Encoding.Builder encodingBuilder = new Encoding.Builder() .primitiveType(encodingType) .semanticType(semanticTypeOf(type, field)) .byteOrder(byteOrder); if (type.presence() == Presence.OPTIONAL) { encodingBuilder.nullValue(encodingType.nullValue()); } final Token.Builder builder = new Token.Builder() .signal(Signal.BEGIN_ENUM) .name(type.name()) .size(encodingType.size()) .offset(offset) .encoding(encodingBuilder.build()); if (field != null) { builder.version(field.sinceVersion()); } tokenList.add(builder.build()); for (final EnumType.ValidValue validValue : type.validValues()) { add(validValue, encodingType, field); } builder.signal(Signal.END_ENUM); tokenList.add(builder.build()); }
private void add(final EnumType type, final int offset, final Field field) final PrimitiveType encodingType = type.encodingType(); final Encoding.Builder encodingBuilder = new Encoding.Builder() .primitiveType(encodingType)
private void add(final EnumType type, final int offset, final Field field) final PrimitiveType encodingType = type.encodingType(); final Encoding.Builder encodingBuilder = new Encoding.Builder() .primitiveType(encodingType)