void* XMLSerialize::getObjectPrimitiveValue(void* _1, const std::string& className, const std::string& propName) { Element* root = (Element*)_1; if(root->getTagName()!=propName) return NULL; if((className=="signed" || className=="int" || className=="signed int")) { int *vt = new int; *vt = CastUtil::lexical_cast<int>(root->getText()); return vt; } else if((className=="unsigned" || className=="unsigned int")) { unsigned int *vt = new unsigned int; *vt = CastUtil::lexical_cast<unsigned int>(root->getText()); return vt; } else if((className=="short" || className=="short int" || className=="signed short" || className=="signed short int")) { short *vt = new short; *vt = CastUtil::lexical_cast<short>(root->getText()); return vt; } else if((className=="unsigned short" || className=="unsigned short int")) { unsigned short *vt = new unsigned short; *vt = CastUtil::lexical_cast<unsigned short>(root->getText()); return vt; } else if((className=="long" || className=="long int" || className=="signed long" || className=="signed long int")) { long *vt = new long; *vt = CastUtil::lexical_cast<long>(root->getText()); return vt; } else if((className=="long long" || className=="long long int" || className=="signed long long int")) { long long *vt = new long long; *vt = CastUtil::lexical_cast<long long>(root->getText()); return vt; } else if((className=="unsigned long" || className=="unsigned long int")) { unsigned long *vt = new unsigned long; *vt = CastUtil::lexical_cast<unsigned long>(root->getText()); return vt; } else if((className=="unsigned long long" || className=="unsigned long long int")) { unsigned long long *vt = new unsigned long long; *vt = CastUtil::lexical_cast<unsigned long long>(root->getText()); return vt; } else if((className=="char" || className=="signed char")) { char *vt = new char; *vt = root->getText().at(0); return vt; } else if(className=="unsigned char") { unsigned char *vt = new unsigned char; *vt = root->getText().at(0); return vt; } else if(className=="Date") { DateFormat formt("yyyy-mm-dd hh:mi:ss"); return formt.parse(root->getText()); } else if(className=="BinaryData") { return BinaryData::unSerilaize(root->getText()); } else if(className=="float") { float *vt = new float; *vt = CastUtil::lexical_cast<float>(root->getText()); return vt; } else if(className=="double") { double *vt = new double; *vt = CastUtil::lexical_cast<double>(root->getText()); return vt; } else if(className=="long double") { long double *vt = new long double; *vt = CastUtil::lexical_cast<long double>(root->getText()); return vt; } else if(className=="bool") { bool *vt = new bool; *vt = CastUtil::lexical_cast<bool>(root->getText()); return vt; } else if((className=="std::string" || className=="string")) { std::string *vt = new std::string; *vt = root->getText(); return vt; } return NULL; }
void* BinarySerialize::getObjectPrimitiveValue(void* _1, string className, string propName) { AMEFObject* root = (AMEFObject*)_1; if((className=="signed" || className=="int" || className=="signed int") && root->getNameStr()==propName) { int *vt = new int; *vt = root->getIntValue(); return vt; } else if((className=="unsigned" || className=="unsigned int") && root->getNameStr()==propName) { unsigned int *vt = new unsigned int; *vt = root->getUIntValue(); return vt; } else if((className=="short" || className=="short int" || className=="signed short" || className=="signed short int") && root->getNameStr()==propName) { short *vt = new short; *vt = root->getShortValue(); return vt; } else if((className=="unsigned short" || className=="unsigned short int") && root->getNameStr()==propName) { unsigned short *vt = new unsigned short; *vt = root->getUShortValue(); return vt; } else if((className=="long" || className=="long int" || className=="signed long" || className=="signed long int") && root->getNameStr()==propName) { long *vt = new long; *vt = root->getLongLongValue(); return vt; } else if((className=="unsigned long" || className=="unsigned long int") && root->getNameStr()==propName) { long *vt = new long; *vt = root->getLongLongValue(); return vt; } else if((className=="long long" || className=="long long int" || className=="signed long long int") && root->getNameStr()==propName) { long long *vt = new long long; *vt = root->getULongLongValue(); return vt; } else if((className=="unsigned long long" || className=="unsigned long long int") && root->getNameStr()==propName) { unsigned long long *vt = new unsigned long long; *vt = root->getULongLongValue(); return vt; } else if((className=="char" || className=="signed char") && root->getNameStr()==propName) { char *vt = new char; *vt = root->getCharValue(); return vt; } else if(className=="unsigned char" && root->getNameStr()==propName) { unsigned char *vt = new unsigned char; *vt = root->getUCharValue(); return vt; } else if(className=="Date" && root->getNameStr()==propName) { DateFormat formt("yyyy-mm-dd hh:mi:ss"); return formt.parse(root->getValueStr()); } else if(className=="BinaryData" && root->getNameStr()==propName) { return BinaryData::unSerilaize(root->getValueStr()); } else if(className=="float" && root->getNameStr()==propName) { float *vt = new float; *vt = root->getFloatValue(); return vt; } else if(className=="double" && root->getNameStr()==propName) { double *vt = new double; *vt = root->getDoubleValue(); return vt; } else if(className=="long double" && root->getNameStr()==propName) { long double *vt = new long double; *vt = root->getLongDoubleValue(); return vt; } else if(className=="bool" && root->getNameStr()==propName) { bool *vt = new bool; *vt = root->getBoolValue(); return vt; } else if((className=="std::string" || className=="string") && root->getNameStr()==propName) { string *vt = new string; *vt = root->getValueStr(); return vt; } return NULL; }
void XMLSerialize::addObjectPrimitiveProperty(void* _1, const std::string& propName, const std::string& className, void* t) { std::string* object = (std::string*)_1; std::string objXml; if(className=="std::string" || className=="string") { std::string tem = *(std::string*)t; objXml = tem; } else if(className=="char") { char tem = *(char*)t; std::string temp; temp.push_back(tem); objXml = temp; } else if(className=="unsigned char") { unsigned char tem = *(char*)t; std::string temp; temp.push_back(tem); objXml = temp; } else if(className=="int") { int tem = *(int*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="unsigned int") { unsigned int tem = *(unsigned int*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="short") { short tem = *(short*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="unsigned short") { unsigned short tem = *(unsigned short*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="long") { long tem = *(long*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="unsigned long") { unsigned long tem = *(unsigned long*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="long long") { long long tem = *(long long*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="unsigned long long") { unsigned long long tem = *(unsigned long long*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="float") { float tem = *(float*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="double") { double tem = *(double*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="long double") { long double tem = *(long double*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="bool") { bool tem = *(bool*)t; objXml = CastUtil::lexical_cast<std::string>(tem); } else if(className=="Date") { DateFormat formt("yyyy-mm-dd hh:mi:ss"); objXml = formt.format(*(Date*)t); } else if(className=="BinaryData") { objXml = BinaryData::serilaize(*(BinaryData*)t); } /*StringUtil::replaceAll(className, "std::", ""); StringUtil::replaceAll(className, "::", "_"); StringUtil::replaceAll(className, "<", "-"); StringUtil::replaceAll(className, ">", "-"); if(className.at(className.length()-1)=='-') className = className.substr(0, className.length()-1);*/ //TODO - any side effects?? //*object += "<" + propName + " type=\"" + className + "\">" + objXml + "</" + propName + ">"; *object += "<" + propName + ">" + objXml + "</" + propName + ">"; }
std::string XMLSerialize::serializePrimitive(const std::string& className, void* t) { std::string objXml; if(className=="std::string" || className=="string") { std::string tem = *(std::string*)t; objXml = "<string>"+tem+"</string>"; } else if(className=="char") { char tem = *(char*)t; std::string temp; temp.push_back(tem); objXml = "<char>"+temp+"</char>"; } else if(className=="unsigned char") { unsigned char tem = *(char*)t; std::string temp; temp.push_back(tem); objXml = "<uchar>"+temp+"</uchar>"; } else if(className=="int") { int tem = *(int*)t; objXml = "<int>"+CastUtil::lexical_cast<std::string>(tem)+"</int>"; } else if(className=="unsigned int") { unsigned int tem = *(unsigned int*)t; objXml = "<uint>"+CastUtil::lexical_cast<std::string>(tem)+"</uint>"; } else if(className=="short") { short tem = *(short*)t; objXml = "<short>"+CastUtil::lexical_cast<std::string>(tem)+"</short>"; } else if(className=="unsigned short") { unsigned short tem = *(unsigned short*)t; objXml = "<ushort>"+CastUtil::lexical_cast<std::string>(tem)+"</ushort>"; } else if(className=="long") { long tem = *(long*)t; objXml = "<long>"+CastUtil::lexical_cast<std::string>(tem)+"</long>"; } else if(className=="unsigned long") { unsigned long tem = *(unsigned long*)t; objXml = "<ulong>"+CastUtil::lexical_cast<std::string>(tem)+"</ulong>"; } else if(className=="long long") { long long tem = *(long long*)t; objXml = "<llong>"+CastUtil::lexical_cast<std::string>(tem)+"</llong>"; } else if(className=="unsigned long long") { unsigned long long tem = *(unsigned long long*)t; objXml = "<ullong>"+CastUtil::lexical_cast<std::string>(tem)+"</ullong>"; } else if(className=="float") { float tem = *(float*)t; objXml = "<float>"+CastUtil::lexical_cast<std::string>(tem)+"</float>"; } else if(className=="double") { double tem = *(double*)t; objXml = "<double>"+CastUtil::lexical_cast<std::string>(tem)+"</double>"; } else if(className=="long double") { long double tem = *(long double*)t; objXml = "<ldouble>"+CastUtil::lexical_cast<std::string>(tem)+"</ldouble>"; } else if(className=="bool") { bool tem = *(bool*)t; objXml = "<bool>"+CastUtil::lexical_cast<std::string>(tem)+"</bool>"; } else if(className=="Date") { DateFormat formt("yyyy-mm-dd hh:mi:ss"); objXml = "<Date>"+formt.format(*(Date*)t)+"</Date>"; } else if(className=="BinaryData") { objXml = "<BinaryData>"+BinaryData::serilaize(*(BinaryData*)t)+"</BinaryData>"; } return objXml; }
void XMLSerialize::addPrimitiveElementToContainer(void* _1, const int& counter, const std::string& className, void* cont, const std::string& container) { Element* root = (Element*)_1; Element* ele = (Element*)&(root->getChildElements().at(counter)); if(className=="std::string" || className=="string") { std::string retVal = ele->getText(); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="int") { int retVal = CastUtil::lexical_cast<int>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="short") { short retVal = CastUtil::lexical_cast<short>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="long") { long retVal = CastUtil::lexical_cast<long>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="long long") { long long retVal = CastUtil::lexical_cast<long long>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="long double") { long double retVal = CastUtil::lexical_cast<long double>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="unsigned int") { unsigned int retVal = CastUtil::lexical_cast<unsigned int>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="unsigned short") { unsigned short retVal = CastUtil::lexical_cast<unsigned short>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="unsigned long") { unsigned long retVal = CastUtil::lexical_cast<unsigned long>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="unsigned long long") { unsigned long long retVal = CastUtil::lexical_cast<unsigned long long>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="float") { float retVal = CastUtil::lexical_cast<float>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="double") { double retVal = CastUtil::lexical_cast<double>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="bool") { bool retVal = CastUtil::lexical_cast<bool>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="char") { char retVal = CastUtil::lexical_cast<char>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="unsigned char") { unsigned char retVal = CastUtil::lexical_cast<unsigned char>(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, retVal, cont); else addValueToNestedContainer(container, retVal, cont); } else if(className=="Date") { DateFormat formt("yyyy-mm-dd hh:mi:ss"); Date* _d = formt.parse(ele->getText()); if(container=="std::set" || container=="std::multiset") addValueToNestedContainerSV(container, *_d, cont); else addValueToNestedContainer(container, *_d, cont); delete _d; } }
void JSONSerialize::addObjectPrimitiveProperty(void* _1, string propName, string className, void* t) { string* object = (string*)_1; string objXml; if(className=="std::string" || className=="string") { string tem = *(string*)t; objXml = "\""+tem+"\""; } else if(className=="char") { char tem = *(char*)t; string temp; temp.push_back(tem); objXml = "\""+temp+"\""; } else if(className=="unsigned char") { unsigned char tem = *(char*)t; string temp; temp.push_back(tem); objXml = "\""+temp+"\""; } else if(className=="int") { int tem = *(int*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="unsigned int") { unsigned int tem = *(unsigned int*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="short") { short tem = *(short*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="unsigned short") { unsigned short tem = *(unsigned short*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="long") { long tem = *(long*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="unsigned long") { unsigned long tem = *(unsigned long*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="long long") { long long tem = *(long long*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="unsigned long long") { unsigned long long tem = *(unsigned long long*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="float") { float tem = *(float*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="double") { double tem = *(double*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="long double") { long double tem = *(long double*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="bool") { bool tem = *(bool*)t; objXml = CastUtil::lexical_cast<string>(tem); } else if(className=="Date") { DateFormat formt("yyyy-mm-dd hh:mi:ss"); objXml = "\""+formt.format(*(Date*)t)+"\""; } else if(className=="BinaryData") { objXml = "\""+BinaryData::serilaize(*(BinaryData*)t)+"\""; } *object += "\"" + propName + "\" : " + objXml; }
void* JSONSerialize::getPrimitiveValue(void* _1, string className) { string* root = (string*)_1; if((className=="signed" || className=="int" || className=="signed int")) { int *vt = new int; *vt = CastUtil::lexical_cast<int>(*root); return vt; } else if((className=="unsigned" || className=="unsigned int")) { unsigned int *vt = new unsigned int; *vt = CastUtil::lexical_cast<unsigned int>(*root); return vt; } else if((className=="short" || className=="short int" || className=="signed short" || className=="signed short int")) { short *vt = new short; *vt = CastUtil::lexical_cast<short>(*root); return vt; } else if((className=="unsigned short" || className=="unsigned short int")) { unsigned short *vt = new unsigned short; *vt = CastUtil::lexical_cast<unsigned short>(*root); return vt; } else if((className=="long int" || className=="signed long" || className=="signed long int" || className=="signed long long int")) { long *vt = new long; *vt = CastUtil::lexical_cast<long>(*root); return vt; } else if((className=="unsigned long long" || className=="unsigned long long int")) { unsigned long long *vt = new unsigned long long; *vt = CastUtil::lexical_cast<unsigned long long>(*root); return vt; } else if((className=="char" || className=="signed char")) { char *vt = new char; *vt = root->at(0); return vt; } else if(className=="unsigned char") { unsigned char *vt = new unsigned char; *vt = root->at(0); return vt; } else if(className=="Date") { DateFormat formt("yyyy-mm-dd hh:mi:ss"); return formt.parse(*root); } else if(className=="BinaryData") { return BinaryData::unSerilaize(*root); } else if(className=="float") { float *vt = new float; *vt = CastUtil::lexical_cast<float>(*root); return vt; } else if(className=="double") { double *vt = new double; *vt = CastUtil::lexical_cast<double>(*root); return vt; } else if(className=="long double") { long double *vt = new long double; *vt = CastUtil::lexical_cast<long double>(*root); return vt; } else if(className=="bool") { bool *vt = new bool; *vt = CastUtil::lexical_cast<bool>(*root); return vt; } else if(className=="std::string" || className=="string") { string *vt = new string; *vt = *root; return vt; } return NULL; }