/** * Create a Fiji pager backed by a {@code FijiResult}. * * @param result The {@code FijiResult} backing this pager. * @param layout The {@code FijiTableLayout} of the table. */ public FijiResultPager( final FijiResult<Object> result, final FijiTableLayout layout ) { mResult = result; mCells = mResult.iterator(); mLayout = layout; final FijiDataRequest dataRequest = mResult.getDataRequest(); final Collection<Column> columnRequests = dataRequest.getColumns(); Preconditions.checkArgument(columnRequests.size() == 1, "Can not create FijiResultPager with multiple columns. Data request: %s.", dataRequest); mColumnRequest = columnRequests.iterator().next(); }
/** * Create a Fiji qualifier pager backed by a {@code FijiResult}. * * @param result The {@code FijiResult} backing this pager. * @param layout The {@code FijiTableLayout} of the table. */ public FijiResultQualifierPager( final FijiResult<Object> result, final FijiTableLayout layout ) { mResult = result; mCells = Iterators.peekingIterator(mResult.iterator()); mLayout = layout; final FijiDataRequest dataRequest = mResult.getDataRequest(); final Collection<Column> columnRequests = dataRequest.getColumns(); Preconditions.checkArgument(columnRequests.size() == 1, "Can not create FijiResultPager with multiple columns. Data request: %s.", dataRequest); mColumnRequest = columnRequests.iterator().next(); }
/** {@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(); }
/** * 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; }