Revision 28d2f01a
Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt
src/entitymanager.cpp | ||
---|---|---|
|
||
QStringList EntityManager::connectionNames = QStringList();
|
||
|
||
QHash<QString, EntityManager *> EntityManager::instances =
|
||
QHash<QString, EntityManager *>();
|
||
|
||
QStringList EntityManager::getConnectionNames() {
|
||
return EntityManager::connectionNames;
|
||
}
|
||
... | ... | |
this->schema->setTables(this->schema->getTableSchemas());
|
||
this->queryInterpreter = QSharedPointer<QueryInterpreter>(new QueryInterpreter(
|
||
this->schema->getQueryBuilder()));
|
||
this->appendToInstanceList();
|
||
}
|
||
|
||
EntityManager::~EntityManager() {
|
||
EntityManager::removeConnectionName(this->db->getConnectionName());
|
||
EntityManager::instances.remove(this->objectName());
|
||
}
|
||
|
||
bool EntityManager::startup(QString version, QStringList toInitialize,
|
||
... | ... | |
return propertyIsValid;
|
||
}
|
||
|
||
QString EntityManager::generateObjectName() {
|
||
int i = 0;
|
||
QString name = "em[";
|
||
while (true) {
|
||
if (!EntityManager::instances.contains(name + QString::number(i) + "]")) {
|
||
name += QString::number(i) + "]";
|
||
break;
|
||
}
|
||
}
|
||
return name;
|
||
}
|
||
|
||
void EntityManager::appendToInstanceList() {
|
||
this->setObjectName(this->generateObjectName());
|
||
EntityManager::instances.insert(this->objectName(), this);
|
||
}
|
||
QHash<QString, EntityManager *> EntityManager::getInstances() {
|
||
return instances;
|
||
}
|
||
|
||
EntityManager *EntityManager::getDefaultInstance() {
|
||
for (auto i = EntityManager::instances.constBegin();
|
||
i != EntityManager::instances.constEnd(); ++i) {
|
||
return i.value();
|
||
}
|
||
return nullptr;
|
||
}
|
||
|
||
EntityManager *EntityManager::getInstance(QString name) {
|
||
if (EntityManager::instances.contains(name)) {
|
||
return EntityManager::instances.value(name);
|
||
}
|
||
return nullptr;
|
||
}
|
||
|
||
|
||
bool EntityManager::shouldBeSaved(QSharedPointer<Entity> &entity,
|
||
const Relation &r) {
|
||
return entity && (r.getCascadeType().contains(CascadeType::ALL)
|
Auch abrufbar als: Unified diff
validators