@Override public List<NamespacedTodoColumnValue> getRowColumns(NamespacedTodoRow row, ColumnSelection columns) { byte[] bytes = row.persistToBytes(); RowResult<byte[]> rowResult = t.getRows(tableRef, ImmutableSet.of(bytes), columns).get(bytes); if (rowResult == null) { return ImmutableList.of(); } else { List<NamespacedTodoColumnValue> ret = Lists.newArrayListWithCapacity(rowResult.getColumns().size()); for (Entry<byte[], byte[]> e : rowResult.getColumns().entrySet()) { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); ret.add(NamespacedTodoColumnValue.of(col, val)); } return ret; } }
private static Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> getRowMapFromRowResults(Collection<RowResult<byte[]>> rowResults) { Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> rowMap = HashMultimap.create(); for (RowResult<byte[]> result : rowResults) { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(result.getRowName()); for (Entry<byte[], byte[]> e : result.getColumns().entrySet()) { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); rowMap.put(row, NamespacedTodoColumnValue.of(col, val)); } } return rowMap; }
public static NamespacedTodoRowResult of(RowResult<byte[]> rowResult) { NamespacedTodoRow rowName = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(rowResult.getRowName()); Set<NamespacedTodoColumnValue> columnValues = Sets.newHashSetWithExpectedSize(rowResult.getColumns().size()); for (Entry<byte[], byte[]> e : rowResult.getColumns().entrySet()) { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); String value = NamespacedTodoColumnValue.hydrateValue(e.getValue()); columnValues.add(NamespacedTodoColumnValue.of(col, value)); } return new NamespacedTodoRowResult(rowName, ImmutableSet.copyOf(columnValues)); }
@Override public Map<NamespacedTodoRow, BatchingVisitable<NamespacedTodoColumnValue>> getRowsColumnRange(Iterable<NamespacedTodoRow> rows, BatchColumnRangeSelection columnRangeSelection) { Map<byte[], BatchingVisitable<Map.Entry<Cell, byte[]>>> results = t.getRowsColumnRange(tableRef, Persistables.persistAll(rows), columnRangeSelection); Map<NamespacedTodoRow, BatchingVisitable<NamespacedTodoColumnValue>> transformed = Maps.newHashMapWithExpectedSize(results.size()); for (Entry<byte[], BatchingVisitable<Map.Entry<Cell, byte[]>>> e : results.entrySet()) { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); BatchingVisitable<NamespacedTodoColumnValue> bv = BatchingVisitables.transform(e.getValue(), result -> { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getColumnName()); String val = NamespacedTodoColumnValue.hydrateValue(result.getValue()); return NamespacedTodoColumnValue.of(col, val); }); transformed.put(row, bv); } return transformed; }
@Override public Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> get(Multimap<NamespacedTodoRow, NamespacedTodoColumn> cells) { Set<Cell> rawCells = ColumnValues.toCells(cells); Map<Cell, byte[]> rawResults = t.get(tableRef, rawCells); Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> rowMap = HashMultimap.create(); for (Entry<Cell, byte[]> e : rawResults.entrySet()) { if (e.getValue().length > 0) { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getRowName()); NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getColumnName()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); rowMap.put(row, NamespacedTodoColumnValue.of(col, val)); } } return rowMap; }
@Override public List<NamespacedTodoColumnValue> getRowColumns(NamespacedTodoRow row, ColumnSelection columns) { byte[] bytes = row.persistToBytes(); RowResult<byte[]> rowResult = t.getRows(tableRef, ImmutableSet.of(bytes), columns).get(bytes); if (rowResult == null) { return ImmutableList.of(); } else { List<NamespacedTodoColumnValue> ret = Lists.newArrayListWithCapacity(rowResult.getColumns().size()); for (Entry<byte[], byte[]> e : rowResult.getColumns().entrySet()) { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); ret.add(NamespacedTodoColumnValue.of(col, val)); } return ret; } }
@Override public Iterator<Map.Entry<NamespacedTodoRow, NamespacedTodoColumnValue>> getRowsColumnRange(Iterable<NamespacedTodoRow> rows, ColumnRangeSelection columnRangeSelection, int batchHint) { Iterator<Map.Entry<Cell, byte[]>> results = t.getRowsColumnRange(getTableRef(), Persistables.persistAll(rows), columnRangeSelection, batchHint); return Iterators.transform(results, e -> { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getRowName()); NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getColumnName()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); NamespacedTodoColumnValue colValue = NamespacedTodoColumnValue.of(col, val); return Maps.immutableEntry(row, colValue); }); }
public static NamespacedTodoRowResult of(RowResult<byte[]> rowResult) { NamespacedTodoRow rowName = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(rowResult.getRowName()); Set<NamespacedTodoColumnValue> columnValues = Sets.newHashSetWithExpectedSize(rowResult.getColumns().size()); for (Entry<byte[], byte[]> e : rowResult.getColumns().entrySet()) { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); String value = NamespacedTodoColumnValue.hydrateValue(e.getValue()); columnValues.add(NamespacedTodoColumnValue.of(col, value)); } return new NamespacedTodoRowResult(rowName, ImmutableSet.copyOf(columnValues)); }
private static Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> getRowMapFromRowResults(Collection<RowResult<byte[]>> rowResults) { Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> rowMap = HashMultimap.create(); for (RowResult<byte[]> result : rowResults) { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(result.getRowName()); for (Entry<byte[], byte[]> e : result.getColumns().entrySet()) { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); rowMap.put(row, NamespacedTodoColumnValue.of(col, val)); } } return rowMap; }
@Override public Map<NamespacedTodoRow, BatchingVisitable<NamespacedTodoColumnValue>> getRowsColumnRange(Iterable<NamespacedTodoRow> rows, BatchColumnRangeSelection columnRangeSelection) { Map<byte[], BatchingVisitable<Map.Entry<Cell, byte[]>>> results = t.getRowsColumnRange(tableRef, Persistables.persistAll(rows), columnRangeSelection); Map<NamespacedTodoRow, BatchingVisitable<NamespacedTodoColumnValue>> transformed = Maps.newHashMapWithExpectedSize(results.size()); for (Entry<byte[], BatchingVisitable<Map.Entry<Cell, byte[]>>> e : results.entrySet()) { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey()); BatchingVisitable<NamespacedTodoColumnValue> bv = BatchingVisitables.transform(e.getValue(), result -> { NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(result.getKey().getColumnName()); String val = NamespacedTodoColumnValue.hydrateValue(result.getValue()); return NamespacedTodoColumnValue.of(col, val); }); transformed.put(row, bv); } return transformed; }
@Override public Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> get(Multimap<NamespacedTodoRow, NamespacedTodoColumn> cells) { Set<Cell> rawCells = ColumnValues.toCells(cells); Map<Cell, byte[]> rawResults = t.get(tableRef, rawCells); Multimap<NamespacedTodoRow, NamespacedTodoColumnValue> rowMap = HashMultimap.create(); for (Entry<Cell, byte[]> e : rawResults.entrySet()) { if (e.getValue().length > 0) { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getRowName()); NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getColumnName()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); rowMap.put(row, NamespacedTodoColumnValue.of(col, val)); } } return rowMap; }
@Override public Iterator<Map.Entry<NamespacedTodoRow, NamespacedTodoColumnValue>> getRowsColumnRange(Iterable<NamespacedTodoRow> rows, ColumnRangeSelection columnRangeSelection, int batchHint) { Iterator<Map.Entry<Cell, byte[]>> results = t.getRowsColumnRange(getTableRef(), Persistables.persistAll(rows), columnRangeSelection, batchHint); return Iterators.transform(results, e -> { NamespacedTodoRow row = NamespacedTodoRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getRowName()); NamespacedTodoColumn col = NamespacedTodoColumn.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getColumnName()); String val = NamespacedTodoColumnValue.hydrateValue(e.getValue()); NamespacedTodoColumnValue colValue = NamespacedTodoColumnValue.of(col, val); return Maps.immutableEntry(row, colValue); }); }
public long addNamespacedTodoWithIdAndReturnTimestamp(long id, String namespace, Todo todo) { return transactionManager.runTaskWithRetry(tx -> { TodoSchemaTableFactory.of().getNamespacedTodoTable(tx).put( NamespacedTodoTable.NamespacedTodoRow.of(namespace), NamespacedTodoTable.NamespacedTodoColumnValue.of( NamespacedTodoTable.NamespacedTodoColumn.of(id), todo.text())); return tx.getTimestamp(); }); }