/** {@inheritDoc} */ @Override public NavigableSet<Long> getTimestamps(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final NavigableSet<Long> timestamps = Sets.newTreeSet(); for (final FijiCell<?> cell : mResult.narrowView(column)) { timestamps.add(cell.getTimestamp()); } return timestamps; }
/** {@inheritDoc} */ @Override public <T> NavigableMap<Long, FijiCell<T>> getCells(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final NavigableMap<Long, FijiCell<T>> cells = Maps.newTreeMap(TimestampComparator.INSTANCE); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { cells.put(cell.getTimestamp(), cell); } return cells; }
/** {@inheritDoc} */ @Override public boolean containsColumn(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); return containsColumnRequest(column) && mResult.narrowView(column).iterator().hasNext(); }
/** {@inheritDoc} */ @Override public <T> Iterable<FijiCell<T>> asIterable( final String family, final String qualifier ) { final FijiColumnName column = FijiColumnName.create(family, qualifier); Preconditions.checkArgument(containsColumnRequest(column), "Column %s has no data request.", column, mResult.getDataRequest()); return mResult.narrowView(column); }
/** {@inheritDoc} */ @Override public NavigableSet<String> getQualifiers(final String family) { final FijiColumnName column = FijiColumnName.create(family, null); validateColumnRequest(column); final NavigableSet<String> qualifiers = Sets.newTreeSet(); for (final FijiCell<?> cell : mResult.narrowView(column)) { qualifiers.add(cell.getColumn().getQualifier()); } return qualifiers; }
/** {@inheritDoc} */ @Override public <T> NavigableMap<Long, T> getValues(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final NavigableMap<Long, T> values = Maps.newTreeMap(TimestampComparator.INSTANCE); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { values.put(cell.getTimestamp(), cell.getData()); } return values; }
/** {@inheritDoc} */ @Override public <T> FijiCell<T> getMostRecentCell(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); return Helpers.getFirst(mResult.<T>narrowView(column)); }
/** {@inheritDoc} */ @Override @SuppressWarnings("unchecked") public <U extends T> FijiResult<U> narrowView(final FijiColumnName column) { final FijiDataRequest narrowRequest = narrowRequest(column, mDataRequest); if (narrowRequest.isEmpty()) { return new EmptyFijiResult<U>(mMaterializedResult.getEntityId(), narrowRequest); } boolean containsPagedColumns = false; boolean containsUnpagedColumns = false; for (Column columnRequest : narrowRequest.getColumns()) { if (columnRequest.isPagingEnabled()) { containsPagedColumns = true; } else { containsUnpagedColumns = true; } if (containsPagedColumns && containsUnpagedColumns) { return DefaultFijiResult.create( narrowRequest, mMaterializedResult.<U>narrowView(column), mPagedResult.<U>narrowView(column)); } } if (containsPagedColumns) { return mPagedResult.narrowView(column); } else { return mMaterializedResult.narrowView(column); } }
/** * Returns a {@code SortedMap} of {@code FijiColumnName} to list of {@code FijiCell} of the * provided {@code FijiResult}. *<p> * Should not be used with PagedFijiResults *</p> * * @param result {@code FijiResult} for which to get materialized result * @param <T> the type of values in the {@code FijiResult} * @return A {@code SortedMap} of each {@code FijiColumnName} to list of {@code FijiCell} * the contents of the materialized result */ public static <T> SortedMap<FijiColumnName, List<FijiCell<T>>> getMaterializedContents(final FijiResult<T> result) { SortedMap<FijiColumnName, List<FijiCell<T>>> materializedResult = new TreeMap<FijiColumnName, List<FijiCell<T>>>(); for (Column column: result.getDataRequest().getColumns()) { if (column.isPagingEnabled()) { throw new IllegalArgumentException( "Columns should not be paged when using MaterializedResult"); } FijiColumnName columnName = column.getColumnName(); List<FijiCell<T>> cells = ImmutableList.copyOf(result.narrowView(columnName).iterator()); materializedResult.put(columnName, cells); } return materializedResult; }
/** {@inheritDoc} */ @Override public <T> NavigableMap<String, NavigableMap<Long, FijiCell<T>>> getCells(final String family) { final FijiColumnName column = FijiColumnName.create(family, null); validateColumnRequest(column); Preconditions.checkState(mLayout.getFamilyMap().get(family).isMapType(), "getCells(String family) is only enabled on map type column families." + " The column family [%s], is a group type column family." + " Please use the getCells(String family, String qualifier) method.", family); final NavigableMap<String, NavigableMap<Long, FijiCell<T>>> qualifiers = Maps.newTreeMap(); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { NavigableMap<Long, FijiCell<T>> columnValues = qualifiers.get(cell.getColumn().getQualifier()); if (columnValues == null) { columnValues = Maps.newTreeMap(TimestampComparator.INSTANCE); qualifiers.put(cell.getColumn().getQualifier(), columnValues); } columnValues.put(cell.getTimestamp(), cell); } return qualifiers; }
/** {@inheritDoc} */ @Override public <T> NavigableMap<String, NavigableMap<Long, T>> getValues(final String family) { final FijiColumnName column = FijiColumnName.create(family, null); validateColumnRequest(column); Preconditions.checkState(mLayout.getFamilyMap().get(family).isMapType(), "getValues(String family) is only enabled on map type column families." + " The column family [%s], is a group type column family." + " Please use the getValues(String family, String qualifier) method.", family); final NavigableMap<String, NavigableMap<Long, T>> qualifiers = Maps.newTreeMap(); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { NavigableMap<Long, T> columnValues = qualifiers.get(cell.getColumn().getQualifier()); if (columnValues == null) { columnValues = Maps.newTreeMap(TimestampComparator.INSTANCE); qualifiers.put(cell.getColumn().getQualifier(), columnValues); } columnValues.put(cell.getTimestamp(), cell.getData()); } return qualifiers; }
/** {@inheritDoc} */ @Override public <T> FijiCell<T> getCell( final String family, final String qualifier, final long version ) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final FijiResult<T> columnView = mResult.narrowView(column); for (final FijiCell<T> cell : columnView) { final long cellVersion = cell.getTimestamp(); if (cellVersion == version) { return cell; } else if (cellVersion < version) { break; } } return null; }
if (familyRequest != null) { String previousQualifier = null; for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { final String qualifier = cell.getColumn().getQualifier(); if (!qualifier.equals(previousQualifier)) { final FijiCell<T> cell = Helpers.getFirst(mResult.<T>narrowView(requestedColumn)); if (cell != null) { qualifiers.put(cell.getColumn().getQualifier(), cell);
/** {@inheritDoc} */ @Override public FijiPager getPager(final String family) throws FijiColumnPagingNotEnabledException { final FijiColumnName column = FijiColumnName.create(family, null); Preconditions.checkState(mLayout.getFamilyMap().get(family).isMapType(), "getPager(String family) is only enabled on map type column families. " + "The column family '%s' is a group type column family. " + "Please use the getPager(String family, String qualifier) method.", family); final Column columnRequest = mResult.getDataRequest().getColumn(column); Preconditions.checkNotNull(columnRequest, "Requested column %s is not included in the data request %s.", column, mResult.getDataRequest()); if (!columnRequest.isPagingEnabled()) { throw new FijiColumnPagingNotEnabledException( String.format("Requested column %s does not have paging enabled in data request %s.", column, mResult.getDataRequest())); } return new FijiResultQualifierPager(mResult.narrowView(column), mLayout); }
/** {@inheritDoc} */ @Override public FijiPager getPager( final String family, final String qualifier ) throws FijiColumnPagingNotEnabledException { final FijiColumnName column = FijiColumnName.create(family, qualifier); final Column columnRequest = mResult.getDataRequest().getRequestForColumn(column); Preconditions.checkNotNull(columnRequest, "Requested column %s is not included in the data request %s.", column, mResult.getDataRequest()); if (!columnRequest.isPagingEnabled()) { throw new FijiColumnPagingNotEnabledException( String.format("Requested column %s does not have paging enabled in data request %s.", column, mResult.getDataRequest())); } return new FijiResultPager(mResult.narrowView(column), mLayout); }
if (familyRequest != null) { String previousQualifier = null; final FijiResult<T> narrowView = mResult.narrowView(column); for (final FijiCell<T> cell : narrowView) { final String qualifier = cell.getColumn().getQualifier(); final FijiCell<T> cell = Helpers.getFirst(mResult.<T>narrowView(requestedColumn)); if (cell != null) { qualifiers.put(cell.getColumn().getQualifier(), cell.getData());