@Override public void writeInteger( short value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.SHORT, value ); }
@Override public void writeInteger( int value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.INT, value ); }
@Override public void writeInteger( byte value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.BYTE, value ); }
@Override public void writeBoolean( boolean value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.BOOL, value ? 1L : 0L ); }
@Override public void writeString( char value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.CHAR, value ); }
@Override public void writeFloatingPoint( float value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.FLOAT, Float.floatToRawIntBits( value ) ); }
@Override public void writeString( String value ) throws IllegalArgumentException { // Try short string first, i.e. inlined in the property block if ( LongerShortString.encode( keyId, value, block, PropertyType.getPayloadSize() ) ) { return; } // Fall back to dynamic string store byte[] encodedString = encodeString( value ); List<DynamicRecord> valueRecords = new ArrayList<>(); allocateStringRecords( valueRecords, encodedString, stringAllocator ); setSingleBlockValue( block, keyId, PropertyType.STRING, Iterables.first( valueRecords ).getId() ); for ( DynamicRecord valueRecord : valueRecords ) { valueRecord.setType( PropertyType.STRING.intValue() ); } block.setValueRecords( valueRecords ); }
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 ) ); } }
public static PropertyCommand createProperty( long id, PropertyType type, int key, long... valueRecordIds ) { PropertyRecord record = new PropertyRecord( id ); record.setInUse( true ); record.setCreated(); PropertyBlock block = new PropertyBlock(); if ( valueRecordIds.length == 0 ) { PropertyStore.encodeValue( block, key, Values.of( 123 ), null, null, true ); } else { PropertyStore.setSingleBlockValue( block, key, type, valueRecordIds[0] ); block.setValueRecords( dynamicRecords( valueRecordIds ) ); } record.addPropertyBlock( block ); return new PropertyCommand( new PropertyRecord( id ), record ); }
@Override public void writeBoolean( boolean value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.BOOL, value ? 1L : 0L ); }
@Override public void writeInteger( int value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.INT, value ); }
@Override public void writeInteger( byte value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.BYTE, value ); }
@Override public void writeInteger( short value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.SHORT, value ); }
@Override public void writeString( char value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.CHAR, value ); }
@Override public void writeFloatingPoint( float value ) throws IllegalArgumentException { setSingleBlockValue( block, keyId, PropertyType.FLOAT, Float.floatToRawIntBits( value ) ); }
@Override public void writeString( String value ) throws IllegalArgumentException { // Try short string first, i.e. inlined in the property block if ( LongerShortString.encode( keyId, value, block, PropertyType.getPayloadSize() ) ) { return; } // Fall back to dynamic string store byte[] encodedString = encodeString( value ); List<DynamicRecord> valueRecords = new ArrayList<>(); allocateStringRecords( valueRecords, encodedString, stringAllocator ); setSingleBlockValue( block, keyId, PropertyType.STRING, Iterables.first( valueRecords ).getId() ); for ( DynamicRecord valueRecord : valueRecords ) { valueRecord.setType( PropertyType.STRING.intValue() ); } block.setValueRecords( valueRecords ); }
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 ) ); } }