2 // Open Service Platform
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 * @file FScl_CalendarbookFilterImpl.h
19 * @brief This is the header file for the %_CalendarbookFilterImpl class.
21 * This header file contains the declarations of the %_CalendarbookFilterImpl class.
23 #ifndef _FSCL_CALENDARBOOK_FILTER_IMPL_H_
24 #define _FSCL_CALENDARBOOK_FILTER_IMPL_H_
26 #include <calendar2.h>
27 #include <FBaseTypes.h>
28 #include <FSclTypes.h>
29 #include <FBaseObject.h>
31 namespace Tizen { namespace Base
37 namespace Tizen { namespace Social
40 class CalendarbookFilter;
52 class _OSP_EXPORT_ _CalendarbookFilterImpl
53 : public Tizen::Base::Object
56 _CalendarbookFilterImpl(CalendarbookFilterType type);
58 virtual ~_CalendarbookFilterImpl(void);
60 virtual bool Equals(const Tizen::Base::Object& rhs) const;
62 virtual int GetHashCode(void) const;
64 calendar_filter_h GetFilterHandle(void) const;
66 CalendarbookFilterType GetType(void) const;
68 bool IsEmpty(void) const;
70 result AppendInt(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, int value);
72 result AppendDouble(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, double value);
74 result AppendBool(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, bool value);
76 result AppendDateTime(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, const Tizen::Base::DateTime& value);
78 result AppendString(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterStringOperator comparisonOperator, const Tizen::Base::String& value);
80 result AppendFilter(FilterConjunctiveOperator conjunctiveOperator, const _CalendarbookFilterImpl& filter);
82 static const char* GetUriFromType(CalendarbookFilterType type);
84 static __DataType GetPropertyType(CalendarbookFilterType type, unsigned long filterProperty);
86 static bool IsValidProperty(CalendarbookFilterType type, unsigned long filterProperty);
88 static unsigned int GetViewPropertyId(CalendarbookFilterType type, unsigned long filterProperty);
90 static const _CalendarbookFilterImpl* GetInstance(const CalendarbookFilter& filter);
92 static _CalendarbookFilterImpl* GetInstance(CalendarbookFilter& filter);
95 struct __FilterPropertyInfoEntry
97 unsigned long propertyId;
98 unsigned long viewPropertyId;
102 struct __FilterInfoEntry
104 unsigned long filterType;
105 const char* pViewUri;
106 unsigned long baseIndex;
107 unsigned long propertyInfoCount;
108 const __FilterPropertyInfoEntry* propertyInfos;
111 static const __FilterPropertyInfoEntry __calendarFilterPropertyInfos[];
112 static const __FilterPropertyInfoEntry __eventFilterPropertyInfos[];
113 static const __FilterPropertyInfoEntry __todoFilterPropertyInfos[];
114 static const __FilterPropertyInfoEntry __allDayEventInstanceFilterPropertyInfos[];
115 static const __FilterPropertyInfoEntry __nonAllDayEventInstanceFilterPropertyInfos[];
116 static const __FilterInfoEntry __filterInfos[];
120 static calendar_match_str_flag_e GetMatchStrFlag(FilterStringOperator stringOperstor);
121 static calendar_match_int_flag_e GetMatchIntFlag(FilterComparisonOperator comparisonOperator);
123 calendar_filter_h __filterHandle;
124 CalendarbookFilterType __filterType;
126 }; // _CalendarbookFilterImpl
130 #endif // _FSCL_CALENDARBOOK_FILTER_IMPL_H_