public InMemoryExtendedDataRow toReadable(VisibilityEvaluator visibilityEvaluator) { propertiesLock.readLock().lock(); try { InMemoryExtendedDataRow row = new InMemoryExtendedDataRow(getId(), getFetchHints()); for (InMemoryProperty column : properties) { if (column.canRead(visibilityEvaluator)) { row.properties.add(column); } } return row; } finally { propertiesLock.readLock().unlock(); } }
@Override protected void addToGroup(InMemoryExtendedDataRow extendedDataRow, Row row) { Object value = serializer.bytesToObject(row.value); extendedDataRow.addColumn(row.column, row.key, value, row.timestamp, row.visibility); }
public boolean canRead(VisibilityEvaluator visibilityEvaluator) { return rows.stream().anyMatch(r -> r.canRead(visibilityEvaluator)); }
public Iterable<ExtendedDataRow> getRows(VisibilityEvaluator visibilityEvaluator) { return rows.stream() .map(row -> row.toReadable(visibilityEvaluator)) .filter(row -> IterableUtils.count(row.getProperties()) > 0) .collect(Collectors.toList()); }
private InMemoryExtendedDataRow findRow(ExtendedDataRowId rowId) { for (InMemoryExtendedDataRow row : rows) { if (row.getId().equals(rowId)) { return row; } } return null; }
private InMemoryExtendedDataRow findOrAddRow(ExtendedDataRowId rowId) { InMemoryExtendedDataRow row = findRow(rowId); if (row != null) { return row; } row = new InMemoryExtendedDataRow(rowId, FetchHints.ALL); rows.add(row); return row; }
public void removeColumn(ExtendedDataRowId rowId, String columnName, String key, Visibility visibility) { InMemoryExtendedDataRow row = findRow(rowId); if (row == null) { return; } row.removeColumn(columnName, key, visibility); } }
@Override protected boolean isPartOfGroup(InMemoryExtendedDataRow extendedDataRow, Row row) { return createExtendedDataRowId(row).equals(extendedDataRow.getId()); }
@Override protected InMemoryExtendedDataRow createGroup(Row row) { ExtendedDataRowId id = createExtendedDataRowId(row); InMemoryExtendedDataRow result = new InMemoryExtendedDataRow(id); addToGroup(result, row); return result; }
public void removeData(ExtendedDataRowId rowId) { rows.removeIf(row -> row.getId().equals(rowId)); }
public void addData( ExtendedDataRowId rowId, String column, String key, Object value, long timestamp, Visibility visibility ) { InMemoryExtendedDataRow row = findOrAddRow(rowId); row.addColumn(column, key, value, timestamp, visibility); }