/** * 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(); }
/** * Create a new FijiCell from the given coordinates and decoded value. * * @param column Name of the column in which this cell exists. * @param timestamp Timestamp of this cell in milliseconds since the epoch. * @param decodedCell Decoded cell content. * @param <T> Type of the value of this cell. * @return a new FijiCell from the given coordinates and decoded value. */ public static <T> FijiCell<T> create( final FijiColumnName column, final long timestamp, final DecodedCell<T> decodedCell ) { return new FijiCell<T>(column, timestamp, decodedCell); }
final FijiCell<T> start = FijiCell.create(column, Long.MAX_VALUE, null); final FijiCell<T> end = FijiCell.create(column, -1L, null); Collections.binarySearch(familyCells, start, FijiCell.getKeyComparator()); if (startIndex < 0) { startIndex = -1 - startIndex; Collections.binarySearch(familyCells, end, FijiCell.getKeyComparator()); if (endIndex < 0) { endIndex = -1 - endIndex;
/** * 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 int compare(final FijiCell<?> o1, final FijiCell<?> o2) { return ComparisonChain.start() .compare(o1.getColumn(), o2.getColumn()) .compare(o2.getTimestamp(), o1.getTimestamp()) .result(); } }
/** * 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()); }
final String qualifier = cell.getColumn().getQualifier(); if (!qualifier.equals(mLastQualifier)) { cells.add( FijiCell.create( cell.getColumn(), cell.getTimestamp(), new DecodedCell<Object>(cell.getWriterSchema(), null))); mLastQualifier = qualifier;
/** {@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; }
@Override public T apply(final FijiCell<T> cell) { return cell.getData(); } });
@Override public Long apply(final FijiCell<?> cell) { return cell.getTimestamp(); } });
/** {@inheritDoc} */ @Override public <T> NavigableMap<Long, FijiCell<T>> getCells(String family, String qualifier) throws IOException { final FijiCellDecoder<T> decoder = mDecoderProvider.getDecoder(FijiColumnName.create(family, qualifier)); final NavigableMap<Long, FijiCell<T>> result = Maps.newTreeMap(TimestampComparator.INSTANCE); final NavigableMap<Long, byte[]> tmap = getRawTimestampMap(family, qualifier); if (tmap != null) { for (Map.Entry<Long, byte[]> entry : tmap.entrySet()) { final Long timestamp = entry.getKey(); final byte[] bytes = entry.getValue(); final FijiCell<T> cell = FijiCell.create( FijiColumnName.create(family, qualifier), timestamp, decoder.decodeCell(bytes)); result.put(timestamp, cell); } } return result; }
returnRow.addCell(new FijiCell<String>(col.getFamily(), qualifier, -1L, decodedCell), schemaOption); continue; if (null != counter) { SchemaOption schemaOption = new SchemaOption(schemaTable. getOrCreateSchemaId(counter.getWriterSchema())); returnRow.addCell(counter, schemaOption); FijiCell<Object> fijiCell = timestampedCell.getValue(); SchemaOption schemaOption = new SchemaOption(schemaTable. getOrCreateSchemaId(fijiCell.getWriterSchema())); returnRow.addCell(fijiCell, schemaOption); for (FijiCell<Object> timestampedCell : e.getValue().values()) { SchemaOption schemaOption = new SchemaOption(schemaTable. getOrCreateSchemaId(timestampedCell.getWriterSchema())); returnRow.addCell(timestampedCell, schemaOption);
final FijiResult<T> narrowView = mResult.narrowView(column); for (final FijiCell<T> cell : narrowView) { final String qualifier = cell.getColumn().getQualifier(); if (!qualifier.equals(previousQualifier)) { qualifiers.put(qualifier, cell.getData()); previousQualifier = qualifier; final FijiCell<T> cell = Helpers.getFirst(mResult.<T>narrowView(requestedColumn)); if (cell != null) { qualifiers.put(cell.getColumn().getQualifier(), cell.getData());
@Override public FijiColumnName apply(final FijiCell<?> cell) { return cell.getColumn(); } });
/** {@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<Long, T> getValues(String family, String qualifier) throws IOException { final NavigableMap<Long, T> result = Maps.newTreeMap(TimestampComparator.INSTANCE); for (Map.Entry<Long, FijiCell<T>> entry : this.<T>getCells(family, qualifier).entrySet()) { result.put(entry.getKey(), entry.getValue().getData()); } return 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; }
/** {@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; }