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.cpp
19 * @author Kisub Song (kisubs.song@samsung.com)
21 * @description Reference from CalendarConverter.cpp
24 #include <dpl/log/log.h>
25 #include <CommonsJavaScript/ScopedJSStringRef.h>
26 #include <CommonsJavaScript/Validator.h>
27 #include "FilterConverter.h"
29 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_TYPE "type"
30 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_ORDER "order"
31 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_FILTERS "filters"
32 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_IDS "ids"
33 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME "attributeName"
34 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_FLAG "matchFlag"
35 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_VALUES "matchValues"
36 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_CASE_SENSITIVE "caseSensitive"
37 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_INITIAL_VALUE "initialValue"
38 #define TIZEN_FILTER_CONVERTER_ATTRIBUTE_END_VALUE "endValue"
44 using namespace TizenApis::Api::Tizen;
45 using namespace WrtDeviceApis::Commons;
46 using namespace WrtDeviceApis::CommonsJavaScript;
50 FilterConverter::FilterConverter(JSContextRef context) : Converter(context)
55 FilterConverter::~FilterConverter()
60 MatchFlagArrayPtr FilterConverter::toMatchFlagArray(JSValueRef matchFlagArray)
62 MatchFlagArrayPtr result;
64 result = MatchFlagArrayPtr(new MatchFlagArray(toVectorOfStrings(matchFlagArray)));
65 } Catch(ConversionException) {
66 ThrowMsg(InvalidArgumentException, "AttributeFilter.matchFlags has invalid type value.");
71 JSValueRef FilterConverter::toJSValueRef(FilterPtr arg)
73 JSValueRef result = NULL;
75 if(arg->getFilterType() == UNION_FILTER || arg->getFilterType() == INTERSECTION_FILTER)
77 CompositeFilterPtr filter = DPL::DynamicPointerCast<CompositeFilter>(arg);
79 result = toJSValueRef(filter);
81 else if(arg->getFilterType() == ATTRIBUTE_FILTER)
83 AttributeFilterPtr filter = DPL::DynamicPointerCast<AttributeFilter>(arg);
85 result = toJSValueRef(filter);
87 else if(arg->getFilterType() == ATTRIBUTE_RANGE_FILTER)
89 AttributeRangeFilterPtr filter = DPL::DynamicPointerCast<AttributeRangeFilter>(arg);
91 result = toJSValueRef(filter);
97 FilterPtr FilterConverter::toFilter(const JSValueRef& arg)
100 ThrowMsg(NullPointerException, "Filter is NULL.");
102 if(!JSValueIsObject(m_context, arg))
103 ThrowMsg(InvalidArgumentException, "Filter is not object.");
105 JSObjectRef jsObject = toJSObjectRef(arg);
107 ThrowMsg(InvalidArgumentException, "Filter is not object.");
109 BasicValidator validator = ValidatorFactory<Validator>::getValidator(m_context);
111 if(validator->checkArrayKeys(m_compositeFilterAttrs, arg))
113 CompositeFilterPtr compositeFilter = toCompositeFilter(arg);
114 return DPL::StaticPointerCast<IFilter>(compositeFilter);
116 else if(validator->checkArrayKeys(m_attributeFilterAttrs, arg))
118 AttributeFilterPtr attributeFilter = toAttributeFilter(arg);
119 return DPL::StaticPointerCast<IFilter>(attributeFilter);
121 else if(validator->checkArrayKeys(m_attributeRangeFilterAttrs, arg))
123 AttributeRangeFilterPtr attributeRangeFilter = toAttributeRangeFilter(arg);
124 return DPL::StaticPointerCast<IFilter>(attributeRangeFilter);
127 ThrowMsg(InvalidArgumentException, "Not a Filter.");
128 return FilterPtr(NULL);
131 JSValueRef FilterConverter::toJSValueRef(const CompositeFilterPtr& arg)
133 JSObjectRef resultObject = JSObjectMake(m_context, NULL, NULL);
135 ScopedJSStringRef typeStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_TYPE));
136 FilterType filterType = arg->getFilterType();
138 if(filterType == UNION_FILTER)
140 else if(filterType == INTERSECTION_FILTER)
141 type = "INTERSECTION";
143 ThrowMsg(ConversionException, "Invalid FilterType.");
145 ScopedJSStringRef typeValue(JSStringCreateWithUTF8CString(type.c_str()));
146 JSObjectSetProperty(m_context, resultObject,
148 JSValueMakeString(m_context, typeValue.get()),
149 kJSPropertyAttributeNone, NULL);
151 ScopedJSStringRef filtersStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_FILTERS));
152 JSValueRef filters = toJSValueRef(arg->getFilters());
153 JSObjectSetProperty(m_context, resultObject,
156 kJSPropertyAttributeNone, NULL);
158 return static_cast<JSValueRef>(resultObject);
161 CompositeFilterPtr FilterConverter::toCompositeFilter(const JSValueRef& arg)
163 JSObjectRef jsObject = toJSObjectRef(arg);
165 ScopedJSStringRef typeStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_TYPE));
166 JSValueRef typeValue = JSObjectGetProperty(m_context, jsObject, typeStr.get(), NULL);
167 if(!JSValueIsString(m_context, typeValue))
168 ThrowMsg(InvalidArgumentException, "CompositeFilter.type is not an string.");
169 string type = toString(typeValue);
170 FilterType filterType;
172 if(type == "INTERSECTION")
173 filterType = INTERSECTION_FILTER;
174 else if(type == "UNION")
175 filterType = UNION_FILTER;
177 ThrowMsg(InvalidArgumentException, "CompositeFilter.type is wrong.");
179 ScopedJSStringRef filtersStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_FILTERS));
180 JSValueRef filtersValue = JSObjectGetProperty(m_context, jsObject, filtersStr.get(), NULL);
181 if(!JSIsArrayValue(m_context, filtersValue))
182 ThrowMsg(InvalidArgumentException, "CompositeFilter.filters is not an array.");
183 FilterArrayPtr filters = toFilterArray(filtersValue);
184 if(filters->size() == 0)
185 ThrowMsg(InvalidArgumentException, "CompositeFilter.filters array size is 0.");
187 return CompositeFilterPtr(new CompositeFilter(filterType, filters));
190 JSValueRef FilterConverter::toJSValueRef(const AttributeFilterPtr& arg)
192 AnyTypeConverterFactory::ConverterType converter =
193 AnyTypeConverterFactory::getConverter(m_context);
195 JSObjectRef resultObject = JSObjectMake(m_context, NULL, NULL);
197 ScopedJSStringRef attributeNameStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME));
198 ScopedJSStringRef attributeNameValue(JSStringCreateWithUTF8CString(arg->getAttributeName().c_str()));
199 JSObjectSetProperty(m_context, resultObject,
200 attributeNameStr.get(),
201 JSValueMakeString(m_context, attributeNameValue.get()),
202 kJSPropertyAttributeNone, NULL);
204 ScopedJSStringRef matchFlagStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_FLAG));
205 JSValueRef matchFlagValue = toJSValueRef(arg->getMatchFlag());
206 JSObjectSetProperty(m_context, resultObject,
209 kJSPropertyAttributeNone, NULL);
211 ScopedJSStringRef matchValuesStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_VALUES));
212 JSValueRef matchValuesValue = toJSValueRef(arg->getMatchValues());
213 JSObjectSetProperty(m_context, resultObject,
214 matchValuesStr.get(),
216 kJSPropertyAttributeNone, NULL);
218 ScopedJSStringRef caseSensitiveStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_CASE_SENSITIVE));
219 JSValueRef caseSensitiveValue = converter->toJSValueRef(arg->getCaseSensitive());
220 JSObjectSetProperty(m_context, resultObject,
221 caseSensitiveStr.get(),
223 kJSPropertyAttributeNone, NULL);
225 return static_cast<JSValueRef>(resultObject);
228 AttributeFilterPtr FilterConverter::toAttributeFilter(const JSValueRef& arg)
230 JSObjectRef jsObject = toJSObjectRef(arg);
232 ScopedJSStringRef attributeNameStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME));
233 JSValueRef attributeNameValue = JSObjectGetProperty(m_context, jsObject, attributeNameStr.get(), NULL);
234 if(!JSValueIsString(m_context, attributeNameValue))
235 ThrowMsg(InvalidArgumentException, "AttributeFilter.attributeName is not an string.");
236 string attributeName = toString(attributeNameValue);
237 if(attributeName == "")
238 ThrowMsg(InvalidArgumentException, "AttributeFilter.attributeName is empty string.");
240 ScopedJSStringRef matchFlagStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_FLAG));
241 JSValueRef matchFlagValue = JSObjectGetProperty(m_context, jsObject, matchFlagStr.get(), NULL);
243 if(JSValueIsUndefined(m_context, matchFlagValue)) {
244 matchFlag = "EXACTLY";
245 } else if(!JSValueIsString(m_context, matchFlagValue)) {
246 ThrowMsg(InvalidArgumentException, "AttributeFilter.matchFlag is not string.");
248 matchFlag = toString(matchFlagValue);
251 ScopedJSStringRef matchValuesStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_VALUES));
252 JSValueRef matchValuesValue = JSObjectGetProperty(m_context, jsObject, matchValuesStr.get(), NULL);
253 AnyArrayPtr matchValues(NULL);
255 if(matchFlag == "EXISTS") {
256 //matchValues = AnyArrayPtr(NULL);
257 } else if(JSValueIsUndefined(m_context, matchValuesValue)) {
258 ThrowMsg(InvalidArgumentException, "AttributeFilter.matchValues is undefined.");
259 } else if(!JSIsArrayValue(m_context, matchValuesValue)) {
260 ThrowMsg(InvalidArgumentException, "AttributeFilter.matchValues is not an array.");
262 matchValues = toAnyArray(matchValuesValue);
265 ScopedJSStringRef caseSensitiveStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_CASE_SENSITIVE));
266 JSValueRef caseSensitiveValue = JSObjectGetProperty(m_context, jsObject, caseSensitiveStr.get(), NULL);
268 if(JSValueIsUndefined(m_context, caseSensitiveValue)) {
269 if(matchFlag == "EXACTLY")
270 caseSensitive = true;
272 caseSensitive = false;
274 if(!JSValueIsBoolean(m_context, caseSensitiveValue)) {
275 ThrowMsg(InvalidArgumentException, "AttributeFilter.caseSensitive is not boolean.");
277 caseSensitive = toBool(caseSensitiveValue);
280 return AttributeFilterPtr(new AttributeFilter(attributeName, matchValues, matchFlag, caseSensitive));
283 JSValueRef FilterConverter::toJSValueRef(const AttributeRangeFilterPtr& arg)
285 AnyTypeConverterFactory::ConverterType converter =
286 AnyTypeConverterFactory::getConverter(m_context);
288 JSObjectRef resultObject = JSObjectMake(m_context, NULL, NULL);
290 ScopedJSStringRef attributeNameStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME));
291 ScopedJSStringRef attributeNameValue(JSStringCreateWithUTF8CString(arg->getAttributeName().c_str()));
292 JSObjectSetProperty(m_context, resultObject,
293 attributeNameStr.get(),
294 JSValueMakeString(m_context, attributeNameValue.get()),
295 kJSPropertyAttributeNone, NULL);
297 ScopedJSStringRef initialValueStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_INITIAL_VALUE));
298 JSValueRef initialValueValue = converter->toJSValueRef(arg->getInitialValue());
299 JSObjectSetProperty(m_context, resultObject,
300 initialValueStr.get(),
302 kJSPropertyAttributeNone, NULL);
304 ScopedJSStringRef endValueStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_END_VALUE));
305 JSValueRef endValueValue = converter->toJSValueRef(arg->getEndValue());
306 JSObjectSetProperty(m_context, resultObject,
309 kJSPropertyAttributeNone, NULL);
311 return static_cast<JSValueRef>(resultObject);
314 AttributeRangeFilterPtr FilterConverter::toAttributeRangeFilter(const JSValueRef& arg)
316 AnyTypeConverterFactory::ConverterType converter =
317 AnyTypeConverterFactory::getConverter(m_context);
319 JSObjectRef jsObject = toJSObjectRef(arg);
321 ScopedJSStringRef attributeNameStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME));
322 JSValueRef attributeNameValue = JSObjectGetProperty(m_context, jsObject, attributeNameStr.get(), NULL);
323 if(!JSValueIsString(m_context, attributeNameValue))
324 ThrowMsg(InvalidArgumentException, "AttributeRangeFilter.attributeName is not an string.");
325 string attributeName = toString(attributeNameValue);
326 if(attributeName == "")
327 ThrowMsg(InvalidArgumentException, "AttributeRangeFilter.attributeName is empty string.");
329 ScopedJSStringRef initialValueStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_INITIAL_VALUE));
330 JSValueRef initialValueValue = JSObjectGetProperty(m_context, jsObject, initialValueStr.get(), NULL);
331 AnyPtr initialValue(NULL);
332 if(!JSValueIsUndefined(m_context, initialValueValue) && !JSValueIsNull(m_context, initialValueValue)) {
333 initialValue = converter->toAny(initialValueValue, PrimitiveType_Int);
336 ScopedJSStringRef endValueStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_END_VALUE));
337 JSValueRef endValueValue = JSObjectGetProperty(m_context, jsObject, endValueStr.get(), NULL);
338 AnyPtr endValue(NULL);
339 if(!JSValueIsUndefined(m_context, endValueValue) && !JSValueIsNull(m_context, endValueValue)) {
340 endValue = converter->toAny(endValueValue, PrimitiveType_Int);
343 return AttributeRangeFilterPtr(new AttributeRangeFilter(attributeName, initialValue, endValue));
346 JSValueRef FilterConverter::toJSValueRef(const SortModePtr& arg)
348 JSObjectRef resultObject = JSObjectMake(m_context, NULL, NULL);
350 ScopedJSStringRef attributeNameStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME));
351 ScopedJSStringRef attributeNameValue(JSStringCreateWithUTF8CString(arg->getAttributeName().c_str()));
352 JSObjectSetProperty(m_context, resultObject,
353 attributeNameStr.get(),
354 JSValueMakeString(m_context, attributeNameValue.get()),
355 kJSPropertyAttributeNone, NULL);
357 ScopedJSStringRef orderStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ORDER));
358 SortOrder sortOrder = arg->getOrder();
360 if(sortOrder == ASCENDING_SORT_ORDER)
362 else if(sortOrder == DESCENDING_SORT_ORDER)
365 ThrowMsg(ConversionException, "Invalid SortMode.");
367 ScopedJSStringRef orderValue(JSStringCreateWithUTF8CString(order.c_str()));
368 JSObjectSetProperty(m_context, resultObject,
370 JSValueMakeString(m_context, orderValue.get()),
371 kJSPropertyAttributeNone, NULL);
373 return static_cast<JSValueRef>(resultObject);
376 SortModePtr FilterConverter::toSortMode(const JSValueRef& arg)
378 BasicValidator validator = ValidatorFactory<Validator>::getValidator(m_context);
380 if(validator->checkArrayKeys(m_compositeFilterAttrs, arg)) {
381 ThrowMsg(InvalidArgumentException, "Not SortMode.");
384 JSObjectRef jsObject = toJSObjectRef(arg);
386 ScopedJSStringRef orderStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ORDER));
387 JSValueRef orderValue = JSObjectGetProperty(m_context, jsObject, orderStr.get(), NULL);
388 if(!JSValueIsString(m_context, orderValue))
389 ThrowMsg(InvalidArgumentException, "SortMode.order is not an string.");
390 string order = toString(orderValue);
394 sortOrder = ASCENDING_SORT_ORDER;
395 else if(order == "DESC")
396 sortOrder = DESCENDING_SORT_ORDER;
398 ThrowMsg(InvalidArgumentException, "SortMode.order is wrong.");
400 ScopedJSStringRef attributeNameStr(JSStringCreateWithUTF8CString(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME));
401 JSValueRef attributeNameValue = JSObjectGetProperty(m_context, jsObject, attributeNameStr.get(), NULL);
402 if(!JSValueIsString(m_context, attributeNameValue))
403 ThrowMsg(InvalidArgumentException, "SortMode.attributeName is not an string.");
404 string attributeName = toString(attributeNameValue);
405 if(attributeName == "")
406 ThrowMsg(InvalidArgumentException, "SortMode.attributeName is empty string.");
408 return SortModePtr(new SortMode(attributeName, sortOrder));
411 JSValueRef FilterConverter::toJSValueRef(const SortModeArrayPtr& arg)
413 int size = arg->size();
415 JSObjectRef resultObject = JSCreateArrayObject(m_context, 0, NULL);
417 ThrowMsg(ConversionException, "Can not create array object.");
419 for(int i = 0; i < size; i++)
421 JSValueRef jsvalue = toJSValueRef(arg->at(i));
422 if (!JSSetArrayElement(m_context, resultObject, i, jsvalue))
423 ThrowMsg(ConversionException, "Can not fill SortMode array.");
426 return static_cast<JSValueRef>(resultObject);
429 SortModeArrayPtr FilterConverter::toSortModeArray(const JSValueRef& arg)
431 if(!JSIsArrayValue(m_context, arg))
432 ThrowMsg(InvalidArgumentException, "Not an array type.");
434 SortModeArrayPtr sortModeArray = SortModeArrayPtr(new SortModeArray());
435 JSObjectRef object = toJSObjectRef(arg);
437 unsigned int length = JSGetArrayLength(m_context, object);
438 for(unsigned int i=0; i<length; i++)
440 JSValueRef value = JSGetArrayElement(m_context, object, i);
442 if(JSValueIsNull(m_context, value) || JSValueIsUndefined(m_context, value)) {
443 ThrowMsg(InvalidArgumentException, "CompositeFilter.filters has null elements.");
446 SortModePtr sortMode = toSortMode(value);
448 sortModeArray->push_back(sortMode);
451 return sortModeArray;
454 JSValueRef FilterConverter::toJSValueRef(const AnyArrayPtr& arg)
456 AnyTypeConverterFactory::ConverterType converter =
457 AnyTypeConverterFactory::getConverter(m_context);
459 int size = arg->size();
461 JSObjectRef resultObject = JSCreateArrayObject(m_context, 0, NULL);
463 ThrowMsg(ConversionException, "Can not create array object.");
465 for(int i = 0; i < size; i++)
467 JSValueRef jsvalue = converter->toJSValueRef(arg->at(i));
468 if (!JSSetArrayElement(m_context, resultObject, i, jsvalue))
469 ThrowMsg(ConversionException, "Can not fill any array.");
472 return static_cast<JSValueRef>(resultObject);
475 AnyArrayPtr FilterConverter::toAnyArray(const JSValueRef& arg)
479 retVal = AnyArrayPtr(new AnyArray());
481 JSObjectRef obj = toJSObjectRef(arg);
482 AnyTypeConverterFactory::ConverterType converter =
483 AnyTypeConverterFactory::getConverter(m_context);
485 unsigned int length = JSGetArrayLength(m_context, obj);
486 for(unsigned int i=0; i<length; i++)
488 JSValueRef value = JSGetArrayElement(m_context, obj, i);
490 if(JSValueIsNull(m_context, value) || JSValueIsUndefined(m_context, value)) {
491 ThrowMsg(InvalidArgumentException, "IDFilter.ids has null elements.");
493 AnyPtr any = converter->toAny(value, PrimitiveType_Int);
495 retVal->push_back(any);
501 JSValueRef FilterConverter::toJSValueRef(const FilterArrayPtr& arg)
503 int size = arg->size();
505 JSObjectRef resultObject = JSCreateArrayObject(m_context, 0, NULL);
507 ThrowMsg(ConversionException, "Can not create array object.");
509 for(int i = 0; i < size; i++)
511 JSValueRef jsvalue = toJSValueRef(arg->at(i));
512 if (!JSSetArrayElement(m_context, resultObject, i, jsvalue))
513 ThrowMsg(ConversionException, "Can not fill filter array.");
516 return static_cast<JSValueRef>(resultObject);
519 FilterArrayPtr FilterConverter::toFilterArray(const JSValueRef& arg)
521 FilterArrayPtr retVal;
523 JSObjectRef obj = toJSObjectRef(arg);
524 retVal = FilterArrayPtr(new FilterArray());
526 unsigned int length = JSGetArrayLength(m_context, obj);
527 for(unsigned int i=0; i<length; i++)
529 JSValueRef value = JSGetArrayElement(m_context, obj, i);
531 if(JSValueIsNull(m_context, value) || JSValueIsUndefined(m_context, value)) {
532 ThrowMsg(InvalidArgumentException, "CompositeFilter.filters has null elements.");
535 FilterPtr filter = toFilter(value);
537 retVal->push_back(filter);
543 void FilterConverter::initFilterAttrs()
545 m_compositeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_TYPE);
546 m_compositeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_FILTERS);
548 m_attributeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME);
549 m_attributeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_FLAG);
550 m_attributeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_MATCH_VALUES);
551 m_attributeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_CASE_SENSITIVE);
553 m_attributeRangeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME);
554 m_attributeRangeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_INITIAL_VALUE);
555 m_attributeRangeFilterAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_END_VALUE);
557 m_sortModeAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ORDER);
558 m_sortModeAttrs.push_back(TIZEN_FILTER_CONVERTER_ATTRIBUTE_ATTRIBUTE_NAME);