code: private ArrayList<byte []> onFindAllKeys(Iterable<RowCursor> rowIter)
    {
      if (rowIter == null) {
        return null;
      }
      
      ArrayList<byte[]> keys = new ArrayList<>();
      
      for (RowCursor cursor : rowIter) {
        keys.add(cursor.getKey());
      }
      
      return keys;
      
    }
docs: /*
  private class FindAllKeysResult extends Result.Wrapper<Iterable<RowCursor>,Iterable<byte[]>>
  {
  private ArrayList<byte[]> _keys = new ArrayList<>();
  
  FindAllKeysResult(Result<Iterable<byte[]>> result)
  {
  super(result);
  }
  
  @Override
  public void complete(Iterable<RowCursor> rowIter)
  {
  if (rowIter == null) {
  getNext().complete(null);
  return;
  }
  
  for (RowCursor cursor : rowIter) {
  _keys.add(cursor.getKey());
  }
  
  getNext().complete(_keys);
  }
  }