@Override public FijiDataRequest getDataRequest() { FijiDataRequest request = super.getDataRequest(); Collection<FijiDataRequest.Column> columns = request.getColumns(); if (columns.size() != 1) { throw new RuntimeException("Should be exactly one input column"); } FijiDataRequest.Column col = columns.iterator().next(); FijiDataRequestBuilder out = FijiDataRequest.builder(); out.withTimeRange(request.getMinTimestamp(), request.getMaxTimestamp()) .newColumnsDef().withMaxVersions(Integer.MAX_VALUE) .withPageSize(col.getPageSize()) .withFilter(col.getFilter()) .add(col.getFamily(), col.getQualifier()); return out.build(); } }
/** * Constructs a data request with paging enabled for the specified family. * * @param fijiDataRequest to use as a base. * @param qualifierPagingMap of fiji columns to page sizes. * @return A new data request with paging enabled for the specified family. */ public static FijiDataRequest addQualifierPaging(FijiDataRequest fijiDataRequest, Map<FijiColumnName, Integer> qualifierPagingMap) { FijiDataRequestBuilder pagedRequestBuilder = FijiDataRequest.builder(); for (Column column : fijiDataRequest.getColumns()) { FijiColumnName fijiColumnName = column.getColumnName(); if (qualifierPagingMap.containsKey(fijiColumnName)) { Integer pageSize = qualifierPagingMap.get(fijiColumnName); pagedRequestBuilder.newColumnsDef().withPageSize(pageSize).add(fijiColumnName); } } FijiDataRequest merged = fijiDataRequest.merge(pagedRequestBuilder.build()); return merged; }
/** * Constructs a data request with cell paging enabled for the specified columns. * * @param fijiDataRequest to use as a base. * @param cellPagingMap of fiji columns to page sizes. * @return A new data request with paging enabled for the specified columns. */ public static FijiDataRequest addCellPaging(FijiDataRequest fijiDataRequest, Map<FijiColumnName, Integer> cellPagingMap) { FijiDataRequestBuilder pagedRequestBuilder = FijiDataRequest.builder(); for (Column column : fijiDataRequest.getColumns()) { FijiColumnName fijiColumnName = column.getColumnName(); if (cellPagingMap.containsKey(fijiColumnName)) { Integer pageSize = cellPagingMap.get(fijiColumnName); pagedRequestBuilder.newColumnsDef().withPageSize(pageSize).add(fijiColumnName); } } FijiDataRequest merged = fijiDataRequest.merge(pagedRequestBuilder.build()); return merged; }
.create() .withFilter(familyRequest.getFilter()) .withPageSize(familyRequest.getPageSize()) .withMaxVersions(familyRequest.getMaxVersions()) .add(column.getFamily(), column.getQualifier(), familyRequest.getReaderSpec());
qualifierRequestBuilder.newColumnsDef() .withFilter(column.getFilter()) .withPageSize(column.getPageSize()) .withMaxVersions(column.getMaxVersions()) .add(columnName.getFamily(), columnName.getQualifier());
.create() .withFilter(mColumnRequest.getFilter()) .withPageSize(FijiDataRequest.PAGING_DISABLED) .withMaxVersions(mColumnRequest.getMaxVersions()) .add(column, mColumnRequest.getReaderSpec());
/** {@inheritDoc} */ @Override public FijiRowData next(final int pageSize) { if (!hasNext()) { throw new NoSuchElementException("Fiji pager is exhausted."); } final FijiColumnName column = mColumnRequest.getColumnName(); final ColumnsDef columnDef = ColumnsDef .create() .withFilter(mColumnRequest.getFilter()) .withPageSize(FijiDataRequest.PAGING_DISABLED) .withMaxVersions(mColumnRequest.getMaxVersions()) .add(column, mColumnRequest.getReaderSpec()); final FijiDataRequestBuilder dataRequest = FijiDataRequest.builder(); dataRequest.addColumns(columnDef); final List<FijiCell<Object>> cells = ImmutableList.copyOf(Iterators.limit(mCells, pageSize)); final FijiResult<Object> result = MaterializedFijiResult.create( mResult.getEntityId(), dataRequest.build(), mLayout, ImmutableSortedMap.<FijiColumnName, List<FijiCell<Object>>>naturalOrder() .put(column, cells) .build()); return new FijiResultRowData(mLayout, result); }
/** * Return a builder for columns, initialized from an existing * {@link FijiDataRequest.Column}. * * <p>Creates an object that allows you to specify a set of related columns attached * to the same FijiDataRequest that all share the same retrieval properties, like * the number of max versions.</p> * * <p>This builder will have all properties fully initialized, and it will already * include a request for the column named as an argument. Only additional calls to * <code>FijiDataRequestBuilder.ColumnsDef.add(...)</code> are permitted.</p> * * @param existingColumn is a Column from an existing FijiDataRequest object that should * be included in this new FijiDataRequest. * @return a new FijiDataRequestBuilder.ColumnsDef builder object associated with this * data request builder. */ public ColumnsDef newColumnsDef(FijiDataRequest.Column existingColumn) { return newColumnsDef() .withFilter(existingColumn.getFilter()) .withPageSize(existingColumn.getPageSize()) .withMaxVersions(existingColumn.getMaxVersions()) .add(existingColumn.getFamily(), existingColumn.getQualifier()); }