code: public BlockId search(SearchKey searchKey, String leafFileName, SearchPurpose purpose) {
  		if (purpose == SearchPurpose.READ)
  			return searchForRead(searchKey, leafFileName);
  		else if (purpose == SearchPurpose.INSERT)
  			return searchForInsert(searchKey, leafFileName);
  		else if (purpose == SearchPurpose.DELETE)
  			return searchForDelete(searchKey, leafFileName);
  		else
  			throw new UnsupportedOperationException();
  	}
docs: Returns the block number of the B-tree leaf block that contains the
  specified search key.
  
  @param searchKey
  the search key
  @param leafFileName
  the file name of the B-tree leaf file
  @param purpose
  the purpose of searching (defined in BTreeIndex)
  @return the BlockId of the leaf block containing that search key