2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
17 * @file FScl_CalendarbookFilterImpl.h
18 * @brief This is the header file for the %_CalendarbookFilterImpl class.
20 * This header file contains the declarations of the %_CalendarbookFilterImpl class.
22 #ifndef _FSCL_CALENDARBOOK_FILTER_IMPL_H_
23 #define _FSCL_CALENDARBOOK_FILTER_IMPL_H_
25 #include <calendar2.h>
26 #include <FBaseObject.h>
27 #include <FBaseTypes.h>
28 #include <FSclTypes.h>
30 namespace Tizen { namespace Base
36 namespace Tizen { namespace Social
39 class CalendarbookFilter;
51 class _OSP_EXPORT_ _CalendarbookFilterImpl
52 : public Tizen::Base::Object
55 _CalendarbookFilterImpl(CalendarbookFilterType type);
57 virtual ~_CalendarbookFilterImpl(void);
59 virtual bool Equals(const Tizen::Base::Object& rhs) const;
61 virtual int GetHashCode(void) const;
63 calendar_filter_h GetFilterHandle(void) const;
65 CalendarbookFilterType GetType(void) const;
67 bool IsEmpty(void) const;
69 result AppendInt(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, int value);
71 result AppendDouble(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, double value);
73 result AppendBool(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, bool value);
75 result AppendDateTime(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterComparisonOperator comparisonOperator, const Tizen::Base::DateTime& value);
77 result AppendString(FilterConjunctiveOperator conjunctiveOperator, unsigned long filterProperty, FilterStringOperator comparisonOperator, const Tizen::Base::String& value);
79 result AppendFilter(FilterConjunctiveOperator conjunctiveOperator, const _CalendarbookFilterImpl& filter);
81 static const char* GetUriFromType(CalendarbookFilterType type);
83 static __DataType GetPropertyType(CalendarbookFilterType type, unsigned long filterProperty);
85 static bool IsValidProperty(CalendarbookFilterType type, unsigned long filterProperty);
87 static unsigned int GetViewPropertyId(CalendarbookFilterType type, unsigned long filterProperty);
89 static const _CalendarbookFilterImpl* GetInstance(const CalendarbookFilter& filter);
91 static _CalendarbookFilterImpl* GetInstance(CalendarbookFilter& filter);
94 struct __FilterPropertyInfoEntry
96 unsigned long propertyId;
97 unsigned long viewPropertyId;
101 struct __FilterInfoEntry
103 unsigned long filterType;
104 const char* pViewUri;
105 unsigned long baseIndex;
106 unsigned long propertyInfoCount;
107 const __FilterPropertyInfoEntry* propertyInfos;
110 static const __FilterPropertyInfoEntry __calendarFilterPropertyInfos[];
111 static const __FilterPropertyInfoEntry __eventFilterPropertyInfos[];
112 static const __FilterPropertyInfoEntry __todoFilterPropertyInfos[];
113 static const __FilterPropertyInfoEntry __allDayEventInstanceFilterPropertyInfos[];
114 static const __FilterPropertyInfoEntry __nonAllDayEventInstanceFilterPropertyInfos[];
115 static const __FilterInfoEntry __filterInfos[];
119 static calendar_match_str_flag_e GetMatchStrFlag(FilterStringOperator stringOperstor);
120 static calendar_match_int_flag_e GetMatchIntFlag(FilterComparisonOperator comparisonOperator);
122 calendar_filter_h __filterHandle;
123 CalendarbookFilterType __filterType;
125 }; // _CalendarbookFilterImpl
129 #endif // _FSCL_CALENDARBOOK_FILTER_IMPL_H_