/** * Returns a new <code>Pair</code> with the right hand side set to the passed value. */ public <T> Pair<V, T> withRhSide(T newRhSide) { return Pair.create(lhSide, newRhSide); }
/** * Returns a pair with the left and right reversed. * @return */ public Pair<W, V> getReversed() { return create(rhSide, lhSide); }
static Pair<byte[], Long> decompose(ByteBuffer inputComposite) { ByteBuffer composite = inputComposite.slice().order(ByteOrder.BIG_ENDIAN); short len = composite.getShort(); byte[] colName = new byte[len]; composite.get(colName); short shouldBeZero = composite.getShort(); Validate.isTrue(shouldBeZero == 0); byte shouldBe8 = composite.get(); Validate.isTrue(shouldBe8 == 8); long ts = composite.getLong(); return Pair.create(colName, ~ts); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { int size = 32; return Pair.create(PtBytes.encodeBase64String(value, offset, size), 32); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { return Pair.create( String.valueOf(EncodingUtils.decodeNullableFixedLong(value, offset)), 9); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { int size = value.length - offset; return Pair.create(PtBytes.toString(value, offset, size), size); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { long val = EncodingUtils.decodeLittleEndian(value, offset); return Pair.create(String.valueOf(val), PtBytes.SIZEOF_LONG); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { long val = Long.MIN_VALUE^PtBytes.toLong(value, offset); return Pair.create(String.valueOf(val), PtBytes.SIZEOF_LONG); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { int size = value.length - offset; return Pair.create(PtBytes.encodeBase64String(value, offset, size), size); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { long val = EncodingUtils.decodeVarLong(value, offset); return Pair.create(String.valueOf(val), EncodingUtils.sizeOfVarLong(val)); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { long val = EncodingUtils.decodeSignedVarLong(value, offset); return Pair.create(String.valueOf(val), EncodingUtils.sizeOfSignedVarLong(val)); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create("\"" + p.getLhSide() + "\"", p.getRhSide()); }
@Override public Pair<String, Integer> convertToString(byte[] value, int offset) { byte[] bytes = EncodingUtils.decodeSizedBytes(value, offset); return Pair.create(PtBytes.encodeBase64String(bytes), EncodingUtils.sizeOfSizedBytes(bytes)); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create("\"" + p.getLhSide() + "\"", p.getRhSide()); }
Pair<String, Long> getDirect(TableReference tableRef, String rowName, String columnName, long timestamp) { Cell cell = createCell(rowName, columnName); Value valueBytes = keyValueService.get(tableRef, ImmutableMap.of(cell, timestamp)).get(cell); return valueBytes != null ? Pair.create(PtBytes.toString(valueBytes.getContents()), valueBytes.getTimestamp()) : null; }
@Override public Pair<Long, Sha256Hash> storeStream(InputStream stream) { // Store empty metadata before doing anything long id = storeEmptyMetadata(); StreamMetadata metadata = storeBlocksAndGetFinalMetadata(null, id, stream); storeMetadataAndIndex(id, metadata); return Pair.create(id, new Sha256Hash(metadata.getHash().toByteArray())); }
@Test public void checkAndSetThrowsIfTryingToSetToNull() { assertThatThrownBy(() -> CassandraTimestampUtils.constructCheckAndSetMultipleQuery( ImmutableMap.of(COLUMN_NAME_1, Pair.create(VALUE_1, null)))) .isInstanceOf(IllegalStateException.class); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create(JSONValue.toJSONString(p.getLhSide()), p.getRhSide()); }
@Test public void checkAndSetGeneratesBatchedStatements() { CqlQuery query = CassandraTimestampUtils.constructCheckAndSetMultipleQuery( ImmutableMap.of(COLUMN_NAME_1, Pair.create(VALUE_1, VALUE_2), COLUMN_NAME_2, Pair.create(VALUE_2, VALUE_1))); assertThat(query.toString()).contains("BEGIN UNLOGGED BATCH").contains("APPLY BATCH;"); }
@Test public void checkAndSetIsInsertIfNotExistsIfExpectedIsNull() { CqlQuery query = CassandraTimestampUtils.constructCheckAndSetMultipleQuery( ImmutableMap.of(COLUMN_NAME_1, Pair.create(null, VALUE_1))); assertThat(query.toString()).contains("INSERT").contains("IF NOT EXISTS;"); }