/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { FijiDataRequest dataRequest = FijiDataRequest.builder().build(); for (FijiRowFilter filter : mFilters) { if (filter != null) { dataRequest = dataRequest.merge(filter.getDataRequest()); } } return dataRequest; }
/** * Constructs the data request required to read the data in the given expressions. * * @param expressions The Fiji row expressions describing the data to read. * @return The data request. */ public static FijiDataRequest getDataRequest(List<FijiRowExpression> expressions) { // TODO: Use only the expressions that are used in the current query. // TODO: Don't request all versions at all timestamps if we don't have to. FijiDataRequest merged = FijiDataRequest.builder().build(); //TODO Rewrite this to use new builder semantics. for (FijiRowExpression expression : expressions) { merged = merged.merge(expression.getDataRequest()); } // If this is a * build an expression that includes everything 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; }
/** * 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; }