package org.podcastpedia.web.searching;
import java.util.List;
import org.podcastpedia.common.domain.Episode;
import org.podcastpedia.common.domain.Podcast;
public interface SearchDao {
/**
* Retrieves results based on queryText from the MySQL Database used full-text searches in either
* Natural mode or Boolean Mode.
* @see <a href="http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html"> MySQL Boolean Full-Text Searches </a>
*
* @param queryText
* @return
*/
public List<Podcast> getPodcastsForSearchCriteria(SearchData searchData);
/**
* Method used to retrieve beforehand the total number of search results
* to be used in pagination.(boolean mode search)
*
* @param searchData
* @return
*/
public int getNumberOfPodcastsForSearchCriteria(SearchData searchData);
/**
* Returns the number of episodes that corresponds to the given search
* criteria
*
* @param searchData
* @return
*/
public int getNumberOfEpisodesForSearchCriteria(SearchData searchData);
/**
* Returns a list of episodes for the given search criteria
* @param searchData
* @return
*/
public List<Episode> getEpisodesForSearchCriteria(SearchData searchData);
/**
* Inserts a search in the database
*
* @param searchData
*/
public void addSearch(SearchData searchData);
}