umbrello  2.32.1
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 
UMLEntity
Non-graphical Information for an Entity.
Definition: entity.h:29
SQLImport::advance
virtual QString advance()
Definition: sqlimport.cpp:846
UMLObject::isUMLEnum
bool isUMLEnum() const
Definition: umlobject.h:208
UMLPackage::addAssocToConcepts
void addAssocToConcepts(UMLAssociation *assoc)
Definition: package.cpp:79
DEBUG_REGISTER
#define DEBUG_REGISTER(src)
Definition: debug_utils.h:117
umlpackagelist.h
UMLObject::ot_EntityConstraint
@ ot_EntityConstraint
Definition: umlobject.h:100
checkconstraint.h
UMLDoc::datatypeFolder
UMLFolder * datatypeFolder() const
Definition: umldoc.cpp:2959
ClassImport::log
void log(const QString &file, const QString &text)
Definition: classimport.cpp:128
SQLImport::TableConstraints::uniqueKeysFields
QStringList uniqueKeysFields
Definition: sqlimport.h:70
UMLObject::name
QString name() const
Definition: umlobject.cpp:206
SQLImport::ColumnConstraints::uniqueKey
bool uniqueKey
Definition: sqlimport.h:42
UMLEntityAttribute::Primary
@ Primary
Definition: entityattribute.h:28
entity.h
UMLClassifier::getFilteredList
virtual UMLClassifierListItemList getFilteredList(UMLObject::ObjectType ot) const
Definition: classifier.cpp:994
UMLForeignKeyConstraint::setReferencedEntity
void setReferencedEntity(UMLEntity *ent)
Definition: foreignkeyconstraint.cpp:331
operation.h
UMLObject::ot_Entity
@ ot_Entity
Definition: umlobject.h:97
foreignkeyconstraint.h
SQLImport::ColumnConstraints::notNullConstraint
bool notNullConstraint
Definition: sqlimport.h:43
SQLImport::addPrimaryKey
bool addPrimaryKey(UMLEntity *entity, const QString &name, const QStringList &fields)
Definition: sqlimport.cpp:876
Uml::ID::None
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
UMLForeignKeyConstraint
Sets up Foreign Key entity constraint information.
Definition: foreignkeyconstraint.h:27
SQLImport::TableConstraints::uniqueKeys
bool uniqueKeys
Definition: sqlimport.h:63
Uml::ProgrammingLanguage::MySQL
@ MySQL
Definition: basictypes.h:300
UMLEntity::addConstraint
bool addConstraint(UMLEntityConstraint *constr)
Definition: entity.cpp:572
association.h
Import_Utils::createUMLObject
UMLObject * createUMLObject(UMLObject::ObjectType type, const QString &inName, UMLPackage *parentPkg, const QString &comment, const QString &stereotype, bool searchInParentPackageOnly, bool remapParent)
Definition: import_utils.cpp:173
stripQuotes
QString & stripQuotes(QString &token)
Definition: sqlimport.cpp:92
SQLImport::ColumnConstraints::characterSet
QString characterSet
Definition: sqlimport.h:48
UMLEntity::getEntityAttributes
UMLEntityAttributeList getEntityAttributes() const
Definition: entity.cpp:688
SQLImport::TableConstraints::primaryKeyFields
QStringList primaryKeyFields
Definition: sqlimport.h:68
SQLImport::SQLImport
SQLImport(CodeImpThread *thread=0)
Definition: sqlimport.cpp:51
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
SQLImport::TableConstraints::uniqueKeyName
QString uniqueKeyName
Definition: sqlimport.h:69
SQLImport::TableConstraints::notNullConstraint
bool notNullConstraint
Definition: sqlimport.h:64
import_utils.h
UMLDoc::loading
bool loading() const
Definition: umldoc.cpp:1573
UMLObject::asUMLEnum
UMLEnum * asUMLEnum()
Definition: umlobject.cpp:1396
SQLImport::TableConstraints::primaryKey
bool primaryKey
Definition: sqlimport.h:62
UMLObject::ot_EnumLiteral
@ ot_EnumLiteral
Definition: umlobject.h:90
UMLObject::asUMLEntity
UMLEntity * asUMLEntity()
Definition: umlobject.cpp:1393
NativeImportBase::currentScope
UMLPackage * currentScope()
Definition: nativeimportbase.cpp:160
NativeImportBase::skipStmt
void skipStmt(const QString &until=QLatin1String(";"))
Definition: nativeimportbase.cpp:77
Uml::Visibility::Public
@ Public
Definition: basictypes.h:46
Import_Utils::remapUMLEnum
UMLEnum * remapUMLEnum(UMLObject *ns, UMLPackage *currentScope)
Definition: import_utils.cpp:741
NativeImportBase::skipToClosing
bool skipToClosing(QChar opener)
Definition: nativeimportbase.cpp:92
entityattribute.h
SQLImport::parseCreateTable
bool parseCreateTable(QString &token)
Definition: sqlimport.cpp:658
Uml::ModelType::EntityRelationship
@ EntityRelationship
Definition: basictypes.h:32
UMLDoc::rootFolder
UMLFolder * rootFolder(Uml::ModelType::Enum mt) const
Definition: umldoc.cpp:3176
attribute.h
Model_Utils::uniqObjectName
QString uniqObjectName(UMLObject::ObjectType type, UMLPackage *parentPkg, QString prefix)
Definition: model_utils.cpp:526
SQLImport::parseFieldType
QStringList parseFieldType(QString &token)
Definition: sqlimport.cpp:165
SQLImport::parseTableConstraints
TableConstraints parseTableConstraints(QString &token)
Definition: sqlimport.cpp:478
a
QString a
Definition: petalnode.cpp:13
NativeImportBase::m_source
QStringList m_source
the scanned lexemes
Definition: nativeimportbase.h:90
UMLDoc::setLoading
void setLoading(bool state=true)
Definition: umldoc.cpp:1582
folder.h
UMLObject::ot_Datatype
@ ot_Datatype
Definition: umlobject.h:83
UMLEntity::setAsPrimaryKey
bool setAsPrimaryKey(UMLUniqueConstraint *uconstr)
Definition: entity.cpp:508
SQLImport::TableConstraints::collate
QString collate
Definition: sqlimport.h:71
SQLImport::~SQLImport
virtual ~SQLImport()
Definition: sqlimport.cpp:59
NativeImportBase::advance
virtual QString advance()
Definition: nativeimportbase.cpp:193
UMLEntity::getFilteredList
UMLClassifierListItemList getFilteredList(UMLObject::ObjectType ot) const
Definition: entity.cpp:641
SQLImport::parseColumnConstraints
ColumnConstraints parseColumnConstraints(QString &token)
Definition: sqlimport.cpp:297
NativeImportBase::m_comment
QString m_comment
intermediate accumulator for comment text
Definition: nativeimportbase.h:95
CodeImpThread
Definition: codeimpthread.h:21
Uml::AssociationType::Generalization
@ Generalization
Definition: basictypes.h:93
SQLImport::parseCreateDefinition
bool parseCreateDefinition(QString &token, UMLEntity *entity)
Definition: sqlimport.cpp:538
c
type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of the commands you use may be called something other than show w and show c
Definition: GPL-2.0-only.txt:301
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:275
sqlimport.h
UMLCheckConstraint::setCheckCondition
void setCheckCondition(const QString &condition)
Definition: checkconstraint.h:51
SQLImport::addForeignConstraint
bool addForeignConstraint(UMLEntity *entityA, const QString &name, const QStringList &fieldNames, const QString &referencedTable, const QStringList &referencedFields)
Definition: sqlimport.cpp:959
SQLImport::parseIdentifier
QString parseIdentifier(QString &token)
Definition: sqlimport.cpp:109
SQLImport::TableConstraints
Definition: sqlimport.h:51
SQLImport::TableConstraints::checkExpression
QString checkExpression
Definition: sqlimport.h:67
UMLFolder
Non-graphical management of objects and diagrams of a Folder.
Definition: folder.h:29
NativeImportBase
Base class for native implementations of language import.
Definition: nativeimportbase.h:39
UMLUniqueConstraint::addEntityAttribute
bool addEntityAttribute(UMLEntityAttribute *attr)
Definition: uniqueconstraint.cpp:241
SQLImport::ColumnConstraints::primaryKey
bool primaryKey
Definition: sqlimport.h:41
nativeimportbase.h
SQLImport::addUniqueConstraint
bool addUniqueConstraint(UMLEntity *entity, const QString &name, const QStringList &fields)
Definition: sqlimport.cpp:920
SQLImport::parseDefaultExpression
QString parseDefaultExpression(QString &token)
Definition: sqlimport.cpp:237
UMLClassifierListItemList
Definition: umlclassifierlistitemlist.h:21
Import_Utils::addEnumLiteral
void addEnumLiteral(UMLEnum *enumType, const QString &literal, const QString &comment, const QString &value)
Definition: import_utils.cpp:588
UMLDoc::findUMLObject
UMLObject * findUMLObject(const QString &name, UMLObject::ObjectType type=UMLObject::ot_UMLObject, UMLObject *currentObj=0)
Definition: umldoc.cpp:1068
DEBUG
#define DEBUG(src)
Definition: debug_utils.h:115
SQLImport::TableConstraints::constraintName
QString constraintName
Definition: sqlimport.h:73
classifier.h
uError
#define uError()
Definition: debug_utils.h:109
uniqueconstraint.h
UMLObject::ot_Enum
@ ot_Enum
Definition: umlobject.h:84
uml.h
UMLCheckConstraint
Sets up Check Constraint information for UMLEntities.
Definition: checkconstraint.h:20
SQLImport::ColumnConstraints::defaultValue
QString defaultValue
Definition: sqlimport.h:46
SQLImport::parseIdentifierList
QStringList parseIdentifierList(QString &token)
Definition: sqlimport.cpp:139
debug_utils.h
UMLAssociation
Sets up association information.
Definition: association.h:28
UMLEntity::addEntityAttribute
UMLObject * addEntityAttribute(const QString &name, Uml::ID::Type id=Uml::ID::None)
Definition: entity.cpp:300
DBG_SRC
#define DBG_SRC
Definition: import_utils.cpp:38
SQLImport::ColumnConstraints::ColumnConstraints
ColumnConstraints()
Definition: sqlimport.h:33
SQLImport::TableConstraints::autoIncrement
bool autoIncrement
Definition: sqlimport.h:65
SQLImport::addDatatype
UMLObject * addDatatype(const QStringList &type)
Definition: sqlimport.cpp:853
b
bool b
Definition: cxx11-null-pointer-constant.h:6
UMLForeignKeyConstraint::addEntityAttributePair
bool addEntityAttributePair(UMLEntityAttribute *pAttr, UMLEntityAttribute *rAttr)
Definition: foreignkeyconstraint.cpp:180
SQLImport::TableConstraints::checkConstraint
bool checkConstraint
Definition: sqlimport.h:66
NativeImportBase::m_srcIndex
int m_srcIndex
used for indexing m_source
Definition: nativeimportbase.h:91
package.h
UMLEntityAttribute
Sets up entityattribute information.
Definition: entityattribute.h:20
SQLImport::ColumnConstraints::constraintName
QString constraintName
Definition: sqlimport.h:47
SQLImport::TableConstraints::TableConstraints
TableConstraints()
Definition: sqlimport.h:53
NativeImportBase::m_parsedFiles
static QStringList m_parsedFiles
Definition: nativeimportbase.h:110
SQLImport::ColumnConstraints::autoIncrement
bool autoIncrement
Definition: sqlimport.h:44
SQLImport
Definition: sqlimport.h:22
UMLEnum
Non-graphical Information for an Enum.
Definition: enum.h:23
SQLImport::ColumnConstraints
Definition: sqlimport.h:31
SQLImport::fillSource
void fillSource(const QString &word)
Definition: sqlimport.cpp:66
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1063
umldoc.h
SQLImport::TableConstraints::defaultValue
QString defaultValue
Definition: sqlimport.h:72
SQLImport::ColumnConstraints::collate
QString collate
Definition: sqlimport.h:45
UMLUniqueConstraint
Sets up Unique entity constraint information.
Definition: uniqueconstraint.h:23
SQLImport::parseAlterTable
bool parseAlterTable(QString &token)
Definition: sqlimport.cpp:704
UMLPackage
Non-graphical information for a Package.
Definition: package.h:27
SQLImport::parseStmt
bool parseStmt()
Definition: sqlimport.cpp:790
enum.h