KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > folder > search > QueryEngine


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16

17 package org.columba.mail.folder.search;
18
19 import java.util.List JavaDoc;
20
21 import org.columba.core.filter.FilterCriteria;
22 import org.columba.core.filter.IFilterRule;
23
24 /**
25  * Custom implementation for performing optimized search requests.
26  *
27  * @author fdietz
28  */

29 public interface QueryEngine {
30     /**
31  * Get list of capabilities.
32  * <p>
33  * All supported search requests as for example:
34  * "Body", "Subject", etc.
35  *
36  * @return capability list
37  */

38     String JavaDoc[] getCaps();
39
40     /**
41  * Sync engine with folder data.
42  * <p>
43  * This can become necessary if the folder data is
44  * inconsistent.
45  *
46  * @throws Exception
47  */

48     void sync() throws Exception JavaDoc;
49
50     /**
51  * Execute a list of {@link FilterCriteria}.
52  *
53  * @param filter list of filter criteria
54  * @return list of matching message UIDs
55  * @throws Exception
56  */

57     List JavaDoc queryEngine(IFilterRule filter) throws Exception JavaDoc;
58
59     /**
60  * Execute a list of {@link FilterCriteria}.
61  * <p>
62  * Perform search request on a subset of messages only.
63  *
64  * @param filter list of filter criteria
65  * @param uids list of UIDs to perform search request
66  * @return list of matching message UIDs
67  * @throws Exception
68  */

69     List JavaDoc queryEngine(IFilterRule filter, Object JavaDoc[] uids)
70         throws Exception JavaDoc;
71
72     /**
73  * Notify search engine that a message was added.
74  *
75  * @param message message
76  * @throws Exception
77  */

78     void messageAdded(Object JavaDoc uid) throws Exception JavaDoc;
79
80     /**
81  * Notify search engine that a message was removed
82  *
83  * @param uid message UID
84  * @throws Exception
85  */

86     void messageRemoved(Object JavaDoc uid) throws Exception JavaDoc;
87
88     /**
89  * Reset search engine.
90  *
91  * @throws Exception
92  */

93     void reset() throws Exception JavaDoc;
94     
95     void save();
96 }
97
Popular Tags