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.
17 * FolderFilterValidator.h
19 * Created on: 2011. 10. 31.
23 #ifndef FOLDERFILTERVALIDATOR_H_
24 #define FOLDERFILTERVALIDATOR_H_
26 #include <API/Filter/FilterValidator.h>
35 class FolderFilterValidator: public Api::Tizen::FilterValidator {
37 bool m_isAccountIdSetted;
39 std::vector<std::string> m_accountIdMatchFlagVec;
40 std::vector<std::string> m_folderPathMatchFlagVec;
42 std::map<std::string, std::vector<std::string> > m_attributeAndMatchFlagsMap;
45 FolderFilterValidator(Api::Tizen::PropertyStructArray properties,
46 Api::Tizen::MatchFlagStrArray matchFlag, Api::Tizen::PrimitiveType idType);
48 virtual ~FolderFilterValidator();
50 // validate AttributeRangeFilter
51 virtual bool validateAttributeRange(std::string& attrName,
52 Api::Tizen::AnyPtr& initialValue, Api::Tizen::AnyPtr& endValue, int depth=0);
54 virtual bool validateAttribute(std::string& attrName,
55 Api::Tizen::AnyArrayPtr& values, std::string& matchFlag, bool caseSensitive, int depth=0);
58 bool validateAttributeEach(std::string& attrName,Api::Tizen::AnyPtr& value, std::string& matchFlag, int depth);
61 void initMatchFlagVectors();
62 void initAttributeAndMatchFlagsMap();
64 bool vectorContains(std::vector<std::string>& vec, std::string& value);
68 typedef DPL::SharedPtr<FolderFilterValidator> FolderFilterValidatorPtr;
72 #endif /* MESSAGEFILTERVALIDATOR_H_ */