umbrello  26.08.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
sqlimport.h
Go to the documentation of this file.
1 /*
2  SPDX-FileCopyrightText: 2015 Ralf Habacker <ralf.habacker@freenet.de>
3 
4  SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5 */
6 
7 #ifndef SQLIMPORT_H
8 #define SQLIMPORT_H
9 
10 #include "nativeimportbase.h"
11 
12 class UMLEntity;
13 class UMLObject;
14 
22 class SQLImport : public NativeImportBase {
23 public:
24  explicit SQLImport(CodeImpThread *thread = nullptr);
25  virtual ~SQLImport();
26 
27  bool parseStmt();
28 
29 protected:
31  public:
33  : primaryKey(false),
34  uniqueKey(false),
35  notNullConstraint(false),
36  autoIncrement(false)
37  {
38  }
39 
40  bool primaryKey;
41  bool uniqueKey;
44  QString collate;
45  QString defaultValue;
46  QString constraintName;
47  QString characterSet;
48  };
49 
51  public:
53  : primaryKey(false),
54  uniqueKeys(false),
55  notNullConstraint(false),
56  autoIncrement(false),
57  checkConstraint(false)
58  {
59  }
60 
61  bool primaryKey;
62  bool uniqueKeys;
66  QString checkExpression;
67  QStringList primaryKeyFields;
68  QString uniqueKeyName;
69  QStringList uniqueKeysFields;
70  QString collate;
71  QString defaultValue;
72  QString constraintName;
73  };
74 
75  virtual QString advance();
76 
77  void fillSource(const QString &word);
78  bool parseCreateTable(QString &token);
79  bool parseAlterTable(QString &token);
80  QString parseIdentifier(QString &token);
81  QString parseDefaultExpression(QString &token);
82  QStringList parseFieldType(QString &token);
83  QStringList parseIdentifierList(QString &token);
86  bool parseCreateDefinition(QString &token, UMLEntity *entity);
87  UMLObject *addDatatype(const QStringList &type);
88  bool addPrimaryKey(UMLEntity *entity, const QString &name, const QStringList &fields);
89  bool addUniqueConstraint(UMLEntity *entity, const QString &name, const QStringList &fields);
90  bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames,
91  const QString &referencedTable, const QStringList &referencedFields);
92 
93  static bool equiv(const QString &word, const QString &stringlit);
94 };
95 
96 #endif
97 
bool primaryKey
Definition: sqlimport.h:40
QStringList parseFieldType(QString &token)
Definition: sqlimport.cpp:158
Definition: sqlimport.h:22
QString defaultValue
Definition: sqlimport.h:71
bool uniqueKey
Definition: sqlimport.h:41
TableConstraints parseTableConstraints(QString &token)
Definition: sqlimport.cpp:471
Base class for native implementations of language import.
Definition: nativeimportbase.h:39
ColumnConstraints parseColumnConstraints(QString &token)
Definition: sqlimport.cpp:290
QStringList primaryKeyFields
Definition: sqlimport.h:67
QString parseDefaultExpression(QString &token)
Definition: sqlimport.cpp:230
bool primaryKey
Definition: sqlimport.h:61
QString uniqueKeyName
Definition: sqlimport.h:68
bool uniqueKeys
Definition: sqlimport.h:62
UMLObject * addDatatype(const QStringList &type)
Definition: sqlimport.cpp:848
virtual ~SQLImport()
Definition: sqlimport.cpp:52
SQLImport(CodeImpThread *thread=nullptr)
Definition: sqlimport.cpp:44
The base class for UML objects.
Definition: umlobject.h:69
Definition: sqlimport.h:50
bool addPrimaryKey(UMLEntity *entity, const QString &name, const QStringList &fields)
Definition: sqlimport.cpp:871
bool addUniqueConstraint(UMLEntity *entity, const QString &name, const QStringList &fields)
Definition: sqlimport.cpp:915
bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames, const QString &referencedTable, const QStringList &referencedFields)
Definition: sqlimport.cpp:955
QString constraintName
Definition: sqlimport.h:46
QStringList parseIdentifierList(QString &token)
Definition: sqlimport.cpp:132
QString collate
Definition: sqlimport.h:70
ColumnConstraints()
Definition: sqlimport.h:32
bool notNullConstraint
Definition: sqlimport.h:63
bool parseCreateDefinition(QString &token, UMLEntity *entity)
Definition: sqlimport.cpp:531
bool parseCreateTable(QString &token)
Definition: sqlimport.cpp:652
QString checkExpression
Definition: sqlimport.h:66
virtual QString advance()
Definition: sqlimport.cpp:841
QString characterSet
Definition: sqlimport.h:47
bool parseAlterTable(QString &token)
Definition: sqlimport.cpp:699
Definition: codeimpthread.h:21
Definition: sqlimport.h:30
bool autoIncrement
Definition: sqlimport.h:43
QString parseIdentifier(QString &token)
Definition: sqlimport.cpp:102
bool checkConstraint
Definition: sqlimport.h:65
void fillSource(const QString &word)
Definition: sqlimport.cpp:59
bool parseStmt()
Definition: sqlimport.cpp:785
TableConstraints()
Definition: sqlimport.h:52
bool autoIncrement
Definition: sqlimport.h:64
QString constraintName
Definition: sqlimport.h:72
QString defaultValue
Definition: sqlimport.h:45
bool notNullConstraint
Definition: sqlimport.h:42
QString collate
Definition: sqlimport.h:44
static bool equiv(const QString &word, const QString &stringlit)
Definition: sqlimport.cpp:1014
Non-graphical Information for an Entity.
Definition: umlentity.h:29
QStringList uniqueKeysFields
Definition: sqlimport.h:69