code: @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);
    }
docs: {@inheritDoc} Convert a {@link FlatRow} to a {@link Result}.