2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 #include "CalendarFilter.h"
19 #include <Commons/Exception.h>
21 #include "CalendarUtility.h"
24 using namespace WrtDeviceApis::Commons;
29 std::map<std::string, unsigned int> CalendarFilter::m_eventAttributeMap = {
30 {CALENDAR_FILTER_ATTRIBUTE_ID_UID, _calendar_event.id},
31 {CALENDAR_FILTER_ATTRIBUTE_LAST_MODIFIED_DATE, _calendar_event.last_modified_time},
32 {CALENDAR_FILTER_ATTRIBUTE_DESCRIPTION, _calendar_event.description},
33 {CALENDAR_FILTER_ATTRIBUTE_SUMMARY, _calendar_event.summary},
34 {CALENDAR_FILTER_ATTRIBUTE_START_DATE, _calendar_event.start_time},
35 {CALENDAR_FILTER_ATTRIBUTE_LOCATION, _calendar_event.location},
36 {CALENDAR_FILTER_ATTRIBUTE_LATITUDE, _calendar_event.latitude},
37 {CALENDAR_FILTER_ATTRIBUTE_LONGITUDE, _calendar_event.longitude},
38 {CALENDAR_FILTER_ATTRIBUTE_ORGANIZER, _calendar_event.organizer_name},
39 {CALENDAR_FILTER_ATTRIBUTE_VISIBILITY, _calendar_event.sensitivity},
40 {CALENDAR_FILTER_ATTRIBUTE_STATUS, _calendar_event.event_status},
41 {CALENDAR_FILTER_ATTRIBUTE_ALARMS, _calendar_event.has_alarm},
42 {CALENDAR_FILTER_ATTRIBUTE_CATEGORIES, _calendar_event.categories},
43 {CALENDAR_FILTER_ATTRIBUTE_PRIORITY, _calendar_event.priority},
44 {CALENDAR_FILTER_ATTRIBUTE_IS_DETACHED, _calendar_event.original_event_id},
45 {CALENDAR_FILTER_ATTRIBUTE_IS_ALL_DAY, _calendar_event.is_allday},
46 {CALENDAR_FILTER_ATTRIBUTE_ATTENDEES, _calendar_event.has_attendee},
47 {CALENDAR_FILTER_ATTRIBUTE_END_DATE, _calendar_event.end_time},
48 {CALENDAR_FILTER_ATTRIBUTE_AVAILABILITY, _calendar_event.busy_status},
49 {CALENDAR_FILTER_ATTRIBUTE_RECURRENCE_RULE, _calendar_event.freq}
52 std::map<std::string, unsigned int> CalendarFilter::m_normalInstanceAttributeMap = {
53 {CALENDAR_FILTER_ATTRIBUTE_ID_UID, _calendar_instance_normal_calendar_book.event_id},
54 {CALENDAR_FILTER_ATTRIBUTE_LAST_MODIFIED_DATE, _calendar_instance_normal_calendar_book.last_modified_time},
55 {CALENDAR_FILTER_ATTRIBUTE_DESCRIPTION, _calendar_instance_normal_calendar_book.description},
56 {CALENDAR_FILTER_ATTRIBUTE_SUMMARY, _calendar_instance_normal_calendar_book.summary},
57 {CALENDAR_FILTER_ATTRIBUTE_START_DATE, _calendar_instance_normal_calendar_book.start_time},
58 {CALENDAR_FILTER_ATTRIBUTE_LOCATION, _calendar_instance_normal_calendar_book.location},
59 {CALENDAR_FILTER_ATTRIBUTE_LATITUDE, _calendar_instance_normal_calendar_book.latitude},
60 {CALENDAR_FILTER_ATTRIBUTE_LONGITUDE, _calendar_instance_normal_calendar_book.longitude},
61 //{CALENDAR_FILTER_ATTRIBUTE_ORGANIZER, _calendar_instance_normal_calendar_book.organizer_name},
62 {CALENDAR_FILTER_ATTRIBUTE_VISIBILITY, _calendar_instance_normal_calendar_book.sensitivity},
63 {CALENDAR_FILTER_ATTRIBUTE_STATUS, _calendar_instance_normal_calendar_book.event_status},
64 {CALENDAR_FILTER_ATTRIBUTE_ALARMS, _calendar_instance_normal_calendar_book.has_alarm},
65 //{CALENDAR_FILTER_ATTRIBUTE_CATEGORIES, _calendar_instance_normal_calendar_book.categories},
66 {CALENDAR_FILTER_ATTRIBUTE_PRIORITY, _calendar_instance_normal_calendar_book.priority},
67 {CALENDAR_FILTER_ATTRIBUTE_IS_DETACHED, _calendar_instance_normal_calendar_book.original_event_id},
68 /*{CALENDAR_FILTER_ATTRIBUTE_IS_ALL_DAY, _calendar_instance_normal_calendar_book.is_allday}, no meaning for instance. */
69 //{CALENDAR_FILTER_ATTRIBUTE_ATTENDEES, _calendar_instance_normal_calendar_book.has_attendee},
70 {CALENDAR_FILTER_ATTRIBUTE_END_DATE, _calendar_instance_normal_calendar_book.end_time},
71 {CALENDAR_FILTER_ATTRIBUTE_AVAILABILITY, _calendar_instance_normal_calendar_book.busy_status},
72 {CALENDAR_FILTER_ATTRIBUTE_RECURRENCE_RULE, _calendar_instance_normal_calendar_book.has_rrule}
75 std::map<std::string, unsigned int> CalendarFilter::m_alldayInstanceAttributeMap = {
76 {CALENDAR_FILTER_ATTRIBUTE_ID_UID, _calendar_instance_allday_calendar_book.event_id},
77 {CALENDAR_FILTER_ATTRIBUTE_LAST_MODIFIED_DATE, _calendar_instance_allday_calendar_book.last_modified_time},
78 {CALENDAR_FILTER_ATTRIBUTE_DESCRIPTION, _calendar_instance_allday_calendar_book.description},
79 {CALENDAR_FILTER_ATTRIBUTE_SUMMARY, _calendar_instance_allday_calendar_book.summary},
80 {CALENDAR_FILTER_ATTRIBUTE_START_DATE, _calendar_instance_allday_calendar_book.start_time},
81 {CALENDAR_FILTER_ATTRIBUTE_LOCATION, _calendar_instance_allday_calendar_book.location},
82 {CALENDAR_FILTER_ATTRIBUTE_LATITUDE, _calendar_instance_allday_calendar_book.latitude},
83 {CALENDAR_FILTER_ATTRIBUTE_LONGITUDE, _calendar_instance_allday_calendar_book.longitude},
84 //{CALENDAR_FILTER_ATTRIBUTE_ORGANIZER, _calendar_instance_allday_calendar_book.organizer_name},
85 {CALENDAR_FILTER_ATTRIBUTE_VISIBILITY, _calendar_instance_allday_calendar_book.sensitivity},
86 {CALENDAR_FILTER_ATTRIBUTE_STATUS, _calendar_instance_allday_calendar_book.event_status},
87 {CALENDAR_FILTER_ATTRIBUTE_ALARMS, _calendar_instance_allday_calendar_book.has_alarm},
88 //{CALENDAR_FILTER_ATTRIBUTE_CATEGORIES, _calendar_instance_allday_calendar_book.categories},
89 {CALENDAR_FILTER_ATTRIBUTE_PRIORITY, _calendar_instance_allday_calendar_book.priority},
90 {CALENDAR_FILTER_ATTRIBUTE_IS_DETACHED, _calendar_instance_allday_calendar_book.original_event_id},
91 /*{CALENDAR_FILTER_ATTRIBUTE_IS_ALL_DAY, _calendar_instance_allday_calendar_book.is_allday}, no meaning for instance. */
92 //{CALENDAR_FILTER_ATTRIBUTE_ATTENDEES, _calendar_instance_allday_calendar_book.has_attendee},
93 {CALENDAR_FILTER_ATTRIBUTE_END_DATE, _calendar_instance_allday_calendar_book.end_time},
94 {CALENDAR_FILTER_ATTRIBUTE_AVAILABILITY, _calendar_instance_allday_calendar_book.busy_status},
95 {CALENDAR_FILTER_ATTRIBUTE_RECURRENCE_RULE, _calendar_instance_allday_calendar_book.has_rrule}
98 std::map<std::string, unsigned int> CalendarFilter::m_taskAttributeMap = {
99 {CALENDAR_FILTER_ATTRIBUTE_ID, _calendar_todo.id},
100 {CALENDAR_FILTER_ATTRIBUTE_LAST_MODIFIED_DATE, _calendar_todo.last_modified_time},
101 {CALENDAR_FILTER_ATTRIBUTE_DESCRIPTION, _calendar_todo.description},
102 {CALENDAR_FILTER_ATTRIBUTE_SUMMARY, _calendar_todo.summary},
103 {CALENDAR_FILTER_ATTRIBUTE_START_DATE, _calendar_todo.start_time},
104 {CALENDAR_FILTER_ATTRIBUTE_LOCATION, _calendar_todo.location},
105 {CALENDAR_FILTER_ATTRIBUTE_LATITUDE, _calendar_todo.latitude},
106 {CALENDAR_FILTER_ATTRIBUTE_LONGITUDE, _calendar_todo.longitude},
107 {CALENDAR_FILTER_ATTRIBUTE_ORGANIZER, _calendar_todo.organizer_name},
108 {CALENDAR_FILTER_ATTRIBUTE_VISIBILITY, _calendar_todo.sensitivity},
109 {CALENDAR_FILTER_ATTRIBUTE_STATUS, _calendar_todo.todo_status},
110 {CALENDAR_FILTER_ATTRIBUTE_ALARMS, _calendar_todo.has_alarm},
111 {CALENDAR_FILTER_ATTRIBUTE_CATEGORIES, _calendar_todo.categories},
112 {CALENDAR_FILTER_ATTRIBUTE_PRIORITY, _calendar_todo.priority},
113 {CALENDAR_FILTER_ATTRIBUTE_DUE_DATE, _calendar_todo.due_time},
114 {CALENDAR_FILTER_ATTRIBUTE_COMPLETED_DATE, _calendar_todo.completed_time},
115 {CALENDAR_FILTER_ATTRIBUTE_PROGRESS, _calendar_todo.progress},
116 {CALENDAR_FILTER_ATTRIBUTE_IS_ALL_DAY, _calendar_todo.is_allday},
117 {CALENDAR_FILTER_ATTRIBUTE_ATTENDEES, _calendar_todo.has_attendee}
120 CalendarFilter::CalendarFilter()
122 m_type = CalendarEvent::UNDEFINED_TYPE;
127 m_normalInstanceQuery = NULL;
128 m_normalInstanceFilter = NULL;
129 m_normalInstanceRecordList = NULL;
130 m_normalInstanceRecordCount = 0;
131 m_alldayInstanceQuery = NULL;
132 m_alldayInstanceFilter = NULL;
133 m_alldayInstanceRecordList = NULL;
134 m_alldayInstanceRecordCount = 0;
135 m_enableInstanceSearch = false;
138 CalendarFilter::~CalendarFilter()
140 LoggerD("Clear internal structs for filters.");
142 if(CALENDAR_ERROR_NONE!=calendar_query_destroy(m_query)) LoggerW("Filter destroy failed.");
145 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_filter)) LoggerW("Filter destroy failed.");
147 if(m_normalInstanceQuery) {
148 if(CALENDAR_ERROR_NONE!=calendar_query_destroy(m_normalInstanceQuery)) LoggerW("Filter destroy failed.");
150 if(m_normalInstanceFilter) {
151 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_normalInstanceFilter)) LoggerW("Filter destroy failed.");
153 if(m_alldayInstanceQuery) {
154 if(CALENDAR_ERROR_NONE!=calendar_query_destroy(m_alldayInstanceQuery)) LoggerW("Filter destroy failed.");
156 if(m_alldayInstanceFilter) {
157 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_alldayInstanceFilter)) LoggerW("Filter destroy failed.");
160 // Child record will be freed in the caller function.
162 if(CALENDAR_ERROR_NONE!=calendar_list_destroy(m_recordList, false)) LoggerW("List destroy failed.");
165 if(m_normalInstanceRecordList) {
166 if(CALENDAR_ERROR_NONE!=calendar_list_destroy(m_normalInstanceRecordList, true)) LoggerW("List destroy failed.");
168 if(m_alldayInstanceRecordList) {
169 if(CALENDAR_ERROR_NONE!=calendar_list_destroy(m_alldayInstanceRecordList, true)) LoggerW("List destroy failed.");
173 void CalendarFilter::visitPreComposite(DeviceAPI::Tizen::FilterType& type, int depth)
175 LoggerD("Composite pre with type: "<<type<<", depth: "<<depth);
177 calendar_filter_h compositeFilter = NULL;
178 calendar_filter_h normalInstanceCompositeFilter = NULL;
179 calendar_filter_h alldayInstanceCompositeFilter = NULL;
180 if(CalendarEvent::TASK_TYPE==m_type) {
181 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_todo._uri, &compositeFilter)) LoggerW("Filter creation failed.");
183 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_event._uri, &compositeFilter)) LoggerW("Filter creation failed.");
185 m_compositeFilters.push_back(compositeFilter);
187 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &normalInstanceCompositeFilter)) LoggerW("Filter creation failed.");
188 m_normalInstanceCompositeFilters.push_back(normalInstanceCompositeFilter);
189 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &alldayInstanceCompositeFilter)) LoggerW("Filter creation failed.");
190 m_alldayInstanceCompositeFilters.push_back(alldayInstanceCompositeFilter);
193 void CalendarFilter::visitInComposite(DeviceAPI::Tizen::FilterType& type, int depth)
195 LoggerI("Composite in with type: "<<type<<", depth: "<<depth);
196 if(type == DeviceAPI::Tizen::UNION_FILTER) {
197 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_compositeFilters[depth], CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
198 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_normalInstanceCompositeFilters[depth], CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
199 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_alldayInstanceCompositeFilters[depth], CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
200 } else if(type == DeviceAPI::Tizen::INTERSECTION_FILTER) {
201 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_compositeFilters[depth], CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
202 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_normalInstanceCompositeFilters[depth], CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
203 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_alldayInstanceCompositeFilters[depth], CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
207 void CalendarFilter::visitPostComposite(DeviceAPI::Tizen::FilterType& type, int depth)
209 LoggerD("Composite post with type: "<<type<<", depth: "<<depth);
212 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_compositeFilters[depth-1], m_compositeFilters[depth])) LoggerW("Filter add failed.");
213 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_normalInstanceCompositeFilters[depth-1], m_normalInstanceCompositeFilters[depth])) LoggerW("Filter add failed.");
214 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_alldayInstanceCompositeFilters[depth-1], m_alldayInstanceCompositeFilters[depth])) LoggerW("Filter add failed.");
216 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_filter, m_compositeFilters[depth])) LoggerW("Filter add failed.");
217 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_normalInstanceFilter, m_normalInstanceCompositeFilters[depth])) LoggerW("Filter add failed.");
218 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_alldayInstanceFilter, m_alldayInstanceCompositeFilters[depth])) LoggerW("Filter add failed.");
221 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_compositeFilters[depth])) LoggerW("Filter destroy failed.");
222 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_normalInstanceCompositeFilters[depth])) LoggerW("Filter destroy failed.");
223 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_alldayInstanceCompositeFilters[depth])) LoggerW("Filter destroy failed.");
225 m_compositeFilters.pop_back();
226 m_normalInstanceCompositeFilters.pop_back();
227 m_alldayInstanceCompositeFilters.pop_back();
230 void CalendarFilter::visitAttribute(std::string& attrName, DeviceAPI::Tizen::MatchFlag& matchFlag, DeviceAPI::Tizen::AnyPtr& matchValue, int depth)
232 if(NULL==matchValue) {
233 LoggerW("Empty match value.");
237 LoggerI("attrName: "<<attrName<<", value string: "<<matchValue->toString()<<", matchFlag: "<<matchFlag<<", depth:"<<depth);
239 calendar_match_str_flag_e strMatchFlag = CALENDAR_MATCH_EXACTLY;
240 calendar_match_int_flag_e intMatchFlag = CALENDAR_MATCH_EQUAL;
242 if( DeviceAPI::Tizen::MATCH_EXACTLY==matchFlag ) {
243 strMatchFlag = CALENDAR_MATCH_EXACTLY;
244 intMatchFlag = CALENDAR_MATCH_EQUAL;
245 } else if( DeviceAPI::Tizen::MATCH_FULLSTRING==matchFlag ) {
246 strMatchFlag = CALENDAR_MATCH_FULLSTRING;
247 } else if( DeviceAPI::Tizen::MATCH_CONTAINS==matchFlag) {
248 strMatchFlag = CALENDAR_MATCH_CONTAINS;
249 } else if( DeviceAPI::Tizen::MATCH_STARTSWITH==matchFlag) {
250 strMatchFlag = CALENDAR_MATCH_STARTSWITH;
251 } else if( DeviceAPI::Tizen::MATCH_ENDSWITH==matchFlag) {
252 strMatchFlag = CALENDAR_MATCH_ENDSWITH;
253 }else if( DeviceAPI::Tizen::MATCH_EXISTS==matchFlag) {
254 strMatchFlag = CALENDAR_MATCH_EXISTS;
256 LoggerW("Invalid matchFlag!");
259 calendar_filter_h currentFilter = NULL;
260 calendar_filter_h currentNormalInstanceFilter = NULL;
261 calendar_filter_h currentAlldayInstanceFilter = NULL;
263 currentFilter = m_compositeFilters[depth-1];
264 currentNormalInstanceFilter = m_normalInstanceCompositeFilters[depth-1];
265 currentAlldayInstanceFilter = m_alldayInstanceCompositeFilters[depth-1];
267 currentFilter = m_filter;
268 currentNormalInstanceFilter = m_normalInstanceFilter;
269 currentAlldayInstanceFilter = m_alldayInstanceFilter;
272 if(CALENDAR_FILTER_ATTRIBUTE_VISIBILITY==attrName ||
273 CALENDAR_FILTER_ATTRIBUTE_STATUS==attrName ||
274 CALENDAR_FILTER_ATTRIBUTE_PRIORITY==attrName ||
275 CALENDAR_FILTER_ATTRIBUTE_PROGRESS==attrName ||
276 CALENDAR_FILTER_ATTRIBUTE_AVAILABILITY==attrName) {
278 if(CALENDAR_FILTER_ATTRIBUTE_VISIBILITY==attrName
279 || CALENDAR_FILTER_ATTRIBUTE_STATUS==attrName
280 || CALENDAR_FILTER_ATTRIBUTE_PRIORITY==attrName
281 || CALENDAR_FILTER_ATTRIBUTE_AVAILABILITY==attrName) {
282 value = convertStringToIntValue(attrName, matchValue->getString());
284 value = matchValue->getLong();
287 if(CalendarEvent::TASK_TYPE==m_type) {
288 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], intMatchFlag, value)) LoggerW("Filter add failed.");
290 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], intMatchFlag, value)) LoggerW("Filter add failed.");
291 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], intMatchFlag, value)) LoggerW("Filter add failed.");
292 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], intMatchFlag, value)) LoggerW("Filter add failed.");
294 LoggerD("Added int filter with value: "<<value);
295 } else if(CALENDAR_FILTER_ATTRIBUTE_ID_UID==attrName ||
296 CALENDAR_FILTER_ATTRIBUTE_ID==attrName) {
298 std::stringstream ss(matchValue->getString());
301 if(CalendarEvent::TASK_TYPE==m_type) {
302 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], intMatchFlag, id)) LoggerW("Filter add failed.");
304 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], intMatchFlag, id)) LoggerW("Filter add failed.");
305 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], intMatchFlag, id)) LoggerW("Filter add failed.");
306 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], intMatchFlag, id)) LoggerW("Filter add failed.");
308 // Include the detached events.
309 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentFilter, CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
310 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, _calendar_event.original_event_id, CALENDAR_MATCH_EQUAL, id)) LoggerW("Filter add failed.");
311 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentNormalInstanceFilter, CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
312 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, _calendar_instance_normal_calendar_book.original_event_id, CALENDAR_MATCH_EQUAL, id)) LoggerW("Filter add failed.");
313 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentAlldayInstanceFilter, CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
314 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, _calendar_instance_allday_calendar_book.original_event_id, CALENDAR_MATCH_EQUAL, id)) LoggerW("Filter add failed.");
316 LoggerD("Added int filter with id: "<<id);
317 } else if(CALENDAR_FILTER_ATTRIBUTE_LAST_MODIFIED_DATE==attrName ||
318 CALENDAR_FILTER_ATTRIBUTE_COMPLETED_DATE==attrName) {
319 long long int time = getTimeTFromTZDateAny(matchValue);
320 if(CalendarEvent::TASK_TYPE==m_type) {
321 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentFilter, m_taskAttributeMap[attrName], intMatchFlag, time)) LoggerW("Filter add failed.");
323 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentFilter, m_eventAttributeMap[attrName], intMatchFlag, time)) LoggerW("Filter add failed.");
324 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], intMatchFlag, time)) LoggerW("Filter add failed.");
325 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], intMatchFlag, time)) LoggerW("Filter add failed.");
327 LoggerD("Added lli filter with value: "<<time);
328 } else if(CALENDAR_FILTER_ATTRIBUTE_DESCRIPTION==attrName ||
329 CALENDAR_FILTER_ATTRIBUTE_SUMMARY==attrName ||
330 CALENDAR_FILTER_ATTRIBUTE_LOCATION==attrName ||
331 CALENDAR_FILTER_ATTRIBUTE_ORGANIZER==attrName) {
332 if(CalendarEvent::TASK_TYPE==m_type) {
333 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentFilter, m_taskAttributeMap[attrName], strMatchFlag, matchValue->getString().c_str())) LoggerW("Filter add failed.");
335 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentFilter, m_eventAttributeMap[attrName], strMatchFlag, matchValue->getString().c_str())) LoggerW("Filter add failed.");
336 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], strMatchFlag, matchValue->getString().c_str())) LoggerW("Filter add failed.");
337 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], strMatchFlag, matchValue->getString().c_str())) LoggerW("Filter add failed.");
339 LoggerD("Added str filter with value: "<<matchValue->getString());
340 } else if(CALENDAR_FILTER_ATTRIBUTE_IS_ALL_DAY==attrName) {
341 if(CalendarEvent::TASK_TYPE==m_type) {
342 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_EQUAL, matchValue->getBool() ? 1 : 0)) LoggerW("Filter add failed.");
344 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_EQUAL, matchValue->getBool() ? 1 : 0)) LoggerW("Filter add failed.");
345 if(matchValue->getBool()) {
346 // Exclude the normal instance table.
347 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[CALENDAR_FILTER_ATTRIBUTE_ID_UID], CALENDAR_MATCH_EQUAL, -999)) LoggerW("Filter add failed.");
349 // Exclude the allday instance table.
350 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[CALENDAR_FILTER_ATTRIBUTE_ID_UID], CALENDAR_MATCH_EQUAL, -999)) LoggerW("Filter add failed.");
353 LoggerD("Added int filter with value: "<<matchValue->getBool());
354 } else if(CALENDAR_FILTER_ATTRIBUTE_START_DATE==attrName ||
355 CALENDAR_FILTER_ATTRIBUTE_DUE_DATE==attrName ||
356 CALENDAR_FILTER_ATTRIBUTE_END_DATE==attrName) {
357 calendar_time_s calTime = {CALENDAR_TIME_UTIME, {0}};
358 long long int time = getTimeTFromTZDateAny(matchValue);
359 calTime.time.utime = time;
360 if(CalendarEvent::TASK_TYPE==m_type) {
361 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(currentFilter, m_taskAttributeMap[attrName], intMatchFlag, calTime)) LoggerW("Filter add failed.");
363 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(currentFilter, m_eventAttributeMap[attrName], intMatchFlag, calTime)) LoggerW("Filter add failed.");
364 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], intMatchFlag, calTime)) LoggerW("Filter add failed.");
365 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], intMatchFlag, calTime)) LoggerW("Filter add failed.");
367 LoggerD("Added caltime filter with value: "<<time);
368 } else if(CALENDAR_FILTER_ATTRIBUTE_LATITUDE==attrName ||
369 CALENDAR_FILTER_ATTRIBUTE_LONGITUDE==attrName) {
370 if(CalendarEvent::TASK_TYPE==m_type) {
371 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentFilter, m_taskAttributeMap[attrName], intMatchFlag, matchValue->getDouble())) LoggerW("Filter add failed.");
373 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentFilter, m_eventAttributeMap[attrName], intMatchFlag, matchValue->getDouble())) LoggerW("Filter add failed.");
374 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], intMatchFlag, matchValue->getDouble())) LoggerW("Filter add failed.");
375 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], intMatchFlag, matchValue->getDouble())) LoggerW("Filter add failed.");
377 LoggerD("Added double filter with value: "<<matchValue->getDouble());
378 } else if(CALENDAR_FILTER_ATTRIBUTE_ALARMS==attrName ||
379 CALENDAR_FILTER_ATTRIBUTE_ATTENDEES==attrName) {
380 if(CalendarEvent::TASK_TYPE==m_type) {
381 if( DeviceAPI::Tizen::MATCH_EXACTLY==matchFlag ) {
382 if( matchValue->isNullOrUndefined() ) {
383 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
385 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
388 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
391 if( DeviceAPI::Tizen::MATCH_EXACTLY==matchFlag ) {
392 if( matchValue->isNullOrUndefined() ) {
393 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
394 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
395 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
397 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
398 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
399 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
403 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
404 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
405 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 1)) LoggerW("Filter add failed.");
408 LoggerD("Added int filter.");
409 } else if(CALENDAR_FILTER_ATTRIBUTE_CATEGORIES==attrName) {
410 if(CalendarEvent::TASK_TYPE==m_type) {
411 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_CONTAINS, matchValue->getString().c_str())) LoggerW("Filter add failed.");
413 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_CONTAINS, matchValue->getString().c_str())) LoggerW("Filter add failed.");
414 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_CONTAINS, matchValue->getString().c_str())) LoggerW("Filter add failed.");
415 if(CALENDAR_ERROR_NONE!=calendar_filter_add_str(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_CONTAINS, matchValue->getString().c_str())) LoggerW("Filter add failed.");
417 LoggerD("Added str filter for categories with value: "<<matchValue->getString());
418 } else if(CALENDAR_FILTER_ATTRIBUTE_IS_DETACHED==attrName) {
419 if(CalendarEvent::TASK_TYPE==m_type) {
420 LoggerW("isDetached not supported for a task.");
422 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
423 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
424 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
426 LoggerD("Added int filter for isDetached with value 0.");
427 } else if(CALENDAR_FILTER_ATTRIBUTE_RECURRENCE_RULE==attrName) {
428 if(CalendarEvent::TASK_TYPE==m_type) {
429 LoggerW("rrule not supported for a task.");
431 if( DeviceAPI::Tizen::MATCH_EXACTLY==matchFlag ) {
432 if( matchValue->isNullOrUndefined() ) {
433 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
434 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
435 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
437 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
438 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
439 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
441 LoggerD("Added int filter for rrule EXACTLY flag.");
443 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
444 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
445 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN, 0)) LoggerW("Filter add failed.");
446 LoggerD("Added int filter for rrule.");
450 LoggerW("Not supported filter attribute: "<<attrName);
453 LoggerD("Attribute visit done.");
456 void CalendarFilter::visitAttributeRange(std::string& attrName, DeviceAPI::Tizen::AnyPtr& initialValue, DeviceAPI::Tizen::AnyPtr& endValue, int depth)
458 if(initialValue == NULL && endValue == NULL) {
459 LoggerW("Both initial/end values are empty.");
463 LoggerI("attrName: " <<attrName<<", initialValue: "<<initialValue->toString()<<", endValue: " <<endValue->toString()<<", depth: "<<depth);
465 calendar_filter_h currentFilter = NULL;
466 calendar_filter_h currentNormalInstanceFilter = NULL;
467 calendar_filter_h currentAlldayInstanceFilter = NULL;
469 currentFilter = m_compositeFilters[depth-1];
470 currentNormalInstanceFilter = m_normalInstanceCompositeFilters[depth-1];
471 currentAlldayInstanceFilter = m_alldayInstanceCompositeFilters[depth-1];
473 currentFilter = m_filter;
474 currentNormalInstanceFilter = m_normalInstanceFilter;
475 currentAlldayInstanceFilter = m_alldayInstanceFilter;
478 if(CALENDAR_FILTER_ATTRIBUTE_START_DATE==attrName ||
479 CALENDAR_FILTER_ATTRIBUTE_DUE_DATE==attrName ||
480 CALENDAR_FILTER_ATTRIBUTE_END_DATE==attrName) {
481 calendar_time_s startTime = {CALENDAR_TIME_UTIME, {0}};
482 calendar_time_s endTime = {CALENDAR_TIME_UTIME, {0}};
483 calendar_time_s startTimeAllday = {CALENDAR_TIME_LOCALTIME, {0}};
484 calendar_time_s endTimeAllday = {CALENDAR_TIME_LOCALTIME, {0}};
485 if (!initialValue->isNullOrUndefined()) {
486 startTime.time.utime = getTimeTFromTZDateAny(initialValue);
487 startTimeAllday.time.date = CalendarUtility::LLIToCalTime(NULL, getTimeTFromTZDateAny(initialValue)).time.date;
489 if (!endValue->isNullOrUndefined()) {
490 endTime.time.utime = getTimeTFromTZDateAny(endValue);
491 endTimeAllday.time.date = CalendarUtility::LLIToCalTime(NULL, getTimeTFromTZDateAny(endValue)).time.date;
493 if(CalendarEvent::TASK_TYPE==m_type) {
494 calendar_filter_h subFilter = NULL;
495 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_todo._uri, &subFilter)) LoggerW("Filter creation failed.");
497 calendar_filter_h subFilter2 = NULL;
498 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_todo._uri, &subFilter2)) LoggerW("Filter creation failed.");
499 if (!initialValue->isNullOrUndefined()) {
500 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter2, m_taskAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, startTime)) LoggerW("Filter add failed.");
502 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
503 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilter2, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
505 if (!endValue->isNullOrUndefined()) {
506 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter2, m_taskAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endTime)) LoggerW("Filter add failed.");
508 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(subFilter, subFilter2)) LoggerW("Filter add failed.");
509 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilter2)) LoggerW("Filter destroy failed.");
511 calendar_filter_h subFilter3 = NULL;
512 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_todo._uri, &subFilter3)) LoggerW("Filter creation failed.");
513 if (!initialValue->isNullOrUndefined()) {
514 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter3, m_taskAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, startTimeAllday)) LoggerW("Filter add failed.");
516 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
517 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilter3, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
519 if (!endValue->isNullOrUndefined()) {
520 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter3, m_taskAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endTimeAllday)) LoggerW("Filter add failed.");
522 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilter, CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
523 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(subFilter, subFilter3)) LoggerW("Filter add failed.");
524 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilter3)) LoggerW("Filter destroy failed.");
526 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(currentFilter, subFilter)) LoggerW("Filter add failed.");
527 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilter)) LoggerW("Filter destroy failed.");
529 calendar_filter_h subFilter = NULL;
530 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_event._uri, &subFilter)) LoggerW("Filter creation failed.");
532 calendar_filter_h subFilter2 = NULL;
533 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_event._uri, &subFilter2)) LoggerW("Filter creation failed.");
534 if (!initialValue->isNullOrUndefined()) {
535 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter2, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, startTime)) LoggerW("Filter add failed.");
537 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
538 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilter2, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
540 if (!endValue->isNullOrUndefined()) {
541 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter2, m_eventAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endTime)) LoggerW("Filter add failed.");
543 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(subFilter, subFilter2)) LoggerW("Filter add failed.");
544 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilter2)) LoggerW("Filter destroy failed.");
546 calendar_filter_h subFilter3 = NULL;
547 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_event._uri, &subFilter3)) LoggerW("Filter creation failed.");
548 if (!initialValue->isNullOrUndefined()) {
549 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter3, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, startTimeAllday)) LoggerW("Filter add failed.");
551 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
552 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilter3, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
554 if (!endValue->isNullOrUndefined()) {
555 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilter3, m_eventAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endTimeAllday)) LoggerW("Filter add failed.");
557 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilter, CALENDAR_FILTER_OPERATOR_OR)) LoggerW("Filter add failed.");
558 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(subFilter, subFilter3)) LoggerW("Filter add failed.");
559 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilter3)) LoggerW("Filter destroy failed.");
561 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(currentFilter, subFilter)) LoggerW("Filter add failed.");
562 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilter)) LoggerW("Filter destroy failed.");
564 LoggerD("Query for normal instances.");
565 calendar_filter_h subFilterNormal = NULL;
566 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &subFilterNormal)) LoggerW("Filter creation failed.");
568 if (!initialValue->isNullOrUndefined()) {
569 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilterNormal, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, startTime)) LoggerW("Filter add failed.");
571 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
572 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilterNormal, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
574 if (!endValue->isNullOrUndefined()) {
575 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilterNormal, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endTime)) LoggerW("Filter add failed.");
577 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(currentNormalInstanceFilter, subFilterNormal)) LoggerW("Filter add failed.");
578 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilterNormal)) LoggerW("Filter destroy failed.");
580 LoggerD("Query for allday instances.");
581 calendar_filter_h subFilterAllday = NULL;
582 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &subFilterAllday)) LoggerW("Filter creation failed.");
584 if (!initialValue->isNullOrUndefined()) {
585 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilterAllday, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, startTimeAllday)) LoggerW("Filter add failed.");
587 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
588 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(subFilterAllday, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
590 if (!endValue->isNullOrUndefined()) {
591 if(CALENDAR_ERROR_NONE!=calendar_filter_add_caltime(subFilterAllday, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endTimeAllday)) LoggerW("Filter add failed.");
593 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(currentAlldayInstanceFilter, subFilterAllday)) LoggerW("Filter add failed.");
594 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(subFilterAllday)) LoggerW("Filter destroy failed.");
596 LoggerD("Enable the instance table search.");
597 m_enableInstanceSearch = true;
599 LoggerD("Added caltime range filter with initial value: "<<startTime.time.utime<<", end value: "<<endTime.time.utime);
600 } else if(CALENDAR_FILTER_ATTRIBUTE_LATITUDE==attrName ||
601 CALENDAR_FILTER_ATTRIBUTE_LONGITUDE==attrName) {
602 if(CalendarEvent::TASK_TYPE==m_type) {
603 if (!initialValue->isNullOrUndefined()) {
604 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, initialValue->getDouble())) LoggerW("Filter add failed.");
606 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
607 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
609 if (!endValue->isNullOrUndefined()) {
610 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endValue->getDouble())) LoggerW("Filter add failed.");
613 if (!initialValue->isNullOrUndefined()) {
614 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, initialValue->getDouble())) LoggerW("Filter add failed.");
615 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, initialValue->getDouble())) LoggerW("Filter add failed.");
616 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, initialValue->getDouble())) LoggerW("Filter add failed.");
618 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
619 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
620 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentNormalInstanceFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
621 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentAlldayInstanceFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
623 if (!endValue->isNullOrUndefined()) {
624 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endValue->getDouble())) LoggerW("Filter add failed.");
625 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endValue->getDouble())) LoggerW("Filter add failed.");
626 if(CALENDAR_ERROR_NONE!=calendar_filter_add_double(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endValue->getDouble())) LoggerW("Filter add failed.");
629 LoggerD("Added double range filter with initial value: "<<initialValue->getDouble()<<", end value: "<<endValue->getDouble());
630 } else if(CALENDAR_FILTER_ATTRIBUTE_COMPLETED_DATE==attrName ||
631 CALENDAR_FILTER_ATTRIBUTE_LAST_MODIFIED_DATE==attrName) {
632 if(CalendarEvent::TASK_TYPE==m_type) {
633 if (!initialValue->isNullOrUndefined()) {
634 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, getTimeTFromTZDateAny(initialValue))) LoggerW("Filter add failed.");
636 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
637 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
639 if (!endValue->isNullOrUndefined()) {
640 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, getTimeTFromTZDateAny(endValue))) LoggerW("Filter add failed.");
643 if (!initialValue->isNullOrUndefined()) {
644 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, getTimeTFromTZDateAny(initialValue))) LoggerW("Filter add failed.");
645 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, getTimeTFromTZDateAny(initialValue))) LoggerW("Filter add failed.");
646 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, getTimeTFromTZDateAny(initialValue))) LoggerW("Filter add failed.");
648 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
649 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
650 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentNormalInstanceFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
651 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentAlldayInstanceFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
653 if (!endValue->isNullOrUndefined()) {
654 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentFilter, m_eventAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, getTimeTFromTZDateAny(endValue))) LoggerW("Filter add failed.");
655 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentNormalInstanceFilter, m_normalInstanceAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, getTimeTFromTZDateAny(endValue))) LoggerW("Filter add failed.");
656 if(CALENDAR_ERROR_NONE!=calendar_filter_add_lli(currentAlldayInstanceFilter, m_alldayInstanceAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, getTimeTFromTZDateAny(endValue))) LoggerW("Filter add failed.");
659 LoggerD("Added lli range filter with initial value: "<<getTimeTFromTZDateAny(initialValue)<<", end value: "<<getTimeTFromTZDateAny(endValue));
660 } else if(CALENDAR_FILTER_ATTRIBUTE_PROGRESS==attrName) {
661 if(CalendarEvent::TASK_TYPE==m_type) {
662 if (!initialValue->isNullOrUndefined()) {
663 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, initialValue->getLong())) LoggerW("Filter add failed.");
665 if (!initialValue->isNullOrUndefined() && !endValue->isNullOrUndefined()) {
666 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(currentFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
668 if (!endValue->isNullOrUndefined()) {
669 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(currentFilter, m_taskAttributeMap[attrName], CALENDAR_MATCH_LESS_THAN_OR_EQUAL, endValue->getLong())) LoggerW("Filter add failed.");
672 LoggerW("progress not supported for an event");
674 LoggerD("Added double range filter with initial value: "<<initialValue->getLong()<<", end value: "<<endValue->getLong());
676 LoggerW("Not supported filter attribute: "<<attrName);
679 LoggerD("Attribute range visit done.");
682 void CalendarFilter::setType(CalendarEvent::CalendarType type)
684 if(CalendarEvent::TASK_TYPE==type) {
685 m_type = CalendarEvent::TASK_TYPE;
686 calendar_query_create(_calendar_todo._uri, &m_query);
687 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_todo._uri, &m_filter)) LoggerW("Filter creation failed.");
689 m_type = CalendarEvent::EVENT_TYPE;
690 calendar_query_create(_calendar_event._uri, &m_query);
691 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_event._uri, &m_filter)) LoggerW("Filter creation failed.");
693 calendar_query_create(_calendar_instance_normal_calendar_book._uri, &m_normalInstanceQuery);
694 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &m_normalInstanceFilter)) LoggerW("Filter creation failed.");
695 calendar_query_create(_calendar_instance_allday_calendar_book._uri, &m_alldayInstanceQuery);
696 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &m_alldayInstanceFilter)) LoggerW("Filter creation failed.");
700 void CalendarFilter::setCalendarId(int calendarId, bool isFilterSet)
703 calendar_filter_h m_superFilter = NULL;
704 calendar_filter_h m_normalInstanceSuperFilter = NULL;
705 calendar_filter_h m_alldayInstanceSuperFilter = NULL;
706 if(CalendarEvent::TASK_TYPE==m_type) {
707 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_todo._uri, &m_superFilter)) LoggerW("Filter creation failed.");
708 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_superFilter, m_filter)) LoggerW("Filter add failed.");
710 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_event._uri, &m_superFilter)) LoggerW("Filter creation failed.");
711 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_superFilter, m_filter)) LoggerW("Filter add failed.");
713 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &m_normalInstanceSuperFilter)) LoggerW("Filter creation failed.");
714 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_normalInstanceSuperFilter, m_normalInstanceFilter)) LoggerW("Filter add failed.");
715 if(CALENDAR_ERROR_NONE!=calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &m_alldayInstanceSuperFilter)) LoggerW("Filter creation failed.");
716 if(CALENDAR_ERROR_NONE!=calendar_filter_add_filter(m_alldayInstanceSuperFilter, m_alldayInstanceFilter)) LoggerW("Filter add failed.");
718 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_filter)) LoggerW("Filter destroy failed.");
719 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_normalInstanceFilter)) LoggerW("Filter add failed.");
720 if(CALENDAR_ERROR_NONE!=calendar_filter_destroy(m_alldayInstanceFilter)) LoggerW("Filter add failed.");
722 m_filter = m_superFilter;
723 m_normalInstanceFilter= m_normalInstanceSuperFilter;
724 m_alldayInstanceFilter = m_alldayInstanceSuperFilter;
725 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_filter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
726 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_normalInstanceFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
727 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_alldayInstanceFilter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
730 if(CalendarEvent::TASK_TYPE==m_type) {
731 if(CALENDAR_BOOK_FILTER_ALL==calendarId) {
732 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_filter, _calendar_todo.calendar_book_id, CALENDAR_MATCH_GREATER_THAN, calendarId)) LoggerW("Filter add failed.");
734 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_filter, _calendar_todo.calendar_book_id, CALENDAR_MATCH_EQUAL, calendarId)) LoggerW("Filter add failed.");
737 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_filter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
738 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_filter, _calendar_todo.is_deleted, CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
740 if(CALENDAR_BOOK_FILTER_ALL==calendarId) {
741 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_filter, _calendar_event.calendar_book_id, CALENDAR_MATCH_GREATER_THAN, calendarId)) LoggerW("Filter add failed.");
742 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_normalInstanceFilter, _calendar_instance_normal_calendar_book.calendar_book_id, CALENDAR_MATCH_GREATER_THAN, calendarId)) LoggerW("Filter add failed.");
743 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_alldayInstanceFilter, _calendar_instance_allday_calendar_book.calendar_book_id, CALENDAR_MATCH_GREATER_THAN, calendarId)) LoggerW("Filter add failed.");
745 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_filter, _calendar_event.calendar_book_id, CALENDAR_MATCH_EQUAL, calendarId)) LoggerW("Filter add failed.");
746 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_normalInstanceFilter, _calendar_instance_normal_calendar_book.calendar_book_id, CALENDAR_MATCH_EQUAL, calendarId)) LoggerW("Filter add failed.");
747 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_alldayInstanceFilter, _calendar_instance_allday_calendar_book.calendar_book_id, CALENDAR_MATCH_EQUAL, calendarId)) LoggerW("Filter add failed.");
750 /* No matching is_deleted field for instance tables. */
751 if(CALENDAR_ERROR_NONE!=calendar_filter_add_operator(m_filter, CALENDAR_FILTER_OPERATOR_AND)) LoggerW("Filter add failed.");
752 if(CALENDAR_ERROR_NONE!=calendar_filter_add_int(m_filter, _calendar_event.is_deleted, CALENDAR_MATCH_EQUAL, 0)) LoggerW("Filter add failed.");
756 void CalendarFilter::setSortMode(DeviceAPI::Tizen::SortModeArrayPtr attr)
758 std::string attrName;
759 DeviceAPI::Tizen::SortModeArray::iterator it = attr->begin();
761 // The first sort mode only.
762 attrName = (*it)->getAttributeName();
763 if (attrName.compare("") != 0) {
764 LoggerD("Setting the sort mode with attrName: "<<attrName);
765 if ((*it)->getOrder()==DeviceAPI::Tizen::ASCENDING_SORT_ORDER) {
766 if(CalendarEvent::TASK_TYPE==m_type) {
767 calendar_query_set_sort(m_query, m_taskAttributeMap[attrName], true);
769 calendar_query_set_sort(m_query, m_eventAttributeMap[attrName], true);
770 calendar_query_set_sort(m_normalInstanceQuery, m_normalInstanceAttributeMap[attrName], true);
771 calendar_query_set_sort(m_alldayInstanceQuery, m_alldayInstanceAttributeMap[attrName], true);
774 if(CalendarEvent::TASK_TYPE==m_type) {
775 calendar_query_set_sort(m_query, m_taskAttributeMap[attrName], false);
777 calendar_query_set_sort(m_query, m_eventAttributeMap[attrName], false);
778 calendar_query_set_sort(m_normalInstanceQuery, m_normalInstanceAttributeMap[attrName], false);
779 calendar_query_set_sort(m_alldayInstanceQuery, m_alldayInstanceAttributeMap[attrName], false);
783 LoggerW("Empty attribute name.");
787 void CalendarFilter::executeQuery()
790 ret = calendar_query_set_filter(m_query, m_filter);
791 if( CALENDAR_ERROR_NONE!=ret ) {
792 ThrowMsg(PlatformException, "Setting filter failed: "<<ret);
795 ret = calendar_db_get_records_with_query(m_query, 0, 0, &m_recordList);
796 if( CALENDAR_ERROR_NONE!=ret ) {
797 ThrowMsg(PlatformException, "Getting record list failed: "<<ret);
800 ret = calendar_list_get_count(m_recordList, &m_recordCount);
801 if( CALENDAR_ERROR_NONE!=ret ) {
802 ThrowMsg(PlatformException, "Can't get the item count: "<<ret);
804 LoggerD("Item count: "<<m_recordCount);
807 if(m_enableInstanceSearch) {
808 LoggerD("Perform query for instances.");
809 ret = calendar_query_set_filter(m_normalInstanceQuery, m_normalInstanceFilter);
810 if( CALENDAR_ERROR_NONE!=ret ) {
811 ThrowMsg(PlatformException, "Setting a normal instance filter failed: "<<ret);
813 ret = calendar_db_get_records_with_query(m_normalInstanceQuery, 0, 0, &m_normalInstanceRecordList);
814 if( CALENDAR_ERROR_NONE!=ret ) {
815 ThrowMsg(PlatformException, "Getting a normal instance record list failed: "<<ret);
817 ret = calendar_list_get_count(m_normalInstanceRecordList, &m_normalInstanceRecordCount);
818 if( CALENDAR_ERROR_NONE!=ret ) {
819 ThrowMsg(PlatformException, "Can't get a normal instance item count: "<<ret);
821 LoggerD("Normal instance item count: "<<m_normalInstanceRecordCount);
824 ret = calendar_query_set_filter(m_alldayInstanceQuery, m_alldayInstanceFilter);
825 if( CALENDAR_ERROR_NONE!=ret ) {
826 ThrowMsg(PlatformException, "Setting an allday instance filter failed: "<<ret);
828 ret = calendar_db_get_records_with_query(m_alldayInstanceQuery, 0, 0, &m_alldayInstanceRecordList);
829 if( CALENDAR_ERROR_NONE!=ret ) {
830 ThrowMsg(PlatformException, "Getting an allday instance record list failed: "<<ret);
832 ret = calendar_list_get_count(m_alldayInstanceRecordList, &m_alldayInstanceRecordCount);
833 if( CALENDAR_ERROR_NONE!=ret ) {
834 ThrowMsg(PlatformException, "Can't get an allday instance item count: "<<ret);
836 LoggerD("Allday instance item count: "<<m_alldayInstanceRecordCount);
839 LoggerD("No need to perform query for instances.");
843 int CalendarFilter::getResultRecordCount() const
845 return m_recordCount;
848 calendar_list_h CalendarFilter::getResultRecordList() const
853 int CalendarFilter::getNormalInstanceResultRecordCount() const
855 return m_normalInstanceRecordCount;
858 calendar_list_h CalendarFilter::getNormalInstanceResultRecordList() const
860 return m_normalInstanceRecordList;
863 int CalendarFilter::getAlldayInstanceResultRecordCount() const
865 return m_alldayInstanceRecordCount;
868 calendar_list_h CalendarFilter::getAlldayInstanceResultRecordList() const
870 return m_alldayInstanceRecordList;
873 int CalendarFilter::convertStringToIntValue(const std::string attrName, const std::string valueString)
875 LoggerD("attrName: "<<attrName<<", valueString: "<<valueString);
877 if(attrName==CALENDAR_FILTER_ATTRIBUTE_VISIBILITY)
879 if(valueString=="PUBLIC") {
880 return CALENDAR_SENSITIVITY_PUBLIC;
881 } else if(valueString=="PRIVATE") {
882 return CALENDAR_SENSITIVITY_PRIVATE;
883 } else if(valueString=="CONFIDENTIAL") {
884 return CALENDAR_SENSITIVITY_CONFIDENTIAL;
886 LoggerW("Wrong visibility value.");
889 else if(attrName==CALENDAR_FILTER_ATTRIBUTE_STATUS)
891 if(valueString=="TENTATIVE") {
892 return CALENDAR_EVENT_STATUS_TENTATIVE;
893 } else if(valueString=="CONFIRMED") {
894 return CALENDAR_EVENT_STATUS_CONFIRMED;
895 } else if(valueString=="CANCELLED") {
896 if(CalendarEvent::TASK_TYPE==m_type) {
897 return CALENDAR_TODO_STATUS_CANCELED;
899 return CALENDAR_EVENT_STATUS_CANCELLED;
901 } else if(valueString=="NEEDS_ACTION") {
902 return CALENDAR_TODO_STATUS_NEEDS_ACTION;
903 } else if(valueString=="IN_PROCESS") {
904 return CALENDAR_TODO_STATUS_IN_PROCESS;
905 } else if(valueString=="COMPLETED") {
906 return CALENDAR_TODO_STATUS_COMPLETED;
908 LoggerW("Wrong status value.");
911 else if(attrName==CALENDAR_FILTER_ATTRIBUTE_PRIORITY)
913 if(valueString=="HIGH") {
914 return CALENDAR_EVENT_PRIORITY_HIGH;
915 } else if(valueString=="MEDIUM") {
916 return CALENDAR_EVENT_PRIORITY_NORMAL;
917 } else if(valueString=="LOW") {
918 return CALENDAR_EVENT_PRIORITY_LOW;
920 LoggerW("Wrong priority value.");
923 else if(attrName==CALENDAR_FILTER_ATTRIBUTE_AVAILABILITY)
925 if(valueString=="BUSY") {
926 return CALENDAR_EVENT_BUSY_STATUS_BUSY;
927 } else if(valueString=="FREE") {
928 return CALENDAR_EVENT_BUSY_STATUS_FREE;
930 LoggerW("Wrong availability value.");
933 LoggerW("Invalid attrName");
939 long long int CalendarFilter::getTimeTFromTZDateAny(DeviceAPI::Tizen::AnyPtr &any) const
941 long long int *pt = static_cast<long long int *>(any->getPriv());