Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision fc14f551

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID fc14f551e996109011e521ef59bbc91226977cbe
  • Vorgänger 74364e5e
  • Nachfolger 554f7bc0

validator stuff

Unterschiede anzeigen:

src/validators/validatorfactory.h
#define VALIDATORFACTORY_H
#include <QString>
#include <QHash>
#include <QSharedPointer>
namespace CuteEntityManager {
class Validator;
class ValidatorFactory {
public:
static void registerClasses();
static Validator *createValidator(QString shortname);
static Validator *createValidator(const QString &shortname);
template<typename T>
static void registerClass() {
if (!ValidatorFactory::instance.contains(
......
}
}
static Validator *createObject( const QByteArray &className) {
Constructor constructor = ValidatorFactory::instance.value(className);
if ( constructor == nullptr ) {
return nullptr;
}
return (*constructor)();
}
static Validator *createObject( const QByteArray &className);
static QSharedPointer<Validator> getValidatorObject(const QString &shortname);
typedef Validator *(*Constructor)();
template<typename T>
static Validator *constructorHelper() {
return new T();
}
static QHash<QByteArray, Constructor> instance;
static QHash<QString, QSharedPointer<Validator>> validatorInstances;
protected:
ValidatorFactory();

Auch abrufbar als: Unified diff