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 * MessageFilterValidator.h
19 * Created on: 2011. 10. 31.
23 #ifndef MESSAGEFILTERVALIDATOR_H_
24 #define MESSAGEFILTERVALIDATOR_H_
26 #include <API/Filter/FilterValidator.h>
35 class MessageFilterValidator: public Api::Tizen::FilterValidator {
39 std::vector<std::string> m_typeMatchFlagVec;
40 std::vector<std::string> m_idMatchFlagVec;
41 std::vector<std::string> m_folderIdMatchFlagVec;
42 std::vector<std::string> m_timestampMatchFlagVec;
43 std::vector<std::string> m_fromMatchFlagVec;
44 std::vector<std::string> m_toMatchFlagVec;
45 std::vector<std::string> m_ccMatchFlagVec;
46 std::vector<std::string> m_bccMatchFlagVec;
47 std::vector<std::string> m_bodyMatchFlagVec;
48 std::vector<std::string> m_isReadMatchFlagVec;
49 std::vector<std::string> m_priorityMatchFlagVec;
50 std::vector<std::string> m_subjectMatchFlagVec;
52 std::map<std::string, std::vector<std::string> > m_attributeAndMatchFlagsMap;
55 MessageFilterValidator(Api::Tizen::PropertyStructArray properties);
57 virtual ~MessageFilterValidator();
59 // validate AttributeRangeFilter
60 virtual bool validateAttributeRange(std::string& attrName,
61 Api::Tizen::AnyPtr& initialValue, Api::Tizen::AnyPtr& endValue, int depth=0);
63 virtual bool validateAttribute(std::string& attrName, Api::Tizen::MatchFlag& matchFlag,
64 Api::Tizen::AnyPtr& matchValue, int depth=0);
67 bool validateAttributeEach(std::string& attrName, Api::Tizen::MatchFlag& matchFlag, Api::Tizen::AnyPtr& value, int depth);
70 void initMatchFlagVectors();
71 void initAttributeAndMatchFlagsMap();
73 bool vectorContains(std::vector<std::string>& vec, Api::Tizen::MatchFlag& value);
77 typedef DPL::SharedPtr<MessageFilterValidator> MessageFilterValidatorPtr;
81 #endif /* MESSAGEFILTERVALIDATOR_H_ */