01: package org.columba.calendar.store.api;
02:
03: import java.util.Calendar;
04: import java.util.Iterator;
05:
06: import org.columba.calendar.model.api.IComponentInfo;
07: import org.columba.calendar.model.api.IComponentInfoList;
08: import org.columba.calendar.model.api.IDateRange;
09:
10: /**
11: * Calendar store.
12: *
13: * @author fdietz
14: */
15: public interface ICalendarStore {
16:
17: IComponentInfo get(Object uid) throws StoreException;
18:
19: void add(IComponentInfo calendarModel) throws StoreException;
20:
21: void modify(Object uid, IComponentInfo calendarModel)
22: throws StoreException;
23:
24: void remove(Object uid) throws StoreException;
25:
26: IComponentInfoList getComponentInfoList() throws StoreException;
27:
28: IComponentInfoList getComponentInfoList(String calendarId)
29: throws StoreException;
30:
31: Iterator<String> getIdIterator() throws StoreException;
32:
33: Iterator<String> getIdIterator(String calendarId)
34: throws StoreException;
35:
36: boolean exists(Object uid) throws StoreException;
37:
38: /**
39: * Find all components including the specific <code>searchTerm</code> in the summary.
40: *
41: * @param summary
42: * @return iterator of all component IDs
43: * @throws StoreException
44: */
45: Iterator<String> findBySummary(String searchTerm)
46: throws StoreException;
47:
48: /**
49: * Find all components starting at <code>startDate</code>.
50: *
51: * @param startDate
52: * @return iterator of all component IDs
53: * @throws StoreException
54: */
55: Iterator<String> findByStartDate(Calendar startDate)
56: throws StoreException;
57:
58: /**
59: * Find all components in the date range.
60: *
61: * @param dateRange
62: * @return iterator of all component IDs
63: * @throws StoreException
64: */
65: Iterator<String> findByDateRange(IDateRange dateRange)
66: throws StoreException;
67: }
|