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 IFilterTracer.cpp
19 * @author Kisub Song (kisubs.song@samsung.com)
25 #include "FilterValidator.h"
33 FilterValidator::FilterValidator(PropertyStructArray properties,
34 MatchFlagStrArray matchFlags)
37 for(i=0; properties[i].attributeName != 0 ; i++)
38 m_properties[properties[i].attributeName] =
39 PropertyPtr(new Property(properties[i].type));
41 for(i=0; matchFlags[i] != 0; i++)
42 m_matchFlags[matchFlags[i]] = true;
45 FilterValidator::~FilterValidator()
49 bool FilterValidator::validateAttribute(std::string& attrName, AnyArrayPtr& values,
50 std::string& matchFlag, bool caseSensitive, int depth)
52 if(m_properties[attrName] == NULL)
55 PropertyPtr prop = m_properties[attrName];
59 AnyArray::iterator arrayIter;
60 for(arrayIter = values->begin(); arrayIter != values->end(); arrayIter++)
61 if(!(prop->type & (*arrayIter)->getType()))
65 if(m_matchFlags[matchFlag] == false)
71 bool FilterValidator::validateAttributeRange(std::string& attrName,
72 AnyPtr& initialValue, AnyPtr& endValue, int depth)
74 if(m_properties[attrName] == NULL)
77 PropertyPtr prop = m_properties[attrName];
79 if(prop->type != initialValue->getType())
82 if(prop->type != endValue->getType())
88 bool FilterValidator::validateComposite(int depth)