2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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.
18 * @file FilterConverter.h
19 * @author Kisub Song (kisubs.song@samsung.com)
21 * @description Reference from CalendarConverter.h
24 #ifndef _TIZEN_FILTER_CONVERTER_H_
25 #define _TIZEN_FILTER_CONVERTER_H_
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>
40 class FilterConverter : public WrtDeviceApis::CommonsJavaScript::Converter
43 using WrtDeviceApis::CommonsJavaScript::Converter::toJSValueRef;
45 explicit FilterConverter(JSContextRef context);
46 virtual ~FilterConverter();
48 JSValueRef toJSValueRef(TizenApis::Api::Tizen::FilterPtr arg);
49 TizenApis::Api::Tizen::FilterPtr toFilter(const JSValueRef& arg);
51 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::FilterArrayPtr& arg);
52 TizenApis::Api::Tizen::FilterArrayPtr toFilterArray(const JSValueRef& arg);
54 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::CompositeFilterPtr& arg);
55 TizenApis::Api::Tizen::CompositeFilterPtr toCompositeFilter(const JSValueRef& arg);
57 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeFilterPtr& arg);
58 TizenApis::Api::Tizen::AttributeFilterPtr toAttributeFilter(const JSValueRef& arg);
60 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeRangeFilterPtr& arg);
61 TizenApis::Api::Tizen::AttributeRangeFilterPtr toAttributeRangeFilter(const JSValueRef& arg);
63 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModePtr& arg);
64 TizenApis::Api::Tizen::SortModePtr toSortMode(const JSValueRef& arg);
66 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModeArrayPtr& arg);
67 TizenApis::Api::Tizen::SortModeArrayPtr toSortModeArray(const JSValueRef& arg);
69 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AnyPtr& arg);
70 TizenApis::Api::Tizen::AnyPtr toAny(const JSValueRef& arg);
72 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AnyArrayPtr& arg);
73 TizenApis::Api::Tizen::AnyArrayPtr toAnyArray(const JSValueRef& arg);
75 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::FilterType& arg);
76 TizenApis::Api::Tizen::FilterType toCompositeFilterType(const JSValueRef& arg);
78 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::MatchFlag& arg);
79 TizenApis::Api::Tizen::MatchFlag toMatchFlag(const JSValueRef& arg);
81 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortOrder& arg);
82 TizenApis::Api::Tizen::SortOrder toSortOrder(const JSValueRef& arg);
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;
90 void initFilterAttrs();
93 typedef WrtDeviceApis::CommonsJavaScript::ConverterFactory<FilterConverter> FilterConverterFactory;
99 #endif // _TIZEN_FILTER_CONVERTER_H_