Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 95a2ba7e

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID 95a2ba7ef0590dcda3fe4ea5a74ff5696f5c3b5a
  • Vorgänger 19082efe
  • Nachfolger f9dccfc5

continued work on attribute resolver

Unterschiede anzeigen:

src/attributeresolver.cpp
ptr = target;
attributeName = r.getMappedBy();
}
auto obj = EntityHelper::getBaseClassObject(ptr, attributeName);
auto obj = EntityHelper::getBaseClassObject(e, attributeName);
/**
* @todo check inheritance and mappedBy
*/
Attribute *attrObj = new Attribute(attr,
this->qb->generateColumnNameID(obj->getTablename()),
e->getTablename(), e->metaObject());
this->resolveInheritance(e, attrObj);
attrObj->setRelation(target->getTablename(), target->metaObject(),
this->qb->generateManyToManyTableName(obj->getTablename(), attributeName),
attrObj->setRelation(target->getTablename(), target->metaObject(), r,
this->qb->generateManyToManyTableName(target->getTablename(), attributeName),
this->qb->generateColumnNameID(target->getTablename()));
delete obj;
return attrObj;
......
this->qb->generateColumnNameID(attr),
e->getTablename(), e->metaObject());
this->resolveInheritance(e, attrObj);
attrObj->setRelation(target->getTablename(), target->metaObject(), "", "id");
attrObj->setRelation(target->getTablename(), target->metaObject(), r, "", "id");
delete obj;
return attrObj;
}
......
Attribute *attrObj = new Attribute(attr, "id",
e->getTablename(), e->metaObject());
this->resolveInheritance(e, attrObj);
attrObj->setRelation(target->getTablename(), target->metaObject(), "",
attrObj->setRelation(target->getTablename(), target->metaObject(), r, "",
this->qb->generateColumnNameID(r.getMappedBy()));
delete obj;
return attrObj;
......
}
return attr;
}
Attribute *AttributeResolver::resolveAttribute(const QString &className,
const QString &attribute, const QString related) {
Attribute *attr = nullptr;
if(!className.isEmpty()) {
if(this->containsAttribute(className, attribute)) {
attr = this->attributes.value(className).value(attribute);
} else {
QSharedPointer<Entity> e = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(
className));
QSharedPointer<Entity> rel = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(
related));
attr = this->resolveExplicitAttribute(e, attribute, rel);
this->addAttribute(className, attr);
}
}
return attr;
}

Auch abrufbar als: Unified diff