umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
association.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2003-2022 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef ASSOCIATION_H
7 #define ASSOCIATION_H
8 
9 #include "basictypes.h"
10 #include "umlobject.h"
11 
12 #include <QDomDocument>
13 #include <QDomElement>
14 #include <QXmlStreamWriter>
15 
16 class UMLRole;
17 
28 class UMLAssociation : public UMLObject
29 {
30  Q_OBJECT
31  friend class AssociationWidget;
32 
33 public:
36 
37  virtual ~UMLAssociation();
38 
39  bool operator==(const UMLAssociation &rhs) const;
40 
41  QString toString() const;
42 
46 
49 
50  void setObject(UMLObject *obj, Uml::RoleType::Enum role);
52 
55 
58 
59  void setMultiplicity(const QString &multi, Uml::RoleType::Enum role);
60  QString getMultiplicity(Uml::RoleType::Enum role) const;
61 
62  void setRoleName(const QString &roleName, Uml::RoleType::Enum role);
63  QString getRoleName(Uml::RoleType::Enum role) const;
64 
65  void setRoleDoc(const QString &doc, Uml::RoleType::Enum role);
66  QString getRoleDoc(Uml::RoleType::Enum role) const;
67 
68  void setOldLoadMode(bool value = true);
69  bool getOldLoadMode() const;
70 
71  virtual UMLObject* clone() const { return 0; }
72 
73  virtual bool resolveRef();
74 
75  void saveToXMI(QXmlStreamWriter& writer);
76 
77  virtual bool showPropertiesDialog(QWidget *parent = 0);
78 
79 protected:
80 
81  bool load1(QDomElement& element);
82 
83  // keep track of number of parent widgets
84  // @todo The UMLAssocation should continue to exist when no AssociationWidget exists.
85  // We do not yet have the means to delete the UMLAssocation because it is not
86  // represented in the list view. For the time being it is deleted when the last
87  // AssociationWidget representing it is deleted.
89 
90  void init(Uml::AssociationType::Enum type, UMLObject *roleAObj, UMLObject *roleBObj);
91 
94  QString m_Name;
96 
97 private:
98 
99  bool isRealization(UMLObject* objA, UMLObject* objB) const;
100 };
101 
102 #endif
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde....
Definition: associationwidget.h:47
QString roleName(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:949
Sets up association information.
Definition: association.h:29
virtual ~UMLAssociation()
Definition: association.cpp:66
void setOldLoadMode(bool value=true)
Definition: association.cpp:604
QString getMultiplicity(Uml::RoleType::Enum role) const
Definition: association.cpp:568
QString m_Name
Definition: association.h:94
UMLAssociation(Uml::AssociationType::Enum type, UMLObject *roleA, UMLObject *roleB)
Definition: association.cpp:40
virtual bool resolveRef()
Definition: association.cpp:124
bool m_bOldLoadMode
Definition: association.h:95
bool getOldLoadMode() const
Definition: association.cpp:612
void setRoleDoc(const QString &doc, Uml::RoleType::Enum role)
Definition: association.cpp:692
virtual UMLObject * clone() const
Definition: association.h:71
bool operator==(const UMLAssociation &rhs) const
Definition: association.cpp:85
void setVisibility(Uml::Visibility::Enum value, Uml::RoleType::Enum role)
Definition: association.cpp:650
bool isRealization(UMLObject *objA, UMLObject *objB) const
Definition: association.cpp:704
void setAssociationType(Uml::AssociationType::Enum assocType)
Definition: association.cpp:621
virtual bool showPropertiesDialog(QWidget *parent=0)
Definition: association.cpp:204
bool load1(QDomElement &element)
Definition: association.cpp:216
QString getRoleName(Uml::RoleType::Enum role) const
Definition: association.cpp:577
Uml::ID::Type getRoleId(Uml::RoleType::Enum role) const
Definition: association.cpp:542
void setObject(UMLObject *obj, Uml::RoleType::Enum role)
Definition: association.cpp:640
UMLObject * getObject(Uml::RoleType::Enum role) const
Definition: association.cpp:505
Uml::Changeability::Enum changeability(Uml::RoleType::Enum role) const
Definition: association.cpp:550
Uml::AssociationType::Enum getAssocType() const
Definition: association.cpp:101
QString toString() const
Definition: association.cpp:109
Uml::AssociationType::Enum m_AssocType
Definition: association.h:93
void saveToXMI(QXmlStreamWriter &writer)
Definition: association.cpp:145
Uml::ID::Type getObjectId(Uml::RoleType::Enum role) const
Definition: association.cpp:517
UMLRole * m_pRole[2]
Definition: association.h:92
void setMultiplicity(const QString &multi, Uml::RoleType::Enum role)
Definition: association.cpp:670
int nrof_parent_widgets
Definition: association.h:88
void setChangeability(Uml::Changeability::Enum value, Uml::RoleType::Enum role)
Definition: association.cpp:660
void setRoleName(const QString &roleName, Uml::RoleType::Enum role)
Definition: association.cpp:682
UMLRole * getUMLRole(Uml::RoleType::Enum role) const
Definition: association.cpp:595
QString getRoleDoc(Uml::RoleType::Enum role) const
Definition: association.cpp:586
The base class for UML objects.
Definition: umlobject.h:70
QString doc() const
Definition: umlobject.cpp:431
void init()
Definition: umlobject.cpp:122
Uml::Visibility::Enum visibility() const
Definition: umlobject.cpp:462
Definition: umlrole.h:20
Enum
Definition: basictypes.h:92
@ Unknown
Definition: basictypes.h:116
Enum
Definition: basictypes.h:202
std::string Type
Definition: basictypes.h:371
Enum
Definition: basictypes.h:236
Enum
Definition: basictypes.h:45