data: java sample project
* added javaparser as sample project * fixed crash in utility::isPrefix when prefix is longer than the actual string * fixed crash when inserting a meta value that contains a special character * added "language" to project settings of tutorial * changed separators in serialized name hierarchy * added javaparser project to windows installers * enabled the checkbox for start menu shortcut in installer by default * removed autorefresh icon * removed JavaSmallTest project
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
#include "utility/utilityString.h"
|
||||
#include "utility/Version.h"
|
||||
|
||||
const size_t SqliteStorage::STORAGE_VERSION = 4;
|
||||
const size_t SqliteStorage::STORAGE_VERSION = 5;
|
||||
|
||||
SqliteStorage::SqliteStorage(const FilePath& dbFilePath)
|
||||
: m_dbFilePath(dbFilePath)
|
||||
@@ -833,10 +833,16 @@ std::string SqliteStorage::getMetaValue(const std::string& key) const
|
||||
|
||||
void SqliteStorage::insertOrUpdateMetaValue(const std::string& key, const std::string& value)
|
||||
{
|
||||
m_database.execDML((
|
||||
"INSERT OR REPLACE INTO meta(id, key, value) "
|
||||
"VALUES( (SELECT id FROM meta WHERE key = '" + key + "'), '" + key + "', '" + value + "');"
|
||||
CppSQLite3Statement stmt = m_database.compileStatement(std::string(
|
||||
"INSERT OR REPLACE INTO meta(id, key, value) VALUES("
|
||||
"(SELECT id FROM meta WHERE key = ?), ?, ?"
|
||||
");"
|
||||
).c_str());
|
||||
|
||||
stmt.bind(1, key.c_str());
|
||||
stmt.bind(2, key.c_str());
|
||||
stmt.bind(3, value.c_str());
|
||||
stmt.execDML();
|
||||
}
|
||||
|
||||
size_t SqliteStorage::getStorageVersion() const
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
std::string NameElement::Signature::serialize(Signature signature)
|
||||
{
|
||||
return signature.m_prefix + "\r" + signature.m_postfix;
|
||||
return signature.m_prefix + "\tp" + signature.m_postfix;
|
||||
}
|
||||
|
||||
NameElement::Signature NameElement::Signature::deserialize(const std::string& serialized)
|
||||
{
|
||||
std::vector<std::string> serializedElements = utility::splitToVector(serialized, "\r");
|
||||
std::vector<std::string> serializedElements = utility::splitToVector(serialized, "\tp");
|
||||
if (serializedElements.size() != 2)
|
||||
{
|
||||
LOG_ERROR("unable to deserialize name signature: " + serialized); // todo: obfuscate serialized!
|
||||
|
||||
@@ -10,9 +10,9 @@ std::string NameHierarchy::serialize(NameHierarchy nameHierarchy)
|
||||
{
|
||||
if (i > 0)
|
||||
{
|
||||
serializedName += "\n";
|
||||
serializedName += "\tn";
|
||||
}
|
||||
serializedName += nameHierarchy[i]->getName() + "\t";
|
||||
serializedName += nameHierarchy[i]->getName() + "\ts";
|
||||
serializedName += NameElement::Signature::serialize(nameHierarchy[i]->getSignature());
|
||||
}
|
||||
return serializedName;
|
||||
@@ -22,10 +22,10 @@ NameHierarchy NameHierarchy::deserialize(const std::string& serializedName)
|
||||
{
|
||||
NameHierarchy nameHierarchy;
|
||||
|
||||
std::vector<std::string> serializedNameElements = utility::splitToVector(serializedName, "\n");
|
||||
std::vector<std::string> serializedNameElements = utility::splitToVector(serializedName, "\tn");
|
||||
for (size_t i = 0; i < serializedNameElements.size(); i++)
|
||||
{
|
||||
std::vector<std::string> nameParts = utility::splitToVector(serializedNameElements[i], "\t");
|
||||
std::vector<std::string> nameParts = utility::splitToVector(serializedNameElements[i], "\ts");
|
||||
if (nameParts.size() != 2)
|
||||
{
|
||||
LOG_ERROR("unable to deserialize name hierarchy: " + serializedName); // todo: obfuscate serializedName!
|
||||
|
||||
Reference in New Issue
Block a user