@Override public Long apply(final FijiCell<?> cell) { return cell.getTimestamp(); } });
/** {@inheritDoc} */ @Override public int compare(final FijiCell<?> o1, final FijiCell<?> o2) { return ComparisonChain.start() .compare(o1.getColumn(), o2.getColumn()) .compare(o2.getTimestamp(), o1.getTimestamp()) .result(); } }
/** {@inheritDoc} */ @Override public NavigableSet<Long> getTimestamps(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final NavigableSet<Long> timestamps = Sets.newTreeSet(); for (final FijiCell<?> cell : mResult.narrowView(column)) { timestamps.add(cell.getTimestamp()); } return timestamps; }
/** * Constructs a FijiCellWritable from an existing FijiCell. * * @param fijiCell from a FijiRowData. */ public FijiCellWritable(FijiCell fijiCell) { mTimestamp = fijiCell.getTimestamp(); mSchema = fijiCell.getWriterSchema(); mData = fijiCell.getData(); }
/** {@inheritDoc} */ @Override public <T> NavigableMap<Long, FijiCell<T>> getCells(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final NavigableMap<Long, FijiCell<T>> cells = Maps.newTreeMap(TimestampComparator.INSTANCE); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { cells.put(cell.getTimestamp(), cell); } return cells; }
/** {@inheritDoc} */ @Override public <T> NavigableMap<Long, T> getValues(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final NavigableMap<Long, T> values = Maps.newTreeMap(TimestampComparator.INSTANCE); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { values.put(cell.getTimestamp(), cell.getData()); } return values; }
/** * Convenience method to add a new cell (represented by the FijiCell) to the row. * * @param cell is the cell to add. * @param schemaOption is the writer schema (contained as an option: either as a string or uid) */ public void addCell(FijiCell<?> cell, SchemaOption schemaOption) { addCell(cell.getFamily(), cell.getQualifier(), cell.getTimestamp(), cell.getData(), schemaOption); }
/** {@inheritDoc} */ @Override public <T> NavigableMap<String, NavigableMap<Long, T>> getValues(final String family) { final FijiColumnName column = FijiColumnName.create(family, null); validateColumnRequest(column); Preconditions.checkState(mLayout.getFamilyMap().get(family).isMapType(), "getValues(String family) is only enabled on map type column families." + " The column family [%s], is a group type column family." + " Please use the getValues(String family, String qualifier) method.", family); final NavigableMap<String, NavigableMap<Long, T>> qualifiers = Maps.newTreeMap(); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { NavigableMap<Long, T> columnValues = qualifiers.get(cell.getColumn().getQualifier()); if (columnValues == null) { columnValues = Maps.newTreeMap(TimestampComparator.INSTANCE); qualifiers.put(cell.getColumn().getQualifier(), columnValues); } columnValues.put(cell.getTimestamp(), cell.getData()); } return qualifiers; }
/** {@inheritDoc} */ @Override public <T> NavigableMap<String, NavigableMap<Long, FijiCell<T>>> getCells(final String family) { final FijiColumnName column = FijiColumnName.create(family, null); validateColumnRequest(column); Preconditions.checkState(mLayout.getFamilyMap().get(family).isMapType(), "getCells(String family) is only enabled on map type column families." + " The column family [%s], is a group type column family." + " Please use the getCells(String family, String qualifier) method.", family); final NavigableMap<String, NavigableMap<Long, FijiCell<T>>> qualifiers = Maps.newTreeMap(); for (final FijiCell<T> cell : mResult.<T>narrowView(column)) { NavigableMap<Long, FijiCell<T>> columnValues = qualifiers.get(cell.getColumn().getQualifier()); if (columnValues == null) { columnValues = Maps.newTreeMap(TimestampComparator.INSTANCE); qualifiers.put(cell.getColumn().getQualifier(), columnValues); } columnValues.put(cell.getTimestamp(), cell); } return qualifiers; }
/** {@inheritDoc} */ @Override public <T> FijiCell<T> getCell( final String family, final String qualifier, final long version ) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); final FijiResult<T> columnView = mResult.narrowView(column); for (final FijiCell<T> cell : columnView) { final long cellVersion = cell.getTimestamp(); if (cellVersion == version) { return cell; } else if (cellVersion < version) { break; } } return null; }
/** * Prints the contents of a single fiji cell to the printstream. * * @param entityId The entity id. * @param cell The FijiCell. * @param printStream The stream to print to. */ private static void printCell(EntityId entityId, FijiCell<?> cell, PrintStream printStream) { printStream.printf("entity-id=%s [%d] %s:%s%n %s%n", formatEntityId(entityId), cell.getTimestamp(), cell.getColumn().getFamily(), cell.getColumn().getQualifier(), cell.getData()); }
FijiCell.create( cell.getColumn(), cell.getTimestamp(), new DecodedCell<Object>(cell.getWriterSchema(), null))); mLastQualifier = qualifier;
/** {@inheritDoc} */ @Override public void produce(final FijiRowData row, final FijiTableContext context) throws IOException { final Iterable<FijiCell<Object>> cells; if (mColumn.isFullyQualified()) { cells = row.asIterable(mColumn.getFamily(), mColumn.getQualifier()); } else { cells = row.asIterable(mColumn.getFamily()); } for (FijiCell<Object> cell : cells) { context.incrementCounter(Counters.CELLS_PROCESSED); final DecodedCell<Object> original = new DecodedCell<Object>(cell.getWriterSchema(), cell.getData()); final DecodedCell<Object> rewritten = rewriteCell(original); if (rewritten != original) { context.put( row.getEntityId(), mColumn.getFamily(), mColumn.getQualifier(), cell.getTimestamp(), rewritten.getData()); context.incrementCounter(Counters.CELLS_REWRITTEN); } } }