private static Pair<byte[],byte[]> createNamesForReversePrefixScan(@Nonnull byte[] name){
  Preconditions.checkNotNull(name,"name cannot be null");
  Preconditions.checkArgument(name.length <= Cell.MAX_NAME_LENGTH,"name is too long");
  if (name.length == 0) {
    return Pair.create(name,name);
  }
  byte[] startName=new byte[Cell.MAX_NAME_LENGTH];
  System.arraycopy(name,0,startName,0,name.length);
  for (int i=name.length; i < startName.length; i++) {
    startName[i]=(byte)0xff;
  }
  byte[] endName=RangeRequests.previousLexicographicName(name);
  return Pair.create(startName,endName);
}

private static Pair < byte [ ] , byte [ ] > createNamesForReversePrefixScan ( @ Nonnull byte [ ] name ) { Preconditions . checkNotNull ( name , "name cannot be null" ) ; Preconditions . checkArgument ( name . length <= Cell . MAX_NAME_LENGTH , "name is too long" ) ; if ( name . length == 0 ) { return Pair . create ( name , name ) ; } byte [ ] startName = new byte [ Cell . MAX_NAME_LENGTH ] ; System . arraycopy ( name , 0 , startName , 0 , name . length ) ; for ( int i = name . length ; i < startName . length ; i ++ ) { startName [ i ] = ( byte ) 0xff ; } byte [ ] endName = RangeRequests . previousLexicographicName ( name ) ; return Pair . create ( startName , endName ) ; }
this will return a start and end row that will exactly contain all rows for this prefix in reverse . < p > start will be on the left hand side and will be greater lexicographically
