Initial commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#ifndef SCHEMA_METADATA_H
|
||||
#define SCHEMA_METADATA_H
|
||||
|
||||
#include "relation_id_config.h"
|
||||
#include <QMap>
|
||||
#include <QObject>
|
||||
#include <mutex>
|
||||
|
||||
class SchemaMetadata : QObject {
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
static QMap<QString, RelationIdConfig> databaseTableNameToConfigMap_;
|
||||
static std::once_flag initFlag;
|
||||
|
||||
public:
|
||||
SchemaMetadata &operator=(const SchemaMetadata &);
|
||||
SchemaMetadata(const SchemaMetadata &);
|
||||
|
||||
QString modelTableName(const QString &databaseTableName);
|
||||
QString primaryIdColumnName(const QString &databaseTableName);
|
||||
QString repositoryTableName(const QString &databaseTableName);
|
||||
QString translatedTableName(const QString &databaseTableName);
|
||||
RelationIdConfig relationIdConfig(const QString &databaseTableName);
|
||||
|
||||
inline auto asKeyValueRange();
|
||||
|
||||
static SchemaMetadata defaultSchema();
|
||||
|
||||
private:
|
||||
SchemaMetadata() noexcept;
|
||||
|
||||
static void initialize();
|
||||
};
|
||||
|
||||
auto SchemaMetadata::asKeyValueRange() {
|
||||
return databaseTableNameToConfigMap_.asKeyValueRange();
|
||||
}
|
||||
|
||||
#endif // SCHEMA_METADATA_H
|
||||
Reference in New Issue
Block a user