umbrello  2.32.3
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
model_utils.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2004-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef MODEL_UTILS_H
12 #define MODEL_UTILS_H
13 
14 #include "basictypes.h"
15 #include "umllistviewitem.h"
16 #include "umlobjectlist.h"
17 #include "umlviewlist.h"
18 #include "foreignkeyconstraint.h"
19 #include "icon_utils.h"
20 #include "multipagedialogbase.h"
21 #include "widgetbase.h"
22 
23 #include <QLinkedList>
24 #include <QString>
25 
26 // forward declarations
27 class UMLClassifier;
28 class UMLPackage;
29 class UMLEntity;
30 
36 namespace Model_Utils {
37 
39 
41 
43  const QString& name,
45  UMLObject *currentObj = 0);
46 
48  const QString& name,
50  UMLObject *currentObj = 0);
51 
53  const QString& name,
55 
57 
58 void treeViewAddViews(const UMLViewList& viewList);
60 void treeViewSetCurrentItem(UMLObject* object);
61 void treeViewMoveObjectTo(UMLObject* container, UMLObject* object);
65 
67  UMLPackage *parentPkg,
68  QString prefix = QString());
69 QString newTitle(UMLObject::ObjectType type);
70 QString newText(UMLObject::ObjectType type);
72 QString renameText(UMLObject::ObjectType type);
73 
74 QString getXmiId(QDomElement element);
75 bool isCommonXMI1Attribute(const QString &tag);
76 bool isCommonDataType(QString type);
78 
92 
103 
104 Uml::ModelType::Enum guessContainer(UMLObject *o); // deprecated !
105 
106 int stringToDirection(QString input, Uml::ParameterDirection::Enum & result);
107 
111 };
112 
113 struct NameAndType {
114  QString m_name;
117  QString m_initialValue;
118  NameAndType() : m_type(0), m_direction(Uml::ParameterDirection::In) {}
119  NameAndType(QString name, UMLObject *type,
121  QString initialValue = QString())
122  : m_name(name), m_type(type),
123  m_direction(direction), m_initialValue(initialValue) {}
124 };
125 
126 typedef QLinkedList<NameAndType> NameAndType_List;
127 typedef QLinkedList<NameAndType>::iterator NameAndType_ListIt;
128 
129 struct OpDescriptor {
130  QString m_name;
133 };
134 
135 Parse_Status parseTemplate(QString t, NameAndType& nmTp, UMLClassifier *owningScope);
136 Parse_Status parseAttribute(QString a, NameAndType& nmTp, UMLClassifier *owningScope,
137  Uml::Visibility::Enum *vis = 0);
138 Parse_Status parseOperation(QString m, OpDescriptor& desc, UMLClassifier *owningScope);
139 Parse_Status parseConstraint(QString m, QString& name, UMLEntity* owningScope);
140 
141 QString psText(Parse_Status value);
142 
144 
145 }
146 
147 #endif
PageType
Available page types.
Definition: multipagedialogbase.h:57
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
Non-graphical Information for an Entity.
Definition: entity.h:35
UpdateDeleteAction
Definition: foreignkeyconstraint.h:42
ListViewType
Definition: umllistviewitem.h:43
Definition: umlobjectlist.h:29
The base class for UML objects.
Definition: umlobject.h:74
ObjectType
Definition: umlobject.h:80
@ ot_UMLObject
Definition: umlobject.h:82
Non-graphical information for a Package.
Definition: package.h:33
Definition: umlscene.h:69
The base class for graphical UML objects.
Definition: umlwidget.h:41
WidgetType
Definition: widgetbase.h:111
IconType
Definition: icon_utils.h:47
Definition: model_utils.cpp:45
UMLListViewItem::ListViewType convert_MT_LVT(Uml::ModelType::Enum mt)
Definition: model_utils.cpp:1449
bool typeIsClassifier(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1268
Parse_Status
Definition: model_utils.h:108
@ PS_Illegal_MethodName
Definition: model_utils.h:110
@ PS_Unknown_ReturnType
Definition: model_utils.h:110
@ PS_Unspecified_Error
Definition: model_utils.h:110
@ PS_Empty
Definition: model_utils.h:109
@ PS_Unknown_ArgType
Definition: model_utils.h:109
@ PS_OK
Return type of parseOperation().
Definition: model_utils.h:109
@ PS_Malformed_Arg
Definition: model_utils.h:109
MultiPageDialogBase::PageType convert_LVT_PT(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:2066
bool typeIsAllowedInDiagram(UMLObject *o, UMLScene *scene)
Definition: model_utils.cpp:2167
Parse_Status parseTemplate(QString t, NameAndType &nmTp, UMLClassifier *owningScope)
Definition: model_utils.cpp:940
bool typeIsClassifierList(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1246
QString getXmiId(QDomElement element)
Definition: model_utils.cpp:747
void treeViewMoveObjectTo(UMLObject *container, UMLObject *object)
Definition: model_utils.cpp:437
UMLObject::ObjectType convert_LVT_OT(UMLListViewItem::ListViewType lvt)
Definition: model_utils.cpp:1726
QString newText(UMLObject::ObjectType type)
Definition: model_utils.cpp:620
bool isCommonDataType(QString type)
Definition: model_utils.cpp:786
QString newTitle(UMLObject::ObjectType type)
Definition: model_utils.cpp:577
QString psText(Parse_Status value)
Definition: model_utils.cpp:1145
UMLPackage * treeViewGetPackageFromCurrent()
Definition: model_utils.cpp:464
QString uniqObjectName(UMLObject::ObjectType type, UMLPackage *parentPkg, QString prefix)
Definition: model_utils.cpp:526
UMLObject * findUMLObjectRecursive(const UMLObjectList &inList, const QString &name, UMLObject::ObjectType type)
Definition: model_utils.cpp:360
QLinkedList< NameAndType > NameAndType_List
Auxiliary type for OpDescriptor.
Definition: model_utils.h:126
bool typeIsDiagram(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1393
bool isCommonXMI1Attribute(const QString &tag)
Definition: model_utils.cpp:761
bool typeIsContainer(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1232
Uml::ModelType::Enum convert_DT_MT(Uml::DiagramType::Enum dt)
Definition: model_utils.cpp:1414
UMLListViewItem::ListViewType convert_OT_LVT(UMLObject *o)
Definition: model_utils.cpp:1568
void treeViewAddViews(const UMLViewList &viewList)
Definition: model_utils.cpp:399
UMLObject * treeViewGetCurrentObject()
Definition: model_utils.cpp:450
UMLObject * findObjectInList(Uml::ID::Type id, const UMLObjectList &inList)
Definition: model_utils.cpp:84
void treeViewSetCurrentItem(UMLObject *object)
Definition: model_utils.cpp:425
Uml::DiagramType::Enum convert_LVT_DT(UMLListViewItem::ListViewType lvt)
Definition: model_utils.cpp:2020
Icon_Utils::IconType convert_LVT_IT(UMLListViewItem::ListViewType lvt, UMLObject *o)
Definition: model_utils.cpp:1842
QString renameTitle(UMLObject::ObjectType type)
Definition: model_utils.cpp:663
QString treeViewBuildDiagramName(Uml::ID::Type id)
Definition: model_utils.cpp:490
QLinkedList< NameAndType >::iterator NameAndType_ListIt
Auxiliary type for OpDescriptor.
Definition: model_utils.h:127
Parse_Status parseAttribute(QString a, NameAndType &nmTp, UMLClassifier *owningScope, Uml::Visibility::Enum *vis)
Definition: model_utils.cpp:980
bool typeIsAllowedInType(UMLListViewItem::ListViewType childType, UMLListViewItem::ListViewType parentType)
Definition: model_utils.cpp:1306
UMLObject * findUMLObjectRaw(const UMLObjectList &inList, const QString &name, UMLObject::ObjectType type, UMLObject *currentObj)
Definition: model_utils.cpp:334
UMLListViewItem::ListViewType convert_DT_LVT(Uml::DiagramType::Enum dt)
Definition: model_utils.cpp:1507
bool typeIsRootView(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1160
bool isClassifierListitem(UMLObject::ObjectType type)
Definition: model_utils.cpp:808
Uml::ModelType::Enum convert_LVT_MT(UMLListViewItem::ListViewType lvt)
Definition: model_utils.cpp:1479
UMLObject * findUMLObject(const UMLObjectList &inList, const QString &inName, UMLObject::ObjectType type, UMLObject *currentObj)
Definition: model_utils.cpp:152
bool typeIsFolder(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1213
Uml::ModelType::Enum guessContainer(UMLObject *o)
Definition: model_utils.cpp:831
Uml::ModelType::Enum convert_OT_MT(UMLObject::ObjectType ot)
Definition: model_utils.cpp:2106
UMLPackage * rootPackage(UMLObject *obj)
Definition: model_utils.cpp:380
QString updateDeleteActionToString(UMLForeignKeyConstraint::UpdateDeleteAction uda)
Definition: model_utils.cpp:2142
QString renameText(UMLObject::ObjectType type)
Definition: model_utils.cpp:706
Parse_Status parseConstraint(QString m, QString &name, UMLEntity *owningScope)
Definition: model_utils.cpp:1125
bool isCloneable(WidgetBase::WidgetType type)
Definition: model_utils.cpp:53
int stringToDirection(QString input, Uml::ParameterDirection::Enum &result)
Definition: model_utils.cpp:911
bool typeIsCanvasWidget(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1180
Parse_Status parseOperation(QString m, OpDescriptor &desc, UMLClassifier *owningScope)
Definition: model_utils.cpp:1055
bool typeIsProperties(UMLListViewItem::ListViewType type)
Definition: model_utils.cpp:1282
void treeViewChangeIcon(UMLObject *object, Icon_Utils::IconType to)
Definition: model_utils.cpp:415
bool hasAssociations(UMLObject::ObjectType type)
Definition: model_utils.cpp:2295
Enum
Definition: basictypes.h:77
std::string Type
Definition: basictypes.h:351
Enum
Definition: basictypes.h:41
Enum
Definition: basictypes.h:256
@ In
Definition: basictypes.h:257
Enum
Definition: basictypes.h:59
Definition: basictypes.cpp:37
QString a
Definition: petalnode.cpp:18
Definition: model_utils.h:113
Uml::ParameterDirection::Enum m_direction
Definition: model_utils.h:116
NameAndType()
Definition: model_utils.h:118
UMLObject * m_type
Definition: model_utils.h:115
QString m_initialValue
Definition: model_utils.h:117
NameAndType(QString name, UMLObject *type, Uml::ParameterDirection::Enum direction=Uml::ParameterDirection::In, QString initialValue=QString())
Definition: model_utils.h:119
QString m_name
< Data structure filled by parseAttribute().
Definition: model_utils.h:114
Definition: model_utils.h:129
QString m_name
< Data structure filled by parseOperation().
Definition: model_utils.h:130
UMLObject * m_pReturnType
Definition: model_utils.h:132
NameAndType_List m_args
Definition: model_utils.h:131
QList< QPointer< UMLView > > UMLViewList
Definition: umlviewlist.h:26