@Override
  public Result adaptResponse(FlatRow flatRow) {
    // flatRow shouldn't ever have a null row key. The second check is defensive only.
    if (flatRow == null || flatRow.getRowKey() == null) {
      return Result.EMPTY_RESULT;
    }
    byte[] RowKey = ByteStringer.extract(flatRow.getRowKey());
    List<FlatRow.Cell> cells = flatRow.getCells();
    List<Cell> hbaseCells = new ArrayList<>(cells.size());
    byte[] previousFamilyBytes = null;
    String previousFamily = null;
    for (FlatRow.Cell cell : cells) {
      // Cells with labels are for internal use, do not return them.
      // TODO: the filtering logic should be moved into a WhileMatchFilter specific extension.
      if (cell.getLabels().isEmpty()) {
        String family = cell.getFamily();
        byte[] familyBytes = !Objects.equal(family, previousFamily)
            ? Bytes.toBytes(family) : previousFamilyBytes;
        hbaseCells.add(toRowCell(RowKey, cell, familyBytes));
        previousFamily = family;
        previousFamilyBytes = familyBytes;
      }
    }
    return Result.create(hbaseCells);
  }
@ Override public Result adaptResponse ( FlatRow flatRow ) { if ( flatRow == null || flatRow . getRowKey ( ) == null ) { return Result . EMPTY_RESULT ; } byte [ ] RowKey = ByteStringer . extract ( flatRow . getRowKey ( ) ) ; List < FlatRow . Cell > cells = flatRow . getCells ( ) ; List < Cell > hbaseCells = new ArrayList < > ( cells . size ( ) ) ; byte [ ] previousFamilyBytes = null ; String previousFamily = null ; for ( FlatRow . Cell cell : cells ) { if ( cell . getLabels ( ) . isEmpty ( ) ) { String family = cell . getFamily ( ) ; byte [ ] familyBytes = ! Objects . equal ( family , previousFamily ) ? Bytes . toBytes ( family ) : previousFamilyBytes ; hbaseCells . add ( toRowCell ( RowKey , cell , familyBytes ) ) ; previousFamily = family ; previousFamilyBytes = familyBytes ; } } return Result . create ( hbaseCells ) ; }
{@inheritDoc} Convert a {@link FlatRow} to a {@link Result}.