class Result implements Writable {

  public CKeyValue getValue(byte[] family, byte[] qualifier) {
    // quick failure case check
    if (this.values.size() == 0)
      return null;

    // since we know that they are sorted at this point, just do the lookup as a
    // binary search
    int index = Collections.binarySearch(values, new CKeyValue(this.recordId,
        family, qualifier), KeyComparator.INSTANCE);
    if (index < 0)
      return null;
    return values.get(index);
  }

  public  Result();
  public  Result(byte[] recordID);
  public  Result(byte[] rowId, CKeyValue... keyValues);
  public  Result(CKeyValue... keyValues);
  public  Result(Iterable<CKeyValue> keyValues);

}