@Override void writeValue( int stateSlot, Value value, Inclusion inclusion ) { value.writeTo( this ); }
void writeValue( Value value, NativeIndexKey.Inclusion inclusion ) { isArray = false; value.writeTo( this ); this.inclusion = inclusion; }
public abstract <E extends Exception> void writeTo( ValueWriter<E> writer ) throws E;
void from( Value value ) { assertCorrectType( value ); value.writeTo( this ); }
public static String encode( Value array ) { if ( !Values.isArrayValue( array ) ) { throw new IllegalArgumentException( "Only works with arrays" ); } ValueEncoder encoder = new ValueEncoder(); array.writeTo( encoder ); return encoder.result(); }
protected final <E extends Exception> void writeTo( ValueWriter<E> writer, ValueWriter.ArrayType type, Temporal[] values ) throws E { writer.beginArray( values.length, type ); for ( Temporal x : values ) { Value value = Values.temporalValue( x ); value.writeTo( writer ); } writer.endArray(); }
ByteBuffer write( Value value ) { checkState( buf != null, "Writer is closed" ); try { buf.clear(); buf.put( (byte) ValueType.forValue( value ).ordinal() ); value.writeTo( this ); buf.flip(); return buf; } catch ( BufferOverflowException e ) { final int newSize = buf.capacity() * 2; bufMemory.free(); allocateBuf( newSize ); return write( value ); } }
@Test void shouldHandleNull() { // Given PrettyPrinter printer = new PrettyPrinter(); // When Values.NO_VALUE.writeTo( printer ); // Then assertThat( printer.value(), equalTo( "<null>" ) ); }
void verifyWriteTo() { BufferValueWriter writer = new BufferValueWriter(); value.writeTo( writer ); writer.assertBuffer( expected ); } }
@Test void shouldHandleBooleans() { // Given Value array = Values.booleanArray( new boolean[]{true, false, true} ); PrettyPrinter printer = new PrettyPrinter(); // When array.writeTo( printer ); // Then assertThat( printer.value(), equalTo( "[true, false, true]" ) ); }
@Test void shouldHandleByteArrays() { // Given Value array = Values.byteArray( new byte[]{2, 3, 42} ); PrettyPrinter printer = new PrettyPrinter(); // When array.writeTo( printer ); // Then assertThat( printer.value(), equalTo( "[2, 3, 42]" ) ); }
@Test void shouldBeAbleToThrowFromValueWriter() { // Given Value value = Values.of( "This is a value" ); ValueWriter<TestException> writer = throwing( TestException::new ); // Expect assertThrows(TestException.class, () -> value.writeTo( writer ) ); }
public static void encodeValue( PropertyBlock block, int keyId, Value value, DynamicRecordAllocator stringAllocator, DynamicRecordAllocator arrayAllocator, boolean allowStorePointsAndTemporal ) { if ( value instanceof ArrayValue ) { Object asObject = value.asObject(); // Try short array first, i.e. inlined in the property block if ( ShortArray.encode( keyId, asObject, block, PropertyType.getPayloadSize() ) ) { return; } // Fall back to dynamic array store List<DynamicRecord> arrayRecords = new ArrayList<>(); allocateArrayRecords( arrayRecords, asObject, arrayAllocator, allowStorePointsAndTemporal ); setSingleBlockValue( block, keyId, PropertyType.ARRAY, Iterables.first( arrayRecords ).getId() ); for ( DynamicRecord valueRecord : arrayRecords ) { valueRecord.setType( PropertyType.ARRAY.intValue() ); } block.setValueRecords( arrayRecords ); } else { value.writeTo( new PropertyBlockValueWriter( block, keyId, stringAllocator, allowStorePointsAndTemporal ) ); } }
value.writeTo( writeKey ); layout.writeKey( cursor, writeKey );
@Test public void compareToSameAsValue() { Value[] values = {TimeValue.time( 9999, ZoneOffset.of( "+18:00" ) ), TimeValue.time( 10000, ZoneOffset.of( "-18:00" ) ), TimeValue.time( 10000, ZoneOffset.of( "-00:00" ) ), TimeValue.time( 10000, ZoneOffset.of( "+01:00" ) ), TimeValue.time( 10000, ZoneOffset.of( "+03:00" ) ), TimeValue.time( 10000, ZoneOffset.of( "-18:00" ) )}; ZonedTimeIndexKey keyI = new ZonedTimeIndexKey(); ZonedTimeIndexKey keyJ = new ZonedTimeIndexKey(); for ( Value vi : values ) { for ( Value vj : values ) { vi.writeTo( keyI ); vj.writeTo( keyJ ); int expected = Values.COMPARATOR.compare( vi, vj ); assertEquals( format( "comparing %s and %s", vi, vj ), expected, keyI.compareValueTo( keyJ ) ); } } } }
void writeValue( Value value, NativeIndexKey.Inclusion inclusion ) { isArray = false; value.writeTo( this ); this.inclusion = inclusion; }
@Override void writeValue( int stateSlot, Value value, Inclusion inclusion ) { value.writeTo( this ); }
public static String encode( Value array ) { if ( !Values.isArrayValue( array ) ) { throw new IllegalArgumentException( "Only works with arrays" ); } ValueEncoder encoder = new ValueEncoder(); array.writeTo( encoder ); return encoder.result(); }
protected final <E extends Exception> void writeTo( ValueWriter<E> writer, ValueWriter.ArrayType type, Temporal[] values ) throws E { writer.beginArray( values.length, type ); for ( Temporal x : values ) { Value value = Values.temporalValue( x ); value.writeTo( writer ); } writer.endArray(); }