01: // The contents of this file are subject to the Mozilla Public License Version
02: // 1.1
03: //(the "License"); you may not use this file except in compliance with the
04: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
05: //
06: //Software distributed under the License is distributed on an "AS IS" basis,
07: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
08: //for the specific language governing rights and
09: //limitations under the License.
10: //
11: //The Original Code is "The Columba Project"
12: //
13: //The Initial Developers of the Original Code are Frederik Dietz and Timo
14: // Stich.
15: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16: //
17: //All Rights Reserved.
18: package org.columba.addressbook.folder;
19:
20: import org.columba.addressbook.model.IContactModel;
21: import org.columba.api.exception.StoreException;
22:
23: /**
24: * Contact storage facility.
25: *
26: * @author fdietz
27: *
28: */
29: public interface IContactStorage extends IFolder {
30:
31: int count() throws StoreException;
32:
33: /**
34: * Find contact by email address. Search ignores case.
35: *
36: * @param emailAddress
37: * email address
38: * @return contact id, if match found. Otherwise, <code>null</code>
39: * @throws StoreException
40: */
41: String findByEmailAddress(String emailAddress)
42: throws StoreException;
43:
44: /**
45: * Find contact by name. Search ignores case.
46: * <p>
47: * First tries to find a vCard "SORT_AS", then vCard "LASTNAME" and last
48: * vCard "FIRSTNAME", until a match is found. If several contacts match the
49: * first one is used and all other results are ignored.
50: *
51: * @param name
52: * email address
53: * @return contact id, if match found. Otherwise, <code>null</code>
54: * @throws StoreException
55: */
56: String findByName(String name) throws StoreException;
57:
58: boolean exists(String id) throws StoreException;
59:
60: IContactModel get(String id) throws StoreException;
61:
62: void remove(String id) throws StoreException;
63:
64: void modify(String id, IContactModel contact) throws StoreException;
65:
66: Object add(IContactModel contact) throws StoreException;
67:
68: Object[] add(IContactModel[] contacts) throws StoreException;
69:
70: }
|