/** {@inheritDoc} */ @Override public FijiPager getPager(String family, String qualifier) throws FijiColumnPagingNotEnabledException { final FijiColumnName fijiColumnName = FijiColumnName.create(family, qualifier); return new HBaseVersionPager( mEntityId, mDataRequest, mTable, fijiColumnName, mDecoderProvider); }
/** {@inheritDoc} */ @Override public <T> T getMostRecentValue(String family, String qualifier) throws IOException { final FijiCellDecoder<T> decoder = mDecoderProvider.getDecoder(FijiColumnName.create(family, qualifier)); final NavigableMap<Long, byte[]> tmap = getRawTimestampMap(family, qualifier); if (null == tmap) { return null; } final byte[] bytes = tmap.values().iterator().next(); return decoder.decodeValue(bytes); }
/** {@inheritDoc} */ @Override public boolean containsCell(final String family, final String qualifier, final long timestamp) { final FijiColumnName column = FijiColumnName.create(family, qualifier); return containsColumnRequest(column) && getCell(family, qualifier, timestamp) != null; }
/** {@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 Schema getReaderSchema(final String family, final String qualifier) throws IOException { return mTableLayout.getCellSpec(FijiColumnName.create(family, qualifier)).getAvroSchema(); }
/** {@inheritDoc} */ @Override public <T> FijiCell<T> getCell(String family, String qualifier, long timestamp) throws IOException { final FijiCellDecoder<T> decoder = mDecoderProvider.getDecoder(FijiColumnName.create(family, qualifier)); final byte[] bytes = getRawCell(family, qualifier, timestamp); return FijiCell.create( FijiColumnName.create(family, qualifier), timestamp, decoder.decodeCell(bytes)); }
/** {@inheritDoc} */ @Override public Schema getReaderSchema(final String family, final String qualifier) throws IOException { return mLayout.getCellSpec(FijiColumnName.create(family, qualifier)).getAvroSchema(); }
/** {@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; }
/** * Gets the column name. * * @return The column name. */ public FijiColumnName getColumnName() { return FijiColumnName.create(getFamily(), getQualifier()); }
/** {@inheritDoc} */ @Override public FijiPager getPager(String family) throws FijiColumnPagingNotEnabledException { final FijiColumnName fijiFamily = FijiColumnName.create(family, null); Preconditions.checkState(mTableLayout.getFamilyMap().get(family).isMapType(), "getPager(String family) is only enabled on map type column families. " + "The column family '%s' is a group type column family. " + "Please use the getPager(String family, String qualifier) method.", family); return new HBaseMapFamilyPager(mEntityId, mDataRequest, mTable, fijiFamily); }
/** {@inheritDoc} */ @Override public boolean containsColumn(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); return containsColumnRequest(column) && mResult.narrowView(column).iterator().hasNext(); }
/** {@inheritDoc} */ @Override public <T> Iterable<FijiCell<T>> asIterable(String family, String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); Preconditions.checkArgument( mDataRequest.getRequestForColumn(column) != null, "Column %s has no data request.", column); return new CellIterable<T>(column, this, mTable.getColumnNameTranslator()); }
/** {@inheritDoc} */ @Override public NavigableSet<String> getQualifiers(final String family) { final FijiColumnName column = FijiColumnName.create(family, null); validateColumnRequest(column); final NavigableSet<String> qualifiers = Sets.newTreeSet(); for (final FijiCell<?> cell : mResult.narrowView(column)) { qualifiers.add(cell.getColumn().getQualifier()); } return qualifiers; }
/** {@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; }
/** {@inheritDoc} */ @Override public <T> T getValue(String family, String qualifier, long timestamp) throws IOException { final FijiCellDecoder<T> decoder = mDecoderProvider.getDecoder(FijiColumnName.create(family, qualifier)); final byte[] bytes = getRawCell(family, qualifier, timestamp); return decoder.decodeValue(bytes); }
/** {@inheritDoc} */ @Override public <T> FijiCell<T> getMostRecentCell(final String family, final String qualifier) { final FijiColumnName column = FijiColumnName.create(family, qualifier); validateColumnRequest(column); return Helpers.getFirst(mResult.<T>narrowView(column)); }
/** {@inheritDoc} */ @Override public void deleteCell(EntityId entityId, String family, String qualifier, long timestamp) throws IOException { final State state = mState.get(); Preconditions.checkState(state == State.OPEN, "Cannot delete cell while FijiTableWriter %s is in state %s.", this, state); final HBaseColumnName hbaseColumnName = mWriterLayoutCapsule.getColumnNameTranslator() .toHBaseColumnName(FijiColumnName.create(family, qualifier)); final Delete delete = new Delete(entityId.getHBaseRowKey()) .deleteColumn(hbaseColumnName.getFamily(), hbaseColumnName.getQualifier(), timestamp); mHTable.delete(delete); }
/** {@inheritDoc} */ @Override public void deleteColumn(EntityId entityId, String family, String qualifier, long upToTimestamp) throws IOException { final State state = mState.get(); Preconditions.checkState(state == State.OPEN, "Cannot delete column while FijiTableWriter %s is in state %s.", this, state); final HBaseColumnName hbaseColumnName = mWriterLayoutCapsule.getColumnNameTranslator() .toHBaseColumnName(FijiColumnName.create(family, qualifier)); final Delete delete = new Delete(entityId.getHBaseRowKey()) .deleteColumns(hbaseColumnName.getFamily(), hbaseColumnName.getQualifier(), upToTimestamp); mHTable.delete(delete); }
/** {@inheritDoc} */ @Override public void deleteCell(EntityId entityId, String family, String qualifier, long timestamp) throws IOException { final HBaseColumnName hbaseColumnName = mTable.getColumnNameTranslator() .toHBaseColumnName(FijiColumnName.create(family, qualifier)); final Delete delete = new Delete(entityId.getHBaseRowKey()) .deleteColumn(hbaseColumnName.getFamily(), hbaseColumnName.getQualifier(), timestamp); updateBuffer(delete); }
/** {@inheritDoc} */ @Override public void deleteColumn(EntityId entityId, String family, String qualifier, long upToTimestamp) throws IOException { final HBaseColumnName hbaseColumnName = mWriterLayoutCapsule.getColumnNameTranslator() .toHBaseColumnName(FijiColumnName.create(family, qualifier)); final Delete delete = new Delete(entityId.getHBaseRowKey()) .deleteColumns(hbaseColumnName.getFamily(), hbaseColumnName.getQualifier(), upToTimestamp); updateBuffer(delete); }