/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { FijiDataRequestBuilder builder = FijiDataRequest.builder(); builder.newColumnsDef().add(mFamily, mQualifier); return builder.build(); }
/** * Narrow a {@link FijiDataRequest} to a column. Will return a new data request. The column may * be fully qualified or a family. * * @param column to narrow data request. * @param dataRequest to narrow. * @return a data request narrowed to the specified column. */ public static FijiDataRequest narrowRequest( final FijiColumnName column, final FijiDataRequest dataRequest ) { final List<Column> columnRequests = getColumnRequests(column, dataRequest); final FijiDataRequestBuilder builder = FijiDataRequest.builder(); builder.withTimeRange(dataRequest.getMinTimestamp(), dataRequest.getMaxTimestamp()); for (Column columnRequest : columnRequests) { builder.newColumnsDef(columnRequest); } return builder.build(); }
/** * Creates a new {@link FijiDataRequestBuilder}. Use this to configure a FijiDataRequest, * then create one with the {@link FijiDataRequestBuilder#build()} method. * * @return a new FijiDataRequestBuilder. */ public static FijiDataRequestBuilder builder() { return new FijiDataRequestBuilder(); } }
.withTimeRange(mDataRequest.getMinTimestamp(), mPageMaxTimestamp) .addColumns(ColumnsDef.create() .withFilter(mColumnRequest.getFilter()) .withMaxVersions(maxVersions) .add(mColumnName)) .build();
/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { final CellRewriteSpec spec; try { spec = getSpecFromConf(getConf()); } catch (IOException ioe) { throw new FijiIOException(ioe); } final FijiColumnName column = new FijiColumnName(spec.getColumn()); final ColumnReaderSpec readerSpec; if (spec.getReaderSchema() == null) { readerSpec = ColumnReaderSpec.avroWriterSchemaGeneric(); } else { final Schema readerSchema = new Schema.Parser().parse(spec.getReaderSchema()); readerSpec = ColumnReaderSpec.avroReaderSchemaGeneric(readerSchema); } return FijiDataRequest.builder() .addColumns(ColumnsDef.create() .withMaxVersions(HConstants.ALL_VERSIONS) .add(column, readerSpec)) .build(); }
/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { return FijiDataRequest.builder().build(); }
/** * 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()); }
/** * Sets the time range of cells to return: [<code>minTimestamp</code>, * <code>maxTimestamp</code>). * * @param minTimestamp Request cells with a timestamp at least minTimestamp. * @param maxTimestamp Request cells with a timestamp less than maxTimestamp. * @return This data request builder instance. */ public FijiDataRequestBuilder withTimeRange(long minTimestamp, long maxTimestamp) { checkNotBuilt(); Preconditions.checkArgument(minTimestamp >= 0, "minTimestamp must be positive or zero, but got: %d", minTimestamp); Preconditions.checkArgument(maxTimestamp > minTimestamp, "Invalid time range [%d--%d]", minTimestamp, maxTimestamp); Preconditions.checkState(!mIsTimeRangeSet, "Cannot set time range more than once."); mIsTimeRangeSet = true; mMinTimestamp = minTimestamp; mMaxTimestamp = maxTimestamp; return this; }
.withTimeRange(mDataRequest.getMinTimestamp(), mDataRequest.getMaxTimestamp()) .addColumns(ColumnsDef.create() .withFilter(filter) .withMaxVersions(1) // HBase pagination filter forces max-versions to 1 .add(mFamily)) .build();
FijiDataRequest.builder().addColumns(columnDef).build().getColumn(column)); } else {
/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { final FijiDataRequestBuilder builder = FijiDataRequest.builder(); return builder.build(); }
/** * Return a builder for columns associated with this FijiDataRequestBuilder. * * <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> * * @return a new FijiDataRequestBuilder.ColumnsDef builder object associated with this * data request builder. */ public ColumnsDef newColumnsDef() { checkNotBuilt(); final ColumnsDef c = new ColumnsDef(); mColumnsDefs.add(c); return c; }
/** * Factory method for a simple FijiDataRequest for the most recent version * of each qualifier in one column family. * * <p>This method does not facilitate additional customization of the * data request, such as requesting multiple column families, or setting * the timestamp range. For that, get a {@link FijiDataRequestBuilder} by * calling {@link #builder()}.</p> * * @param family the column family to request * @return a new FijiDataRequest that retrieves the selected column family. */ public static FijiDataRequest create(String family) { FijiDataRequestBuilder builder = builder(); builder.newColumnsDef().addFamily(family); return builder.build(); }
long maxTimestamp) { final FijiDataRequestBuilder builder = FijiDataRequest.builder() .withTimeRange(minTimestamp, maxTimestamp); builder.newColumnsDef().withMaxVersions(maxVersions); return builder.build();
.withTimeRange(mDataRequest.getMinTimestamp(), mDataRequest.getMaxTimestamp()) .addColumns(ColumnsDef.create() .withFilter(filter) .withMaxVersions(1) // HBase pagination filter forces max-versions to 1 .add(mFamily)) .build();
/** {@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); }
/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { return FijiDataRequest.builder().build(); }
checkNotBuilt(); mIsBuilt = true;
/** * Factory method for a simple FijiDataRequest for the most recent * version of a specific family:qualifier. * * <p>This method does not facilitate additional customization of the * data request, such as requesting multiple columns, or setting * the timestamp range. For that, get a {@link FijiDataRequestBuilder} by * calling {@link #builder()}.</p> * * @param family the column family to request * @param qualifier the column qualifier to request * @return a new FijiDataRequest that retrieves the selected column. */ public static FijiDataRequest create(String family, String qualifier) { FijiDataRequestBuilder builder = builder(); builder.newColumnsDef().add(family, qualifier); return builder.build(); }
@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(); } }