umbrello  2.32.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
assocrules.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2002-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef ASSOCRULES_H
7 #define ASSOCRULES_H
8 
9 #include "umlobject.h"
10 #include "widgetbase.h"
11 
12 class UMLWidget;
13 
21 {
22 public:
23 
24  AssocRules();
25  ~AssocRules();
26 
27  static bool allowAssociation(Uml::AssociationType::Enum assocType, UMLWidget * widget);
28  static bool allowAssociation(Uml::AssociationType::Enum assocType,
29  UMLWidget * widgetA, UMLWidget * widgetB);
30 
31  static bool allowRole(Uml::AssociationType::Enum assocType);
32 
33  static bool allowMultiplicity(Uml::AssociationType::Enum assocType, WidgetBase::WidgetType widgetType);
34 
35  static bool allowSelf(Uml::AssociationType::Enum assocType, WidgetBase::WidgetType widgetType);
36 
38 
39  typedef enum {All, Java} Language;
40  typedef enum {Any, UML1, UML2 } Level;
41 
42 private:
43  class Assoc_Rule {
44  public:
45  bool isValid() const;
50  bool role;
51  bool multiplicity;
53  bool self;
55  };
56 
58  static int m_nNumRules;
59 };
60 
61 #endif
AssocRules::Any
@ Any
Definition: assocrules.h:40
UMLApp::currentView
UMLView * currentView() const
Definition: uml.cpp:3175
AssocRules::Assoc_Rule::self
bool self
association to self
Definition: assocrules.h:53
WidgetBase::wt_Signal
@ wt_Signal
Definition: widgetbase.h:133
WidgetBase::wt_ObjectNode
@ wt_ObjectNode
Definition: widgetbase.h:135
AssociationWidget
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde....
Definition: associationwidget.h:46
AssocRules::allowMultiplicity
static bool allowMultiplicity(Uml::AssociationType::Enum assocType, WidgetBase::WidgetType widgetType)
Definition: assocrules.cpp:358
statewidget.h
WidgetBase::wt_Category
@ wt_Category
Definition: widgetbase.h:137
umlview.h
activitywidget.h
UMLWidget
The base class for graphical UML objects.
Definition: umlwidget.h:35
AssocRules::AssocRules
AssocRules()
Definition: assocrules.cpp:31
Uml::AssociationType::Containment
@ Containment
Definition: basictypes.h:102
WidgetBase::wt_Instance
@ wt_Instance
Definition: widgetbase.h:139
WidgetBase::wt_Package
@ wt_Package
Definition: widgetbase.h:117
ActivityWidget::Final
@ Final
Definition: activitywidget.h:38
Uml::AssociationType::Activity
@ Activity
Definition: basictypes.h:108
AssocRules::allowAssociation
static bool allowAssociation(Uml::AssociationType::Enum assocType, UMLWidget *widget)
Definition: assocrules.cpp:46
UMLScene::isComponentDiagram
bool isComponentDiagram() const
Definition: umlscene.h:318
Uml::ProgrammingLanguage::Java
@ Java
Definition: basictypes.h:298
StateWidget
A graphical version of a UML State.
Definition: statewidget.h:33
ActivityWidget
A graphical version of a UML Activity.
Definition: activitywidget.h:28
UMLListViewItem
Items used by UMLListView.
Definition: umllistviewitem.h:35
Uml::AssociationType::State
@ State
Definition: basictypes.h:107
AssocRules::UML1
@ UML1
Definition: assocrules.h:40
Uml::RoleType::A
@ A
Definition: basictypes.h:237
WidgetBase::asStateWidget
StateWidget * asStateWidget()
Definition: widgetbase.cpp:1501
WidgetBase::isPackageWidget
bool isPackageWidget() const
Definition: widgetbase.h:257
WidgetBase::wt_Artifact
@ wt_Artifact
Definition: widgetbase.h:126
Uml::AssociationType::Category2Parent
@ Category2Parent
Definition: basictypes.h:110
WidgetBase::wt_UseCase
@ wt_UseCase
Definition: widgetbase.h:111
Settings::OptionState::generalState
GeneralState generalState
Definition: optionstate.h:322
WidgetBase::asActivityWidget
ActivityWidget * asActivityWidget()
Definition: widgetbase.cpp:1474
AssocRules::Language
Language
Definition: assocrules.h:39
Uml::AssociationType::UniAssociation
@ UniAssociation
Definition: basictypes.h:105
Uml::AssociationType::Relationship
@ Relationship
Definition: basictypes.h:112
WidgetBase::asForkJoinWidget
ForkJoinWidget * asForkJoinWidget()
Definition: widgetbase.cpp:1487
UMLObject::isAbstract
bool isAbstract() const
Definition: umlobject.cpp:343
WidgetBase::wt_Component
@ wt_Component
Definition: widgetbase.h:125
Uml::AssociationType::Association_Self
@ Association_Self
Definition: basictypes.h:97
WidgetBase::wt_ForkJoin
@ wt_ForkJoin
Definition: widgetbase.h:129
WidgetBase::wt_Note
@ wt_Note
Definition: widgetbase.h:119
Uml::AssociationType::Anchor
@ Anchor
Definition: basictypes.h:106
Settings::optionState
OptionState & optionState()
Definition: optionstate.cpp:357
AssociationWidget::associationType
Uml::AssociationType::Enum associationType() const
Definition: associationwidget.cpp:1400
StateWidget::End
@ End
Definition: statewidget.h:43
Uml::AssociationType::Child2Category
@ Child2Category
Definition: basictypes.h:111
AssocRules::m_nNumRules
static int m_nNumRules
The number of rules known about.
Definition: assocrules.h:58
Uml::AssociationType::Aggregation
@ Aggregation
Definition: basictypes.h:94
WidgetBase::wt_Actor
@ wt_Actor
Definition: widgetbase.h:110
AssociationWidgetList
QList< QPointer< AssociationWidget > > AssociationWidgetList
Definition: associationwidgetlist.h:15
WidgetBase::umlObject
UMLObject * umlObject() const
Definition: widgetbase.cpp:189
WidgetBase::wt_Pin
@ wt_Pin
Definition: widgetbase.h:134
UMLView
Definition: umlview.h:29
WidgetBase::wt_Port
@ wt_Port
Definition: widgetbase.h:138
UMLApp::listView
UMLListView * listView() const
Definition: uml.cpp:1073
ActivityWidget::End
@ End
Definition: activitywidget.h:37
umlwidget.h
uWarning
#define uWarning()
Definition: debug_utils.h:110
Uml::AssociationType::Association
@ Association
Definition: basictypes.h:96
AssocRules::Assoc_Rule::isValid
bool isValid() const
< Structure to help determine association rules.
Definition: assocrules.cpp:556
WidgetBase::wt_Class
@ wt_Class
Definition: widgetbase.h:112
uDebug
#define uDebug()
Definition: debug_utils.h:108
AssocRules::Assoc_Rule::level
Level level
UML level.
Definition: assocrules.h:54
Settings::GeneralState::uml2
bool uml2
Definition: optionstate.h:66
AssocRules::All
@ All
Definition: assocrules.h:39
Uml::RoleType::B
@ B
Definition: basictypes.h:238
Uml::AssociationType::Enum
Enum
Definition: basictypes.h:92
ActivityWidget::Normal
@ Normal
Definition: activitywidget.h:36
Uml::AssociationType::Generalization
@ Generalization
Definition: basictypes.h:93
umllistview.h
AssocRules::Assoc_Rule::role
bool role
role text
Definition: assocrules.h:50
AssocRules::Assoc_Rule::language
Language language
language rule applies to
Definition: assocrules.h:46
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:275
Uml::AssociationType::Coll_Mesg_Async
@ Coll_Mesg_Async
Definition: basictypes.h:98
UMLWidget::associationWidgetList
AssociationWidgetList & associationWidgetList() const
Definition: umlwidget.cpp:1292
AssocRules::~AssocRules
~AssocRules()
Definition: assocrules.cpp:38
WidgetBase::wt_Message
@ wt_Message
Definition: widgetbase.h:121
AssocRules::Assoc_Rule::widgetA_type
WidgetBase::WidgetType widgetA_type
type of role A widget
Definition: assocrules.h:48
StateWidget::Initial
@ Initial
Definition: statewidget.h:41
associationwidget.h
AssocRules::Assoc_Rule::multiplicity
bool multiplicity
multiplicity text on association
Definition: assocrules.h:51
AssocRules::Assoc_Rule::assoc_type
Uml::AssociationType::Enum assoc_type
association type
Definition: assocrules.h:47
ActivityWidget::Branch
@ Branch
Definition: activitywidget.h:39
widgetbase.h
AssocRules::allowRole
static bool allowRole(Uml::AssociationType::Enum assocType)
Definition: assocrules.cpp:342
AssocRules::Assoc_Rule
Definition: assocrules.h:43
ActivityWidget::Initial
@ Initial
Definition: activitywidget.h:35
WidgetBase::wt_State
@ wt_State
Definition: widgetbase.h:123
umlscene.h
WidgetBase::wt_Interface
@ wt_Interface
Definition: widgetbase.h:113
AssocRules::Java
@ Java
Definition: assocrules.h:39
uml.h
StateWidget::stateType
StateType stateType() const
Definition: statewidget.cpp:389
signalwidget.h
debug_utils.h
WidgetBase::wt_Object
@ wt_Object
Definition: widgetbase.h:118
WidgetBase::wt_Entity
@ wt_Entity
Definition: widgetbase.h:116
WidgetBase::isInterfaceWidget
bool isInterfaceWidget() const
Definition: widgetbase.h:251
AssocRules::allowSelf
static bool allowSelf(Uml::AssociationType::Enum assocType, WidgetBase::WidgetType widgetType)
Definition: assocrules.cpp:374
WidgetBase::WidgetType
WidgetType
Definition: widgetbase.h:106
WidgetBase::wt_Datatype
@ wt_Datatype
Definition: widgetbase.h:114
assocrules.h
AssocRules::UML2
@ UML2
Definition: assocrules.h:40
WidgetBase::wt_Activity
@ wt_Activity
Definition: widgetbase.h:124
umlobject.h
AssocRules
Definition: assocrules.h:20
associationwidgetlist.h
AssocRules::Assoc_Rule::bidirectional
bool bidirectional
can have an association of same type going between widget each way
Definition: assocrules.h:52
Uml::AssociationType::Composition
@ Composition
Definition: basictypes.h:103
UMLView::umlScene
UMLScene * umlScene() const
Definition: umlview.cpp:51
UMLListView::findUMLObject
UMLListViewItem * findUMLObject(const UMLObject *p) const
Definition: umllistview.cpp:1331
Uml::AssociationType::Coll_Mesg_Sync
@ Coll_Mesg_Sync
Definition: basictypes.h:113
AssocRules::m_AssocRules
static Assoc_Rule m_AssocRules[]
Container that holds all the rules.
Definition: assocrules.h:57
ActivityWidget::activityType
ActivityType activityType() const
Definition: activitywidget.cpp:54
Uml::AssociationType::Dependency
@ Dependency
Definition: basictypes.h:95
UMLApp::activeLanguage
Uml::ProgrammingLanguage::Enum activeLanguage() const
Definition: uml.cpp:2532
AssocRules::isGeneralisationOrRealisation
static Uml::AssociationType::Enum isGeneralisationOrRealisation(UMLWidget *widgetA, UMLWidget *widgetB)
Definition: assocrules.cpp:392
AssocRules::Assoc_Rule::widgetB_type
WidgetBase::WidgetType widgetB_type
type of role B widget
Definition: assocrules.h:49
WidgetBase::isClassWidget
bool isClassWidget() const
Definition: widgetbase.h:243
WidgetBase::baseType
WidgetType baseType() const
Definition: widgetbase.cpp:122
WidgetBase::wt_Enum
@ wt_Enum
Definition: widgetbase.h:115
AssocRules::Level
Level
Definition: assocrules.h:40
Uml::AssociationType::Realization
@ Realization
Definition: basictypes.h:104
WidgetBase::wt_Node
@ wt_Node
Definition: widgetbase.h:127
StateWidget::Normal
@ Normal
Definition: statewidget.h:42
Uml::AssociationType::Exception
@ Exception
Definition: basictypes.h:109
forkjoinwidget.h
AssociationWidget::widgetForRole
UMLWidget * widgetForRole(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1231