KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > search > api > ISearchProvider


1 package org.columba.core.search.api;
2
3 import java.util.List JavaDoc;
4
5 import javax.swing.ImageIcon JavaDoc;
6
7 import org.columba.api.gui.frame.IFrameMediator;
8 import org.columba.api.plugin.IExtensionInterface;
9 import org.columba.core.gui.search.api.ICriteriaRenderer;
10 import org.columba.core.gui.search.api.IResultPanel;
11
12 /**
13  * Provider does the actual search and furthermore contains a description
14  * of the search criteria.
15  *
16  * @author frd
17  */

18 public interface ISearchProvider extends IExtensionInterface{
19
20     /**
21      * Returns technical name. Should be unique.
22      * @return
23      */

24     public String JavaDoc getTechnicalName();
25     
26     /**
27      * Return provider human-readable name
28      * @return
29      */

30     public String JavaDoc getName();
31     
32     /**
33      * Return provider human-readable description
34      * @return
35      */

36     public String JavaDoc getDescription();
37     
38     /**
39      * Return provider icon
40      * @return
41      */

42     public ImageIcon JavaDoc getIcon();
43     
44     
45     /**
46      * Retrieve search criteria for given search term.
47      *
48      * @param searchTerm
49      * @return
50      */

51     public List JavaDoc<ISearchCriteria> getAllCriteria(String JavaDoc searchTerm);
52
53     
54     /**
55      * Get result panel for given search criteria.
56      *
57      * @param searchCriteriaTechnicalName
58      * @return
59      */

60     public IResultPanel getResultPanel(String JavaDoc searchCriteriaTechnicalName);
61     
62     /**
63      * Get result panel for a complex search across a couple of specific criteria.
64      *
65      * @return
66      */

67     public IResultPanel getComplexResultPanel();
68     
69     /**
70      * Get criteria renderer fo given search criteria technical name
71      *
72      * @param searchCriteriaTechnicalName
73      * @return
74      */

75     public ICriteriaRenderer getCriteriaRenderer(String JavaDoc criteriaTechnicalName);
76     
77     /**
78      * Retrieve single search criteria for given search term.
79      *
80      * @param technicalName
81      * @param searchTerm
82      * @return
83      */

84     public ISearchCriteria getCriteria(String JavaDoc technicalName, String JavaDoc searchTerm);
85     
86     
87     public ISearchCriteria getDefaultCriteria(String JavaDoc searchTerm);
88     
89     /**
90      * Execute query and retrieve pageable search result for given search term and
91      * a single search criteria.
92      * <p>
93      * The query returns <code>resultCount</code> individual results, from
94      * a given <code>startIndex</code>. Paging should be supported, so its
95      * up to the underlying implementation to use an intelligent caching
96      * strategy or whatever necessary to make repetitive calls to this
97      * method fast.
98      *
99      * @param searchTerm search term
100      * @param searchCriteriaTechnicalName search criteria technical name
101      * @param searchInside search inside previous search results
102      * @param startIndex start index of search results
103      * @param resultCount total count of results
104      *
105      * @return
106      */

107     public List JavaDoc<ISearchResult> query(String JavaDoc searchTerm, String JavaDoc searchCriteriaTechnicalName, boolean searchInside, int startIndex, int resultCount);
108     
109     public List JavaDoc<ISearchResult> query(List JavaDoc<ISearchRequest> list, boolean matchAll, boolean searchInside, int startIndex, int resultCount);
110     
111     public void showAllResults(IFrameMediator mediator, String JavaDoc searchTerm, String JavaDoc searchCriteriaTechnicalName);
112     
113     /**
114      * Check if search provider has executed a single criteria search.
115      *
116      * @return true, in case single criteria search was done. False, otherwise.
117      */

118     public boolean hasSingleCriteriaSearchResult();
119     
120     /**
121      * Return total number of search results. Method only returns valid result after calling
122      * <code>query</code> first.
123      *
124      * @return total number of search results. <code>-1</code>, in case <code>query</code> was not called, yet
125      */

126     public int getTotalResultCount();
127 }
128
Popular Tags