umbrello  2.35.1
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
UMLObject::id
virtual Uml::ID::Type id() const
Definition: umlobject.cpp:421
umlrole.h
document
GNU GENERAL PUBLIC LICENSE June Free Software Inc Franklin Fifth USA Everyone is permitted to copy and distribute verbatim copies of this license document
Definition: GPL-2.0-only.txt:8
UMLPackage::addAssocToConcepts
void addAssocToConcepts(UMLAssociation *assoc)
Definition: package.cpp:82
Uml::ModelType::Enum
Enum
Definition: basictypes.h:27
DEBUG_REGISTER
#define DEBUG_REGISTER(src)
Definition: debug_utils.h:129
AssociationWidget
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde....
Definition: associationwidget.h:46
UMLAssociation::showPropertiesDialog
virtual bool showPropertiesDialog(QWidget *parent=0)
Definition: association.cpp:204
UMLAssociation::setAssociationType
void setAssociationType(Uml::AssociationType::Enum assocType)
Definition: association.cpp:621
UMLAssociation::getRoleName
QString getRoleName(Uml::RoleType::Enum role) const
Definition: association.cpp:577
UMLObject::name
QString name() const
Definition: umlobject.cpp:207
Uml::AssociationType::Reserved
@ Reserved
Definition: basictypes.h:115
UMLAssociation::saveToXMI
void saveToXMI(QXmlStreamWriter &writer)
Definition: association.cpp:145
Uml::AssociationType::toStringI18n
QString toStringI18n(Enum item)
Definition: basictypes.cpp:327
UMLAssociation::resolveRef
virtual bool resolveRef()
Definition: association.cpp:124
UMLRole::saveToXMI
void saveToXMI(QXmlStreamWriter &writer)
Definition: umlrole.cpp:176
UMLObject::ot_Association
@ ot_Association
Definition: umlobject.h:87
Model_Utils::convert_OT_MT
Uml::ModelType::Enum convert_OT_MT(UMLObject::ObjectType ot)
Definition: model_utils.cpp:2168
UMLAssociation::UMLAssociation
UMLAssociation(Uml::AssociationType::Enum type, UMLObject *roleA, UMLObject *roleB)
Definition: association.cpp:40
AssociationWidget::roleName
QString roleName(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:955
UMLObject::setSecondaryId
void setSecondaryId(const QString &id)
Definition: umlobject.cpp:694
UMLObject::resolveRef
virtual bool resolveRef()
Definition: umlobject.cpp:744
UMLAssociation::m_bOldLoadMode
bool m_bOldLoadMode
Definition: association.h:95
DEBUG
#define DEBUG()
Definition: debug_utils.h:127
Uml::ID::None
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
Uml::RoleType::A
@ A
Definition: basictypes.h:237
logError0
#define logError0(s)
Definition: uml.h:539
UniqueID::init
void init()
Definition: uniqueid.cpp:32
UMLObject::ot_Interface
@ ot_Interface
Definition: umlobject.h:82
UMLRole::setObject
void setObject(UMLObject *obj)
Definition: umlrole.cpp:122
Uml::ID::toString
QString toString(const ID::Type &id)
Definition: basictypes.cpp:1306
UMLObject::emitModified
void emitModified()
Definition: umlobject.cpp:381
logError1
#define logError1(s, a)
Definition: uml.h:545
association.h
Uml::Changeability::fromInt
Enum fromInt(int item)
Definition: basictypes.cpp:699
UMLObject::umlParent
UMLObject * umlParent() const
Definition: umlobject.cpp:676
cmds.h
UMLAssociation::setMultiplicity
void setMultiplicity(const QString &multi, Uml::RoleType::Enum role)
Definition: association.cpp:670
Uml::RoleType::toString
QString toString(Enum item)
Definition: basictypes.cpp:769
UMLObject::setName
virtual void setName(const QString &strName)
Definition: umlobject.cpp:188
UMLObject::umlPackage
UMLPackage * umlPackage() const
Definition: umlobject.cpp:651
UMLAssociation::setRoleDoc
void setRoleDoc(const QString &doc, Uml::RoleType::Enum role)
Definition: association.cpp:692
Uml::AssociationType::Category2Parent
@ Category2Parent
Definition: basictypes.h:110
UMLAssociation::getRoleId
Uml::ID::Type getRoleId(Uml::RoleType::Enum role) const
Definition: association.cpp:542
UMLAssociation::getRoleDoc
QString getRoleDoc(Uml::RoleType::Enum role) const
Definition: association.cpp:586
Model_Utils::getXmiId
QString getXmiId(QDomElement element)
Definition: model_utils.cpp:772
Uml::ID::Type
std::string Type
Definition: basictypes.h:371
UMLAssociation::clone
virtual UMLObject * clone() const
Definition: association.h:71
Uml::AssociationType::UniAssociation
@ UniAssociation
Definition: basictypes.h:105
UMLAssociation::getMultiplicity
QString getMultiplicity(Uml::RoleType::Enum role) const
Definition: association.cpp:568
UMLAssociation::operator==
bool operator==(const UMLAssociation &rhs) const
Definition: association.cpp:85
model_utils.h
ClassPropertiesDialog
Definition: classpropertiesdialog.h:29
UMLAssociation::m_AssocType
Uml::AssociationType::Enum m_AssocType
Definition: association.h:93
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
Uml::RoleType::fromInt
Enum fromInt(int item)
Definition: basictypes.cpp:799
UMLRole
Definition: umlrole.h:19
Uml::AssociationType::Association_Self
@ Association_Self
Definition: basictypes.h:97
UMLRole::setChangeability
void setChangeability(Uml::Changeability::Enum value)
Definition: umlrole.cpp:144
UMLAssociation::getObject
UMLObject * getObject(Uml::RoleType::Enum role) const
Definition: association.cpp:505
UMLObject::baseType
ObjectType baseType() const
Definition: umlobject.cpp:393
Uml::AssociationType::Unknown
@ Unknown
Definition: basictypes.h:116
UMLAssociation::changeability
Uml::Changeability::Enum changeability(Uml::RoleType::Enum role) const
Definition: association.cpp:550
optionstate.h
Uml::ModelType::toString
QString toString(Enum item)
Definition: basictypes.cpp:33
Settings::optionState
OptionState & optionState()
Definition: optionstate.cpp:357
UMLAssociation::getUMLRole
UMLRole * getUMLRole(Uml::RoleType::Enum role) const
Definition: association.cpp:595
Uml::Changeability::Enum
Enum
Definition: basictypes.h:202
UMLObject::m_BaseType
ObjectType m_BaseType
objects type
Definition: umlobject.h:308
Uml::AssociationType::Child2Category
@ Child2Category
Definition: basictypes.h:111
Uml::AssociationType::Aggregation
@ Aggregation
Definition: basictypes.h:94
Uml::ID::fromString
ID::Type fromString(const QString &id)
Definition: basictypes.cpp:1311
UMLObject::visibility
Uml::Visibility::Enum visibility() const
Definition: umlobject.cpp:462
uniqueid.h
UMLAssociation::setObject
void setObject(UMLObject *obj, Uml::RoleType::Enum role)
Definition: association.cpp:640
folder.h
Uml::AssociationType::Association
@ Association
Definition: basictypes.h:96
logError3
#define logError3(s, a, b, c)
Definition: uml.h:557
Model_Utils::isCommonXMI1Attribute
bool isCommonXMI1Attribute(const QString &tag)
Definition: model_utils.cpp:808
UMLAssociation::toString
QString toString() const
Definition: association.cpp:109
basictypes.h
UMLAssociation::getObjectId
Uml::ID::Type getObjectId(Uml::RoleType::Enum role) const
Definition: association.cpp:517
UMLObject::asUMLClassifier
UMLClassifier * asUMLClassifier()
Definition: umlobject.cpp:1422
UMLAssociation::setOldLoadMode
void setOldLoadMode(bool value=true)
Definition: association.cpp:604
Uml::RoleType::B
@ B
Definition: basictypes.h:238
UMLObject::modified
void modified()
Definition: moc_umlobject.cpp:216
UMLObject::secondaryId
QString secondaryId() const
Definition: umlobject.cpp:684
Uml::AssociationType::Enum
Enum
Definition: basictypes.h:92
UMLAssociation::nrof_parent_widgets
int nrof_parent_widgets
Definition: association.h:88
logWarn1
#define logWarn1(s, a)
Definition: uml.h:544
Uml::AssociationType::Generalization
@ Generalization
Definition: basictypes.h:93
UMLObject::doc
QString doc() const
Definition: umlobject.cpp:431
UMLAssociation::setChangeability
void setChangeability(Uml::Changeability::Enum value, Uml::RoleType::Enum role)
Definition: association.cpp:660
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:349
UMLDoc
Definition: umldoc.h:69
Uml::AssociationType::fromInt
Enum fromInt(int item)
Definition: basictypes.cpp:437
Uml
Definition: basictypes.cpp:22
UMLRole::changeability
Uml::Changeability::Enum changeability() const
Definition: umlrole.cpp:102
UniqueID::gen
Uml::ID::Type gen()
Definition: uniqueid.cpp:21
UMLDoc::tagEq
static bool tagEq(const QString &tag, const QString &pattern)
Definition: umldoc.cpp:3652
logWarn0
#define logWarn0(s)
Definition: uml.h:538
Uml::Visibility::Enum
Enum
Definition: basictypes.h:45
UMLObject::setDoc
void setDoc(const QString &d)
Definition: umlobject.cpp:451
classifier.h
UMLObject::loadFromXMI
virtual bool loadFromXMI(QDomElement &element)
Definition: umlobject.cpp:1027
UMLAssociation::isRealization
bool isRealization(UMLObject *objA, UMLObject *objB) const
Definition: association.cpp:704
uml.h
UMLObject::setUMLPackage
bool setUMLPackage(UMLPackage *pPkg)
Definition: umlobject.cpp:620
UMLClassifier
Information for a non-graphical Concept/Class.
Definition: classifier.h:34
debug_utils.h
UMLCanvasObject::addAssociationEnd
bool addAssociationEnd(UMLAssociation *assoc)
Definition: umlcanvasobject.cpp:76
UMLAssociation
Sets up association information.
Definition: association.h:28
umlobject.h
UMLAssociation::getAssocType
Uml::AssociationType::Enum getAssocType() const
Definition: association.cpp:101
UMLObject::setVisibility
void setVisibility(Uml::Visibility::Enum visibility)
Definition: umlobject.cpp:472
classpropertiesdialog.h
Uml::AssociationType::Composition
@ Composition
Definition: basictypes.h:103
Uml::CmdChangeMultiplicity
Definition: cmdchangemultiplicity.h:17
UMLPackage::addObject
bool addObject(UMLObject *pObject, bool interactOnConflict=true)
Definition: package.cpp:135
UMLAssociation::~UMLAssociation
virtual ~UMLAssociation()
Definition: association.cpp:66
UMLObject::init
void init()
Definition: umlobject.cpp:122
UMLRole::object
UMLObject * object() const
Definition: umlrole.cpp:92
Uml::AssociationType::Dependency
@ Dependency
Definition: basictypes.h:95
UMLAssociation::m_pRole
UMLRole * m_pRole[2]
Definition: association.h:92
UMLApp::executeCommand
void executeCommand(QUndoCommand *cmd)
Definition: uml.cpp:3623
UMLRole::multiplicity
QString multiplicity() const
Definition: umlrole.cpp:112
UMLAssociation::setVisibility
void setVisibility(Uml::Visibility::Enum value, Uml::RoleType::Enum role)
Definition: association.cpp:650
UMLRole::toString
QString toString() const
Definition: umlrole.cpp:71
UMLAssociation::load1
bool load1(QDomElement &element)
Definition: association.cpp:216
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1139
Uml::AssociationType::Realization
@ Realization
Definition: basictypes.h:104
UMLAssociation::setRoleName
void setRoleName(const QString &roleName, Uml::RoleType::Enum role)
Definition: association.cpp:682
umldoc.h
UMLAssociation::getOldLoadMode
bool getOldLoadMode() const
Definition: association.cpp:612
UMLObject::save1
void save1(QXmlStreamWriter &writer, const QString &type, const QString &tag=QString())
Definition: umlobject.cpp:861
Uml::RoleType::Enum
Enum
Definition: basictypes.h:236
UMLAssociation::m_Name
QString m_Name
Definition: association.h:94