@Test public void shouldCalculateGroupOffsetWithPaddingFromBlockLength() throws Exception { final MessageSchema schema = parse(TestUtil.getLocalResource( "block-length-schema.xml"), ParserOptions.DEFAULT); final List<Field> fields = schema.getMessage(2).fields(); assertThat(valueOf(fields.get(0).computedOffset()), is(valueOf(0))); assertThat(valueOf(fields.get(0).type().encodedLength()), is(valueOf(8))); assertThat(valueOf(fields.get(1).computedOffset()), is(valueOf(64))); Assert.assertNull(fields.get(1).type()); assertThat(valueOf(fields.get(1).computedBlockLength()), is(valueOf(12))); final List<Field> groupFields = fields.get(1).groupFields(); assertThat(valueOf(groupFields.size()), is(valueOf(2))); assertThat(valueOf(groupFields.get(0).computedOffset()), is(valueOf(0))); assertThat(valueOf(groupFields.get(0).type().encodedLength()), is(valueOf(4))); assertThat(valueOf(groupFields.get(1).computedOffset()), is(valueOf(4))); assertThat(valueOf(groupFields.get(1).type().encodedLength()), is(valueOf(8))); }
@Test public void shouldCalculateGroupOffsetWithPaddingFromBlockLengthAndGroupBlockLength() throws Exception { final MessageSchema schema = parse(TestUtil.getLocalResource( "block-length-schema.xml"), ParserOptions.DEFAULT); final List<Field> fields = schema.getMessage(3).fields(); assertThat(valueOf(fields.get(0).computedOffset()), is(valueOf(0))); assertThat(valueOf(fields.get(0).type().encodedLength()), is(valueOf(8))); assertThat(valueOf(fields.get(1).computedOffset()), is(valueOf(64))); Assert.assertNull(fields.get(1).type()); assertThat(valueOf(fields.get(1).computedBlockLength()), is(valueOf(16))); final List<Field> groupFields = fields.get(1).groupFields(); assertThat(valueOf(groupFields.size()), is(valueOf(2))); assertThat(valueOf(groupFields.get(0).computedOffset()), is(valueOf(0))); assertThat(valueOf(groupFields.get(0).type().encodedLength()), is(valueOf(4))); assertThat(valueOf(groupFields.get(1).computedOffset()), is(valueOf(4))); assertThat(valueOf(groupFields.get(1).type().encodedLength()), is(valueOf(8))); }
field.computedBlockLength(Math.max(field.blockLength(), groupBlockLength)); field.computedBlockLength(size);
private void addFieldSignal(final Field field, final Signal signal) { final Encoding.Builder encodingBuilder = new Encoding.Builder() .epoch(field.epoch()) .timeUnit(field.timeUnit()) .presence(mapPresence(field.presence())) .semanticType(semanticTypeOf(null, field)); if (field.presence() == Presence.CONSTANT && null != field.valueRef()) { final String valueRef = field.valueRef(); final byte[] bytes; bytes = valueRef.getBytes(StandardCharsets.UTF_8); encodingBuilder.constValue(new PrimitiveValue(bytes, "UTF-8", valueRef.length())); encodingBuilder.primitiveType(PrimitiveType.CHAR); } final Token token = new Token.Builder() .signal(signal) .size(field.computedBlockLength()) .name(field.name()) .description(field.description()) .id(field.id()) .offset(field.computedOffset()) .version(field.sinceVersion()) .deprecated(field.deprecated()) .encoding(encodingBuilder.build()) .build(); tokenList.add(token); }
field.computedBlockLength(Math.max(field.blockLength(), groupBlockLength)); field.computedBlockLength(size);
field.computedBlockLength(Math.max(field.blockLength(), groupBlockLength)); field.computedBlockLength(size);
private void addFieldSignal(final Field field, final Signal signal) { final Token token = new Token.Builder() .signal(signal) .size(field.computedBlockLength()) .name(field.name()) .id(field.id()) .offset(field.computedOffset()) .version(field.sinceVersion()) .encoding(new Encoding.Builder() .epoch(field.epoch()) .timeUnit(field.timeUnit()) .semanticType(semanticTypeOf(null, field)) .build()) .build(); tokenList.add(token); }
private void addFieldSignal(final Field field, final Signal signal) { final Encoding.Builder encodingBuilder = new Encoding.Builder() .epoch(field.epoch()) .timeUnit(field.timeUnit()) .presence(mapPresence(field.presence())) .semanticType(semanticTypeOf(null, field)); if (field.presence() == Presence.CONSTANT && null != field.valueRef()) { final String valueRef = field.valueRef(); final byte[] bytes; bytes = valueRef.getBytes(StandardCharsets.UTF_8); encodingBuilder.constValue(new PrimitiveValue(bytes, "UTF-8", valueRef.length())); encodingBuilder.primitiveType(PrimitiveType.CHAR); } final Token token = new Token.Builder() .signal(signal) .size(field.computedBlockLength()) .name(field.name()) .description(field.description()) .id(field.id()) .offset(field.computedOffset()) .version(field.sinceVersion()) .deprecated(field.deprecated()) .encoding(encodingBuilder.build()) .build(); tokenList.add(token); }
private void addFieldSignal(final Field field, final Signal signal) { final Encoding.Builder encodingBuilder = new Encoding.Builder() .epoch(field.epoch()) .timeUnit(field.timeUnit()) .presence(mapPresence(field.presence())) .semanticType(semanticTypeOf(null, field)); if (field.presence() == Presence.CONSTANT && null != field.valueRef()) { final String valueRef = field.valueRef(); final byte[] bytes; bytes = valueRef.getBytes(StandardCharsets.UTF_8); encodingBuilder.constValue(new PrimitiveValue(bytes, "UTF-8", valueRef.length())); encodingBuilder.primitiveType(PrimitiveType.CHAR); } final Token token = new Token.Builder() .signal(signal) .size(field.computedBlockLength()) .name(field.name()) .description(field.description()) .id(field.id()) .offset(field.computedOffset()) .version(field.sinceVersion()) .deprecated(field.deprecated()) .encoding(encodingBuilder.build()) .build(); tokenList.add(token); }
field.computedBlockLength(Math.max(field.blockLength(), groupBlockLength));