@Override public StaticBuffer getValue(Entry entry) { return entry.getValue(); }
private KCVSMessage parseMessage(Entry msg) { ReadBuffer r = msg.asReadBuffer(); Instant timestamp = times.getTime(r.getLong()); String senderId = manager.serializer.readObjectNotNull(r,String.class); return new KCVSMessage(msg.getValue(),timestamp,senderId); }
public SingleUpdateBuilder additions(final List<Entry> additions) { for (Entry addition : additions) { put(addition.getColumn(), addition.getValue()); } return this; }
private Collection<MutateWorker> createWorkersForAdditions(final StaticBuffer hashKey, final List<Entry> additions, final DynamoDbStoreTransaction txh) { return additions.stream().map(addition -> { final StaticBuffer rangeKey = addition.getColumn(); final Map<String, AttributeValue> keys = new ItemBuilder().hashKey(hashKey) .rangeKey(rangeKey) .build(); final Expression updateExpression = new MultiUpdateExpressionBuilder(this, txh).hashKey(hashKey) .rangeKey(rangeKey) .value(addition.getValue()) .build(); return super.createUpdateItemRequest() .withUpdateExpression(updateExpression.getUpdateExpression()) .withConditionExpression(updateExpression.getConditionExpression()) .withExpressionAttributeValues(updateExpression.getAttributeValues()) .withKey(keys); }) .map(request -> new UpdateItemWorker(request, client.getDelegate())) .collect(Collectors.toList()); }
Statement insertColumn(final StaticBuffer key, final Entry entry, final long timestamp) { final Integer ttl = (Integer) entry.getMetaData().get(EntryMetaData.TTL); if (ttl != null) { return this.insertColumnWithTTL.bind() .setBytes(KEY_BINDING, key.asByteBuffer()) .setBytes(COLUMN_BINDING, entry.getColumn().asByteBuffer()) .setBytes(VALUE_BINDING, entry.getValue().asByteBuffer()) .setLong(TIMESTAMP_BINDING, timestamp) .setInt(TTL_BINDING, ttl); } return this.insertColumn.bind() .setBytes(KEY_BINDING, key.asByteBuffer()) .setBytes(COLUMN_BINDING, entry.getColumn().asByteBuffer()) .setBytes(VALUE_BINDING, entry.getValue().asByteBuffer()) .setLong(TIMESTAMP_BINDING, timestamp); }