umbrello  2.39.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 QObject, public NativeImportBase {
23  Q_OBJECT
24 public:
25  explicit SQLImport(CodeImpThread* thread = 0);
26  virtual ~SQLImport();
27 
28  bool parseStmt();
29 
30 protected:
32  public:
34  : primaryKey(false),
35  uniqueKey(false),
36  notNullConstraint(false),
37  autoIncrement(false)
38  {
39  }
40 
41  bool primaryKey;
42  bool uniqueKey;
45  QString collate;
46  QString defaultValue;
47  QString constraintName;
48  QString characterSet;
49  };
50 
52  public:
54  : primaryKey(false),
55  uniqueKeys(false),
56  notNullConstraint(false),
57  autoIncrement(false),
58  checkConstraint(false)
59  {
60  }
61 
62  bool primaryKey;
63  bool uniqueKeys;
67  QString checkExpression;
68  QStringList primaryKeyFields;
69  QString uniqueKeyName;
70  QStringList uniqueKeysFields;
71  QString collate;
72  QString defaultValue;
73  QString constraintName;
74  };
75 
76  virtual QString advance();
77 
78  void fillSource(const QString &word);
79  bool parseCreateTable(QString &token);
80  bool parseAlterTable(QString &token);
81  QString parseIdentifier(QString &token);
82  QString parseDefaultExpression(QString &token);
83  QStringList parseFieldType(QString &token);
84  QStringList parseIdentifierList(QString &token);
87  bool parseCreateDefinition(QString &token, UMLEntity *entity);
88  UMLObject *addDatatype(const QStringList &type);
89  bool addPrimaryKey(UMLEntity *entity, const QString &name, const QStringList &fields);
90  bool addUniqueConstraint(UMLEntity *entity, const QString &name, const QStringList &fields);
91  bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames,
92  const QString &referencedTable, const QStringList &referencedFields);
93 };
94 
95 #endif
96 
Definition: codeimpthread.h:22
Base class for native implementations of language import.
Definition: nativeimportbase.h:40
Definition: sqlimport.h:31
bool autoIncrement
Definition: sqlimport.h:44
QString constraintName
Definition: sqlimport.h:47
bool primaryKey
Definition: sqlimport.h:41
bool notNullConstraint
Definition: sqlimport.h:43
QString defaultValue
Definition: sqlimport.h:46
ColumnConstraints()
Definition: sqlimport.h:33
bool uniqueKey
Definition: sqlimport.h:42
QString characterSet
Definition: sqlimport.h:48
QString collate
Definition: sqlimport.h:45
Definition: sqlimport.h:51
bool primaryKey
Definition: sqlimport.h:62
bool autoIncrement
Definition: sqlimport.h:65
QStringList primaryKeyFields
Definition: sqlimport.h:68
TableConstraints()
Definition: sqlimport.h:53
QString collate
Definition: sqlimport.h:71
bool notNullConstraint
Definition: sqlimport.h:64
QString uniqueKeyName
Definition: sqlimport.h:69
bool checkConstraint
Definition: sqlimport.h:66
bool uniqueKeys
Definition: sqlimport.h:63
QString defaultValue
Definition: sqlimport.h:72
QString checkExpression
Definition: sqlimport.h:67
QString constraintName
Definition: sqlimport.h:73
QStringList uniqueKeysFields
Definition: sqlimport.h:70
Definition: sqlimport.h:22
bool parseCreateDefinition(QString &token, UMLEntity *entity)
Definition: sqlimport.cpp:531
QStringList parseIdentifierList(QString &token)
Definition: sqlimport.cpp:132
bool parseCreateTable(QString &token)
Definition: sqlimport.cpp:652
virtual ~SQLImport()
Definition: sqlimport.cpp:52
QString parseDefaultExpression(QString &token)
Definition: sqlimport.cpp:230
QString parseIdentifier(QString &token)
Definition: sqlimport.cpp:102
virtual QString advance()
Definition: sqlimport.cpp:841
void fillSource(const QString &word)
Definition: sqlimport.cpp:59
bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames, const QString &referencedTable, const QStringList &referencedFields)
Definition: sqlimport.cpp:955
ColumnConstraints parseColumnConstraints(QString &token)
Definition: sqlimport.cpp:290
TableConstraints parseTableConstraints(QString &token)
Definition: sqlimport.cpp:471
bool parseAlterTable(QString &token)
Definition: sqlimport.cpp:699
QStringList parseFieldType(QString &token)
Definition: sqlimport.cpp:158
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 parseStmt()
Definition: sqlimport.cpp:785
SQLImport(CodeImpThread *thread=0)
Definition: sqlimport.cpp:44
UMLObject * addDatatype(const QStringList &type)
Definition: sqlimport.cpp:848
Non-graphical Information for an Entity.
Definition: entity.h:30
The base class for UML objects.
Definition: umlobject.h:70