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 TizenApis::Api::Tizen::MatchFlagArrayPtr toMatchFlagArray(JSValueRef matchFlagArray);
50 JSValueRef toJSValueRef(TizenApis::Api::Tizen::FilterPtr arg);
51 TizenApis::Api::Tizen::FilterPtr toFilter(const JSValueRef& arg);
53 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::CompositeFilterPtr& arg);
54 TizenApis::Api::Tizen::CompositeFilterPtr toCompositeFilter(const JSValueRef& arg);
56 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeFilterPtr& arg);
57 TizenApis::Api::Tizen::AttributeFilterPtr toAttributeFilter(const JSValueRef& arg);
59 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AttributeRangeFilterPtr& arg);
60 TizenApis::Api::Tizen::AttributeRangeFilterPtr toAttributeRangeFilter(const JSValueRef& arg);
62 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModePtr& arg);
63 TizenApis::Api::Tizen::SortModePtr toSortMode(const JSValueRef& arg);
65 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::SortModeArrayPtr& arg);
66 TizenApis::Api::Tizen::SortModeArrayPtr toSortModeArray(const JSValueRef& arg);
68 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::AnyArrayPtr& arg);
69 TizenApis::Api::Tizen::AnyArrayPtr toAnyArray(const JSValueRef& arg);
71 JSValueRef toJSValueRef(const TizenApis::Api::Tizen::FilterArrayPtr& arg);
72 TizenApis::Api::Tizen::FilterArrayPtr toFilterArray(const JSValueRef& arg);
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;
80 void initFilterAttrs();
83 typedef WrtDeviceApis::CommonsJavaScript::ConverterFactory<FilterConverter> FilterConverterFactory;
89 #endif // _TIZEN_FILTER_CONVERTER_H_