#include "IMessagingTypes.h"
-#include <emf-types.h>
+#include <email-types.h>
#include <dpl/log/log.h>
namespace Messaging {
- const std::string StorageChangesFolderGenerator::STRING_MATCH_EXACTLY = "EXACTLY";
- const std::string StorageChangesFolderGenerator::STRING_MATCH_CONTAINS = "CONTAINS";
- const std::string StorageChangesFolderGenerator::STRING_MATCH_STARTSWITH = "STARTSWITH";
- const std::string StorageChangesFolderGenerator::STRING_MATCH_ENDSWITH = "ENDSWITH";
-// const std::string StorageChangesFolderGenerator::STRING_MATCH_CASESENSITIVE = "CASESENSITIVE";
-
const int StorageChangesFolderGenerator::MESSAGE_TYPE_NOT_INITIALIZED = -1;
StorageChangesFolderGenerator::StorageChangesFolderGenerator(Api::Messaging::IMessageFolderPtr folder):m_messageType(MESSAGE_TYPE_NOT_INITIALIZED) {
LogDebug("<<< getMatchExactlyClause DIFF >>>");
return FALSE;
}
+ }
+
+ bool StorageChangesFolderGenerator::getMatchFullstringClause(std::string& attrName, Api::Tizen::AnyPtr& value)
+ {
+ std::string tempString1;
+ std::string tempString2;
+
+ std::string valueString = value->toString();
+ LogDebug("<<< attrName : " << attrName);
+ LogDebug("<<< valueString : " << valueString);
+
+ tempString1.assign(attrName);
+ tempString2.assign(valueString);
+
+ StrLowChange(tempString1);
+ StrLowChange(tempString2);
+
+ LogDebug("<<< attrName : " << tempString1);
+ LogDebug("<<< valueString : " << tempString2);
+
+ if(tempString1.compare(tempString2) == 0)
+ {
+ LogDebug("<<< getMatchFullstringClause SAME >>>");
+ return TRUE;
+ }
+ else{
+ LogDebug("<<< getMatchFullstringClause DIFF >>>");
+ return FALSE;
}
+ }
bool StorageChangesFolderGenerator::getMatchContainsClause(std::string& attrName, Api::Tizen::AnyPtr& value)
{
+ std::string tempString1;
+ std::string tempString2;
+
std::string valueString = value->toString();
LogDebug("<<< attrName : " << attrName);
LogDebug("<<< valueString : " << valueString);
- LogDebug("<<< attrName.find(valueString) : " << attrName.find(valueString));
+
+ tempString1.assign(attrName);
+ tempString2.assign(valueString);
+
+ StrLowChange(tempString1);
+ StrLowChange(tempString2);
+
+ LogDebug("<<< attrName : " << tempString1);
+ LogDebug("<<< valueString : " << tempString2);
- if(attrName.find(valueString) != std::string::npos)
+ if(tempString1.find(tempString2) != std::string::npos)
{
LogDebug("<<< getMatchContainsClause CONTAINS >>>");
return TRUE;
bool StorageChangesFolderGenerator::getMatchStartwithClause(std::string& attrName, Api::Tizen::AnyPtr& value)
{
+ std::string tempString1;
+ std::string tempString2;
+
std::string valueString = value->toString();
LogDebug("<<< attrName : " << attrName);
LogDebug("<<< valueString : " << valueString);
- LogDebug("<<< attrName.compare(0,valueString.size(), valueString) : " << attrName.compare(0,valueString.size(), valueString));
+
+ tempString1.assign(attrName);
+ tempString2.assign(valueString);
+
+ StrLowChange(tempString1);
+ StrLowChange(tempString2);
+ LogDebug("<<< attrName : " << tempString1);
+ LogDebug("<<< valueString : " << tempString2);
- if(attrName.size()-valueString.size() < 0)
+ if(tempString1.size()-tempString2.size() < 0)
return FALSE;
- if(attrName.compare(0,valueString.size(), valueString) == 0)
+ if(tempString1.compare(0,tempString2.size(), tempString2) == 0)
{
LogDebug("<<< getMatchStartwithClause START WITH >>>");
return TRUE;
bool StorageChangesFolderGenerator::getMatchEndwithClause(std::string& attrName, Api::Tizen::AnyPtr& value)
{
+ std::string tempString1;
+ std::string tempString2;
+
std::string valueString = value->toString();
-
LogDebug("<<< attrName : " << attrName);
LogDebug("<<< valueString : " << valueString);
- LogDebug("<<< attrName.compare(attrName.size()-valueString.size(),valueString.size(), valueString) : " << attrName.compare(attrName.size()-valueString.size(),valueString.size(), valueString));
+
+ tempString1.assign(attrName);
+ tempString2.assign(valueString);
+ StrLowChange(tempString1);
+ StrLowChange(tempString2);
- if(attrName.size()-valueString.size() < 0)
+ LogDebug("<<< attrName : " << tempString1);
+ LogDebug("<<< valueString : " << tempString2);
+
+ if(tempString1.size()-tempString2.size() < 0)
return FALSE;
- if(attrName.compare(attrName.size()-valueString.size(),valueString.size(), valueString) == 0 )
+ if(tempString1.compare(tempString1.size()-tempString2.size(),tempString2.size(), tempString2) == 0 )
{
LogDebug("<<< getMatchEndwithClause END WITH >>>");
return TRUE;
}
}
+
+ bool StorageChangesFolderGenerator::getMatchExistClause(std::string& attrName)
+ {
+ LogDebug("<<< attrName : " << attrName);
+ if(attrName.size()> 0)
+ return TRUE;
+ else
+ return FALSE;
+ }
+
void StorageChangesFolderGenerator::visitAttribute(std::string& attrName,
Api::Tizen::MatchFlag& matchFlag, Api::Tizen::AnyPtr& matchValue, int depth){
LogDebug("<<< attrName:[" << attrName << "], matchFlag:[" << matchFlag << "]");
- if(matchValue == NULL)
+ if(matchFlag != Api::Tizen::MATCH_EXISTS){
+ if(matchValue == NULL) {
return;
+ }
+ }
LogDebug("matchValue:" << matchValue->toString());
std::string valueString;
// Check Folder_type and filter_type
- if(attrName.compare("serviceId")==0){
+ if(attrName.compare( StorageChangesFolderFilterValidatorFactory::ATTRIBUTE_ACCOUNT_ID)==0){
LogDebug("<<< value:[" << value << "]");
int nType = atoi(value->toString().c_str());
if((int)m_accountid == nType)
}
return;
}
- if(attrName.compare("contestType")==0){
+ if(attrName.compare(StorageChangesFolderFilterValidatorFactory::ATTRIBUTE_CONTENT_TYPE)==0){
LogDebug("<<< value:[" << value << "]");
std::string convertType = value->toString();
int nType = convertMessageType(convertType);
}
return;
}
- if(attrName.compare("type")==0){
+ if(attrName.compare(StorageChangesFolderFilterValidatorFactory::ATTRIBUTE_TYPE )==0){
LogDebug("<<< value:[" << value << "]");
std::string convertType = value->toString();
int nType = convertFolderType(convertType);
}
return;
}
- if(attrName.compare("synchronizable")==0){
+ if(attrName.compare(StorageChangesFolderFilterValidatorFactory::ATTRIBUTE_SYNCHRONIZABLE)==0){
LogDebug("<<< value:[" << value << "]");
- int nType = value->toString().compare("true");
- if((int)m_synchronizable == nType)
+ std::string lowerString;
+ lowerString.assign(value->toString());
+ StrLowChange(lowerString);
+ int nType = lowerString.compare("true");
+ if((int)m_synchronizable != nType)
{
m_result.push_back(TRUE);
LogDebug("<<< synchronizable is same");
return;
}
- if(attrName.compare("name")==0){
+ if(attrName.compare(StorageChangesFolderFilterValidatorFactory::ATTRIBUTE_NAME)==0){
LogDebug("<<< value:[" << value << "]");
LogDebug("<<< value->toString():[" << value->toString() << "]");
LogDebug("<<< m_name:[" << m_name << "]");
return;
}
- if(attrName.compare("path")==0){
+ if(attrName.compare(StorageChangesFolderFilterValidatorFactory::ATTRIBUTE_PATH)==0){
LogDebug("<<< value:[" << value << "]");
LogDebug("<<< value->toString():[" << value->toString() << "]");
LogDebug("<<< m_path:[" << m_path << "]");
if(matchFlag == Api::Tizen::MATCH_EXACTLY){
LogDebug("STRING_MATCH_EXACTLY");
result = result || getMatchExactlyClause(valueString, value);
+ }else if(matchFlag == Api::Tizen::MATCH_FULLSTRING){
+ LogDebug("STRING_MATCH_FULLSTRING");
+ result = result || getMatchFullstringClause(valueString, value);
}else if(matchFlag == Api::Tizen::MATCH_CONTAINS){
LogDebug("STRING_MATCH_CONTAINS");
result = result || getMatchContainsClause(valueString, value);
}else if(matchFlag == Api::Tizen::MATCH_ENDSWITH){
LogDebug("STRING_MATCH_ENDSWITH");
result = result || getMatchEndwithClause(valueString, value);
+ }else if(matchFlag == Api::Tizen::MATCH_EXISTS){
+ LogDebug("STRING_MATCH_EXIST");
+ result = result || getMatchExistClause(valueString);
}else{
LogDebug("[ERROR]invalid match flag : iter:" << *iter);
}
LogDebug("result = " << result);
return result;
}
+
+
+ void StorageChangesFolderGenerator::StrLowChange(std::string& tempString)
+ {
+ std::transform(tempString.begin(), tempString.end(), tempString.begin(), ::tolower);
+ return;
+ }
+
}
} //namespace Platform
} //namespace WrtPlugins