From 555c373a0c4dfe386dcd2c88ae9548d95e307409 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 9 Jun 2016 17:27:29 +0200 Subject: Moved query logic to EntityReader to make it reusable in the resource. --- common/entitystore.h | 37 +++++++------------------------------ 1 file changed, 7 insertions(+), 30 deletions(-) (limited to 'common/entitystore.h') diff --git a/common/entitystore.h b/common/entitystore.h index 24f43b1..b795b26 100644 --- a/common/entitystore.h +++ b/common/entitystore.h @@ -24,6 +24,7 @@ #include "storage.h" #include "adaptorfactoryregistry.h" +#include "entityreader.h" namespace Sink { @@ -35,48 +36,24 @@ public: template T read(const QByteArray &identifier) const { - auto typeName = ApplicationDomain::getTypeName(); - auto mainDatabase = Storage::mainDatabase(mTransaction, typeName); - qint64 retrievedRevision = 0; - auto bufferAdaptor = getLatest(mainDatabase, identifier, *Sink::AdaptorFactoryRegistry::instance().getFactory(mResourceType), retrievedRevision); - if (!bufferAdaptor) { - return T(); - } - return T(mResourceInstanceIdentifier, identifier, retrievedRevision, bufferAdaptor); + EntityReader reader(mResourceType, mResourceInstanceIdentifier, mTransaction); + return reader.read(identifier); } template T readFromKey(const QByteArray &key) const { - auto typeName = ApplicationDomain::getTypeName(); - auto mainDatabase = Storage::mainDatabase(mTransaction, typeName); - qint64 retrievedRevision = 0; - auto bufferAdaptor = get(mainDatabase, key, *Sink::AdaptorFactoryRegistry::instance().getFactory(mResourceType), retrievedRevision); - const auto identifier = Storage::uidFromKey(key); - if (!bufferAdaptor) { - return T(); - } - return T(mResourceInstanceIdentifier, identifier, retrievedRevision, bufferAdaptor); + EntityReader reader(mResourceType, mResourceInstanceIdentifier, mTransaction); + return reader.readFromKey(key); } template T readPrevious(const QByteArray &uid, qint64 revision) const { - auto typeName = ApplicationDomain::getTypeName(); - auto mainDatabase = Storage::mainDatabase(mTransaction, typeName); - qint64 retrievedRevision = 0; - auto bufferAdaptor = getPrevious(mainDatabase, uid, revision, *Sink::AdaptorFactoryRegistry::instance().getFactory(mResourceType), retrievedRevision); - if (!bufferAdaptor) { - return T(); - } - return T(mResourceInstanceIdentifier, uid, retrievedRevision, bufferAdaptor); + EntityReader reader(mResourceType, mResourceInstanceIdentifier, mTransaction); + return reader.readPrevious(uid, revision); } - - - static QSharedPointer getLatest(const Sink::Storage::NamedDatabase &db, const QByteArray &uid, DomainTypeAdaptorFactoryInterface &adaptorFactory, qint64 &retrievedRevision); - static QSharedPointer get(const Sink::Storage::NamedDatabase &db, const QByteArray &key, DomainTypeAdaptorFactoryInterface &adaptorFactory, qint64 &retrievedRevision); - static QSharedPointer getPrevious(const Sink::Storage::NamedDatabase &db, const QByteArray &uid, qint64 revision, DomainTypeAdaptorFactoryInterface &adaptorFactory, qint64 &retrievedRevision); private: QByteArray mResourceType; QByteArray mResourceInstanceIdentifier; -- cgit v1.2.3