1#ifndef QLOQUENT_NAMINGCONVENTION_H
2#define QLOQUENT_NAMINGCONVENTION_H
4#include <QEloquent/global.h>
23 virtual QString
tableName(
const QString &className)
const = 0;
25 virtual QString
fieldName(
const QString &propertyName,
const QString &tableName)
const = 0;
30 virtual QString
foreignFieldName(
const QString &primaryFieldName,
const QString &tableName)
const = 0;
33 virtual QString
pivotTableName(
const QString &table1,
const QString &table2)
const = 0;
36 virtual QString
propertyName(
const QString &fieldName,
const QString &tableName)
const = 0;
38 virtual QString foreignPropertyName(
const QString &primaryPropertyName,
const QString &className)
const;
41 static NamingConvention *convention(
const QString &name = QStringLiteral(
"Laravel"));
43 static QString pascalFromCamel(
const QString &str);
44 static QString pascalFromSnake(
const QString &str);
45 static QString camelFromPascal(
const QString &str);
46 static QString camelFromSnake(
const QString &str);
47 static QString snakeFromPascal(
const QString &str);
48 static QString snakeFromCamel(
const QString &str);
51 class ConventionList final :
public QMap<QString, NamingConvention *> {
53 ConventionList(std::initializer_list<std::pair<QString, NamingConvention *>> list)
57 QList<NamingConvention *> conventions = values();
58 while (!conventions.isEmpty()) {
60 conventions.removeAll(convention);
66 static ConventionList s_conventions;
Interface for naming conventions.
Definition namingconvention.h:17
virtual QString pivotTableName(const QString &table1, const QString &table2) const =0
Returns the name of the pivot table for a many-to-many relationship.
virtual QString propertyName(const QString &fieldName, const QString &tableName) const =0
Returns the property name for a given field name in a table.
virtual QString tableName(const QString &className) const =0
Returns the table name for a given class name.
virtual QString foreignFieldName(const QString &primaryFieldName, const QString &tableName) const =0
Returns the foreign key field name referring to another table.
virtual QString primaryFieldName(const QString &tableName) const =0
Returns the name of the primary key field for a table.
virtual ~NamingConvention()=default
Virtual destructor.
virtual QString fieldName(const QString &propertyName, const QString &tableName) const =0
Returns the field name for a given property name in a table.