umbrello  2.31.3
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  Copyright 2015 Ralf Habacker <ralf.habacker@freenet.de>
3 
4  This program is free software; you can redistribute it and/or
5  modify it under the terms of the GNU General Public License as
6  published by the Free Software Foundation; either version 2 of
7  the License or (at your option) version 3 or any later version
8  accepted by the membership of KDE e.V. (or its successor approved
9  by the membership of KDE e.V.), which shall act as a proxy
10  defined in Section 14 of version 3 of the license.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef SQLIMPORT_H
22 #define SQLIMPORT_H
23 
24 #include "nativeimportbase.h"
25 
26 class UMLEntity;
27 class UMLObject;
28 
36 class SQLImport : public QObject, public NativeImportBase {
37  Q_OBJECT
38 public:
39  explicit SQLImport(CodeImpThread* thread = 0);
40  virtual ~SQLImport();
41 
42  bool parseStmt();
43 
44 protected:
46  public:
48  : primaryKey(false),
49  uniqueKey(false),
50  notNullConstraint(false),
51  autoIncrement(false)
52  {
53  }
54 
55  bool primaryKey;
56  bool uniqueKey;
59  QString collate;
60  QString defaultValue;
61  QString constraintName;
62  QString characterSet;
63  };
64 
66  public:
68  : primaryKey(false),
69  uniqueKeys(false),
70  notNullConstraint(false),
71  autoIncrement(false),
72  checkConstraint(false)
73  {
74  }
75 
76  bool primaryKey;
77  bool uniqueKeys;
81  QString checkExpression;
82  QStringList primaryKeyFields;
83  QString uniqueKeyName;
84  QStringList uniqueKeysFields;
85  QString collate;
86  QString defaultValue;
87  QString constraintName;
88  };
89 
90  virtual QString advance();
91 
92  void fillSource(const QString &word);
93  bool parseCreateTable(QString &token);
94  bool parseAlterTable(QString &token);
95  QString parseIdentifier(QString &token);
96  QString parseDefaultExpression(QString &token);
97  QStringList parseFieldType(QString &token);
98  QStringList parseIdentifierList(QString &token);
100  TableConstraints parseTableConstraints(QString &token);
101  bool parseCreateDefinition(QString &token, UMLEntity *entity);
102  UMLObject *addDatatype(const QStringList &type);
103  bool addPrimaryKey(UMLEntity *entity, const QString &name, const QStringList &fields);
104  bool addUniqueConstraint(UMLEntity *entity, const QString &name, const QStringList &fields);
105  bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames,
106  const QString &referencedTable, const QStringList &referencedFields);
107 };
108 
109 #endif
110 
bool primaryKey
Definition: sqlimport.h:55
QStringList parseFieldType(QString &token)
Definition: sqlimport.cpp:179
Definition: sqlimport.h:36
QString defaultValue
Definition: sqlimport.h:86
bool uniqueKey
Definition: sqlimport.h:56
TableConstraints parseTableConstraints(QString &token)
Definition: sqlimport.cpp:492
Base class for native implementations of language import.
Definition: nativeimportbase.h:44
ColumnConstraints parseColumnConstraints(QString &token)
Definition: sqlimport.cpp:311
QStringList primaryKeyFields
Definition: sqlimport.h:82
QString parseDefaultExpression(QString &token)
Definition: sqlimport.cpp:251
bool primaryKey
Definition: sqlimport.h:76
QString uniqueKeyName
Definition: sqlimport.h:83
bool uniqueKeys
Definition: sqlimport.h:77
UMLObject * addDatatype(const QStringList &type)
Definition: sqlimport.cpp:867
virtual ~SQLImport()
Definition: sqlimport.cpp:73
The base class for UML objects.
Definition: umlobject.h:73
Definition: sqlimport.h:65
bool addPrimaryKey(UMLEntity *entity, const QString &name, const QStringList &fields)
Definition: sqlimport.cpp:890
bool addUniqueConstraint(UMLEntity *entity, const QString &name, const QStringList &fields)
Definition: sqlimport.cpp:934
bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames, const QString &referencedTable, const QStringList &referencedFields)
Definition: sqlimport.cpp:973
QString constraintName
Definition: sqlimport.h:61
QStringList parseIdentifierList(QString &token)
Definition: sqlimport.cpp:153
QString collate
Definition: sqlimport.h:85
ColumnConstraints()
Definition: sqlimport.h:47
bool notNullConstraint
Definition: sqlimport.h:78
bool parseCreateDefinition(QString &token, UMLEntity *entity)
Definition: sqlimport.cpp:552
bool parseCreateTable(QString &token)
Definition: sqlimport.cpp:672
QString checkExpression
Definition: sqlimport.h:81
virtual QString advance()
Definition: sqlimport.cpp:860
QString characterSet
Definition: sqlimport.h:62
bool parseAlterTable(QString &token)
Definition: sqlimport.cpp:718
Definition: codeimpthread.h:35
Definition: sqlimport.h:45
bool autoIncrement
Definition: sqlimport.h:58
QString parseIdentifier(QString &token)
Definition: sqlimport.cpp:123
bool checkConstraint
Definition: sqlimport.h:80
void fillSource(const QString &word)
Definition: sqlimport.cpp:80
bool parseStmt()
Definition: sqlimport.cpp:804
TableConstraints()
Definition: sqlimport.h:67
bool autoIncrement
Definition: sqlimport.h:79
QString constraintName
Definition: sqlimport.h:87
QString defaultValue
Definition: sqlimport.h:60
bool notNullConstraint
Definition: sqlimport.h:57
QString collate
Definition: sqlimport.h:59
SQLImport(CodeImpThread *thread=0)
Definition: sqlimport.cpp:65
Non-graphical Information for an Entity.
Definition: entity.h:34
QStringList uniqueKeysFields
Definition: sqlimport.h:84