9d9f675587d8224bf3c6983d4a1ada0341806e77
[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         TizenApis::Api::Tizen::MatchFlagArrayPtr toMatchFlagArray(JSValueRef matchFlagArray);
49
50         JSValueRef toJSValueRef(TizenApis::Api::Tizen::FilterPtr arg);
51         TizenApis::Api::Tizen::FilterPtr toFilter(const JSValueRef& arg);
52
53         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::CompositeFilterPtr& arg);
54         TizenApis::Api::Tizen::CompositeFilterPtr toCompositeFilter(const JSValueRef& arg);
55
56         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeFilterPtr& arg);
57         TizenApis::Api::Tizen::AttributeFilterPtr toAttributeFilter(const JSValueRef& arg);
58
59         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeRangeFilterPtr& arg);
60         TizenApis::Api::Tizen::AttributeRangeFilterPtr toAttributeRangeFilter(const JSValueRef& arg);
61
62         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModePtr& arg);
63         TizenApis::Api::Tizen::SortModePtr toSortMode(const JSValueRef& arg);
64
65         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModeArrayPtr& arg);
66         TizenApis::Api::Tizen::SortModeArrayPtr toSortModeArray(const JSValueRef& arg);
67
68         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AnyArrayPtr& arg);
69         TizenApis::Api::Tizen::AnyArrayPtr toAnyArray(const JSValueRef& arg);
70
71         JSValueRef toJSValueRef(const TizenApis::Api::Tizen::FilterArrayPtr& arg);
72         TizenApis::Api::Tizen::FilterArrayPtr toFilterArray(const JSValueRef& arg);
73
74 private:
75         std::vector<std::string> m_compositeFilterAttrs;
76         std::vector<std::string> m_attributeFilterAttrs;
77         std::vector<std::string> m_attributeRangeFilterAttrs;
78         std::vector<std::string> m_sortModeAttrs;
79
80         void initFilterAttrs();
81 };
82
83 typedef WrtDeviceApis::CommonsJavaScript::ConverterFactory<FilterConverter> FilterConverterFactory;
84
85 } // Tizen
86 } // Tizen1_0
87 } // TizenApis
88
89 #endif // _TIZEN_FILTER_CONVERTER_H_