/** * ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium. */ package org.esupportail.helpdesk.services.indexing; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * A class to store search results. */ public class SearchResults implements Serializable { /** * The serialization id. */ private static final long serialVersionUID = -7351259155123090522L; /** * The results themselves. */ private List<SearchResult> results; /** * The total results number (exact or estimated). */ private int totalResultsNumber; /** * True if the total results number is estimated. */ private boolean totalResultsNumberEstimated; /** * Bean constructor. * @param results * @param totalResultsNumber * @param totalResultsNumberEstimated */ protected SearchResults( final List<SearchResult> results, final int totalResultsNumber, final boolean totalResultsNumberEstimated) { super(); this.results = results; this.totalResultsNumber = totalResultsNumber; this.totalResultsNumberEstimated = totalResultsNumberEstimated; } /** * @param theResults * @param theTotalResultsNumber * @return an instance for an estimated results number. */ public static SearchResults estimated( final List<SearchResult> theResults, final int theTotalResultsNumber) { return new SearchResults(theResults, theTotalResultsNumber, true); } /** * @param theResults * @return an instance for an exact results number. */ public static SearchResults exact( final List<SearchResult> theResults) { return new SearchResults(theResults, theResults.size(), false); } /** * @return an instance for a zero result number. */ public static SearchResults empty() { return exact(new ArrayList<SearchResult>()); } /** * @return the results number */ public int getResultsNumber() { return results.size(); } /** * @return the results */ public List<SearchResult> getResults() { return results; } /** * @return the totalResultsNumber */ public int getTotalResultsNumber() { return totalResultsNumber; } /** * @return the totalResultsNumberEstimated */ public boolean isTotalResultsNumberEstimated() { return totalResultsNumberEstimated; } }