for (FijiDataRequest.Column column : columnsDef.buildColumns()) { if (column.getQualifier() == null) { final boolean isNotDuplicate = families.add(column.getFamily()); Preconditions.checkState(isNotDuplicate, "Duplicate definition for family '%s'.", column.getFamily()); Preconditions.checkState(!familiesOfColumns.contains(column.getFamily()), "FijiDataRequest may not simultaneously contain definitions for family '%s' " + "and definitions for fully qualified columns in family '%s'.", column.getFamily(), column.getFamily()); Preconditions.checkState(isNotDuplicate, "Duplicate definition for column '%s'.", column); Preconditions.checkState(!families.contains(column.getFamily()), "FijiDataRequest may not simultaneously contain definitions for family '%s' " + "and definitions for fully qualified columns '%s'.", column.getFamily(), column.getColumnName()); familiesOfColumns.add(column.getFamily());
layout.getFamilyMap().get(columnRequest.getFamily()).getLocalityGroup().getId(); localityGroups.add(localityGroupId);
/** * Initializes the list of associated column family FijiPagers for this FijiRowData. * * @param fijiDataRequest the data request for this FijiRowData. * @return map of families to their associated qualifier pagers. */ private Map<String, FijiPager> getFijiQualifierPagers(FijiDataRequest fijiDataRequest) { Map<String, FijiPager> fijiQualifierPagers = Maps.newHashMap(); for (FijiDataRequest.Column column : fijiDataRequest.getColumns()) { if (column.isPagingEnabled() && !column.getColumnName().isFullyQualified()) { // Only include pagers for column families. try { LOG.info("Paging enabled for column family: {}", column.getColumnName()); FijiPager fijiPager = mRowData.getPager(column.getFamily()); fijiQualifierPagers.put(column.getFamily(), fijiPager); } catch (FijiColumnPagingNotEnabledException e) { LOG.warn("Paging not enabled for column family: {}", column.getColumnName()); } } } return fijiQualifierPagers; }
if (myCol.getFamily().equals(otherCol.getFamily())) { outFamily = mergeColumn(myCol.getFamily(), null, myCol, outFamily); families.add(outFamily.getFamily()); if (myCol.getQualifier() == null && !families.contains(myCol.getFamily())) { Column outFamily = myCol; if (otherCol.getFamily().equals(myCol.getFamily())) { outFamily = mergeColumn(myCol.getFamily(), null, outFamily, otherCol); families.add(outFamily.getFamily()); if (otherCol.getQualifier() != null && !families.contains(otherCol.getFamily())) { Column myCol = getColumn(otherCol.getFamily(), otherCol.getQualifier()); if (null == myCol) { outCols.add(mergeColumn(myCol.getFamily(), myCol.getQualifier(), myCol, otherCol)); if (myCol.getQualifier() != null && !families.contains(myCol.getFamily())) { Column otherCol = other.getColumn(myCol.getFamily(), myCol.getQualifier()); if (null == otherCol) {
final List<FijiColumnName> requestedColumns = Lists.newArrayList(); for (final Column columnRequest : columnRequests) { if (columnRequest.getFamily().equals(family)) { requestedColumns.add(columnRequest.getColumnName());
final List<FijiColumnName> requestedColumns = Lists.newArrayList(); for (final Column columnRequest : columnRequests) { if (columnRequest.getFamily().equals(family)) { requestedColumns.add(columnRequest.getColumnName());
/** * Validates a data request against this validator's table layout. * * @param dataRequest The FijiDataRequest to validate. * @throws FijiDataRequestException If the data request is invalid. */ public void validate(FijiDataRequest dataRequest) { for (FijiDataRequest.Column column : dataRequest.getColumns()) { final String qualifier = column.getQualifier(); final FijiTableLayout.LocalityGroupLayout.FamilyLayout fLayout = mTableLayout.getFamilyMap().get(column.getFamily()); if (null == fLayout) { throw new FijiDataRequestException(String.format("Table '%s' has no family named '%s'.", mTableLayout.getName(), column.getFamily())); } if (fLayout.isGroupType() && (null != column.getQualifier())) { if (!fLayout.getColumnMap().containsKey(qualifier)) { throw new FijiDataRequestException(String.format("Table '%s' has no column '%s'.", mTableLayout.getName(), column.getName())); } } } } }
/** * 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()); }
/** * Initializes the list of associated fully qualified cell FijiPagers for this FijiRowData. Any * non fully qualified cell paging configuration will be ignored. * * @param fijiDataRequest the data request for this FijiRowData. * @param fijiRowData the fijiRowData to generate the pagers from. * @return map of FijiColumnNames to their associated cell pagers. */ private static Map<FijiColumnName, FijiPager> getFijiCellPagers(FijiDataRequest fijiDataRequest, FijiRowData fijiRowData) { Map<FijiColumnName, FijiPager> fijiCellPagers = Maps.newHashMap(); for (FijiDataRequest.Column column : fijiDataRequest.getColumns()) { if (column.isPagingEnabled() && column.getColumnName().isFullyQualified()) { // Only include pagers for fully qualified cells try { LOG.info("Paging enabled for column: {}", column.getColumnName()); FijiPager fijiPager = fijiRowData.getPager(column.getFamily(), column.getQualifier()); fijiCellPagers.put(column.getColumnName(), fijiPager); } catch (FijiColumnPagingNotEnabledException e) { LOG.warn("Paging not enabled for column: {}", column.getColumnName()); } } } return fijiCellPagers; }
@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(); } }
/** * Gets the column name. * * @return The column name. */ public FijiColumnName getColumnName() { return FijiColumnName.create(getFamily(), getQualifier()); }