Beta merge 2
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Tizen / FilterConverter.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 /**
18  * @file        FilterConverter.h
19  * @author      Kisub Song (kisubs.song@samsung.com)
20  * @version     0.1
21  * @description Reference from CalendarConverter.h
22  */
23
24 #ifndef _TIZEN_FILTER_CONVERTER_H_
25 #define _TIZEN_FILTER_CONVERTER_H_
26
27 #include <vector>
28 #include <string>
29 #include <CommonsJavaScript/Converter.h>
30 #include <API/Filter/IFilter.h>
31 #include <API/Filter/CompositeFilter.h>
32 #include <API/Filter/AttributeFilter.h>
33 #include <API/Filter/AttributeRangeFilter.h>
34 #include <API/Filter/SortMode.h>
35
36 namespace TizenApis {
37 namespace Tizen1_0 {
38 namespace Tizen {
39
40 class FilterConverter : public WrtDeviceApis::CommonsJavaScript::Converter
41 {
42 public:
43         using WrtDeviceApis::CommonsJavaScript::Converter::toJSValueRef;
44 public:
45         explicit FilterConverter(JSContextRef context);
46         virtual ~FilterConverter();
47
48         JSValueRef toJSValueRef(TizenApis::Api::Tizen::FilterPtr arg);
49         TizenApis::Api::Tizen::FilterPtr toFilter(const JSValueRef& arg);
50
51         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::FilterArrayPtr& arg);
52         TizenApis::Api::Tizen::FilterArrayPtr toFilterArray(const JSValueRef& arg);
53
54         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::CompositeFilterPtr& arg);
55         TizenApis::Api::Tizen::CompositeFilterPtr toCompositeFilter(const JSValueRef& arg);
56
57         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeFilterPtr& arg);
58         TizenApis::Api::Tizen::AttributeFilterPtr toAttributeFilter(const JSValueRef& arg);
59
60         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeRangeFilterPtr& arg);
61         TizenApis::Api::Tizen::AttributeRangeFilterPtr toAttributeRangeFilter(const JSValueRef& arg);
62
63         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModePtr& arg);
64         TizenApis::Api::Tizen::SortModePtr toSortMode(const JSValueRef& arg);
65
66         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModeArrayPtr& arg);
67         TizenApis::Api::Tizen::SortModeArrayPtr toSortModeArray(const JSValueRef& arg);
68
69         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AnyPtr& arg);
70         TizenApis::Api::Tizen::AnyPtr toAny(const JSValueRef& arg);
71
72         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AnyArrayPtr& arg);
73         TizenApis::Api::Tizen::AnyArrayPtr toAnyArray(const JSValueRef& arg);
74
75         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::FilterType& arg);
76         TizenApis::Api::Tizen::FilterType toCompositeFilterType(const JSValueRef& arg);
77
78         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::MatchFlag& arg);
79         TizenApis::Api::Tizen::MatchFlag toMatchFlag(const JSValueRef& arg);
80
81         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortOrder& arg);
82         TizenApis::Api::Tizen::SortOrder toSortOrder(const JSValueRef& arg);
83
84 private:
85         std::vector<std::string> m_compositeFilterAttrs;
86         std::vector<std::string> m_attributeFilterAttrs;
87         std::vector<std::string> m_attributeRangeFilterAttrs;
88         std::vector<std::string> m_sortModeAttrs;
89
90         void initFilterAttrs();
91 };
92
93 typedef WrtDeviceApis::CommonsJavaScript::ConverterFactory<FilterConverter> FilterConverterFactory;
94
95 } // Tizen
96 } // Tizen1_0
97 } // TizenApis
98
99 #endif // _TIZEN_FILTER_CONVERTER_H_