umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
classifier.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-2.0-or-later
3 SPDX-FileCopyrightText: 2002-2021 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4*/
5#ifndef CLASSIFIER_H
6#define CLASSIFIER_H
7
8#include "package.h"
9#include "umlattributelist.h"
10#include "umloperationlist.h"
12#include "classifierlistitem.h"
13#include "umltemplatelist.h"
14#include "model_utils.h"
15
16// forward declarations
17class UMLAssociation;
18class IDChangeLog;
20
35{
36 Q_OBJECT
37public:
38
43
44 explicit UMLClassifier(const QString & name = QString(), Uml::ID::Type id = Uml::ID::None);
45 virtual ~UMLClassifier();
46
47 virtual void copyInto(UMLObject *lhs) const;
48
49 UMLObject* clone() const;
50
51 virtual void setNameCmd(const QString &strName);
52
53 virtual UMLAttribute* createAttribute(const QString &name = QString(),
54 UMLObject *type = 0,
56 const QString &init = QString());
57
59 UMLAttribute* addAttribute(const QString &name, UMLObject *type, Uml::Visibility::Enum scope);
60
61 bool addAttribute(UMLAttribute* att, IDChangeLog* log = 0,
62 int position = -1);
63
65
69
70 UMLOperation* createOperation(const QString &name = QString(),
71 bool *isExistingOp = 0,
73
74 bool addOperation(UMLOperation* op, int position = -1);
76
78 UMLAttributeList opParams,
79 UMLOperation *exemptOp = 0) const;
80
82
83 int operations() const;
84
85 UMLOperationList getOpList(bool includeInherited = false, UMLClassifierSet *alreadyTraversed = 0) const;
86
87 UMLObject* createTemplate(const QString& name = QString());
88
90
91 bool addTemplate(UMLTemplate* newTemplate, IDChangeLog* log = 0);
92 bool addTemplate(UMLTemplate* templt, int position);
93
94 int removeTemplate(UMLTemplate* umltemplate);
95
96 UMLTemplate *findTemplate(const QString& name) const;
97
98 int templates() const;
99
101
103
105
106 virtual bool resolveRef();
107
108 UMLOperationList findOperations(const QString &n) const;
109
111 bool considerAncestors = false) const;
112
113 UMLOperation* findOperation(const QString& name,
114 Model_Utils::NameAndType_List params) const;
115
117
119
120 virtual bool acceptAssociationType(Uml::AssociationType::Enum type) const;
121
123
124 bool isInterface() const;
125
126 bool hasAbstractOps() const;
127 bool hasAssociations() const;
128 bool hasAttributes() const;
129 bool hasStaticAttributes() const;
130 bool hasMethods() const;
131 bool hasAccessorMethods() const;
132 bool hasOperationMethods() const;
133 bool hasVectorFields() const;
134
140// UMLClassifierList getPlainAssocChildClassifierList();
141// UMLClassifierList getAggregateChildClassifierList();
142// UMLClassifierList getCompositionChildClassifierList();
143
144 virtual UMLClassifierListItem* makeChildObject(const QString& xmiTag);
145
147
148signals:
149
152
155
156 // only applies when (m_Type == ot_Class)
159
160private:
161
163
170// UMLClassifierList findAssocClassifierObjsInRoles (UMLAssociationList * list);
171
172protected:
173
174 void saveToXMI(QXmlStreamWriter& writer);
175
176 virtual bool load1(QDomElement& element);
177
178};
179
180#endif // CLASSIFIER_H
Definition: idchangelog.h:22
Sets up association information.
Definition: association.h:29
Definition: umlattributelist.h:21
Sets up attribute information.
Definition: attribute.h:23
Definition: umlclassifierlistitemlist.h:22
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:25
holds set of classifiers for recursive loop detection
Definition: classifier.cpp:48
Information for a non-graphical Concept/Class.
Definition: classifier.h:35
bool hasVectorFields() const
Definition: classifier.cpp:1310
UMLAttribute * addAttribute(const QString &name, Uml::ID::Type id=Uml::ID::None)
Definition: classifier.cpp:810
void saveToXMI(QXmlStreamWriter &writer)
Definition: classifier.cpp:1354
UMLObject * clone() const
Definition: classifier.cpp:657
UMLOperationList getOpList(bool includeInherited=false, UMLClassifierSet *alreadyTraversed=0) const
Definition: classifier.cpp:939
int takeItem(UMLClassifierListItem *item)
Definition: classifier.cpp:1169
UMLTemplate * addTemplate(const QString &name, Uml::ID::Type id=Uml::ID::None)
Definition: classifier.cpp:1025
virtual bool resolveRef()
Definition: classifier.cpp:691
bool isInterface() const
Definition: classifier.cpp:116
void operationRemoved(UMLClassifierListItem *)
Definition: moc_classifier.cpp:240
virtual bool load1(QDomElement &element)
Definition: classifier.cpp:1486
bool hasAbstractOps() const
Definition: classifier.cpp:909
UMLAttributeList getAttributeList() const
Definition: classifier.cpp:435
bool hasAssociations() const
Definition: classifier.cpp:1248
bool hasMethods() const
Definition: classifier.cpp:1298
int templates() const
Definition: classifier.cpp:1136
virtual UMLClassifierListItem * makeChildObject(const QString &xmiTag)
Definition: classifier.cpp:1461
UMLTemplateList getTemplateList() const
Definition: classifier.cpp:1149
UMLOperation * createOperation(const QString &name=QString(), bool *isExistingOp=0, Model_Utils::NameAndType_List *params=0)
Definition: classifier.cpp:234
bool addOperation(UMLOperation *op, int position=-1)
Definition: classifier.cpp:308
UMLAssociation * m_pClassAssoc
Definition: classifier.h:162
virtual void setNameCmd(const QString &strName)
Definition: classifier.cpp:668
bool hasStaticAttributes() const
Definition: classifier.cpp:1272
UMLClassifier(const QString &name=QString(), Uml::ID::Type id=Uml::ID::None)
Definition: classifier.cpp:62
void operationAdded(UMLClassifierListItem *)
Definition: moc_classifier.cpp:233
virtual UMLObject * findChildObjectById(Uml::ID::Type id, bool considerAncestors=false) const
Definition: classifier.cpp:545
virtual bool acceptAssociationType(Uml::AssociationType::Enum type) const
Definition: classifier.cpp:726
UMLObject * createTemplate(const QString &name=QString())
Definition: classifier.cpp:392
virtual ~UMLClassifier()
Definition: classifier.cpp:72
virtual UMLAttribute * createAttribute(const QString &name=QString(), UMLObject *type=0, Uml::Visibility::Enum vis=Uml::Visibility::Private, const QString &init=QString())
Definition: classifier.cpp:756
int removeTemplate(UMLTemplate *umltemplate)
Definition: classifier.cpp:1103
void setBaseType(UMLObject::ObjectType ot)
Definition: classifier.cpp:81
UMLClassifierList findSubClassConcepts(ClassifierType type=ALL) const
Definition: classifier.cpp:570
int removeAttribute(UMLAttribute *att)
Definition: classifier.cpp:893
bool hasOperationMethods() const
Definition: classifier.cpp:1290
UMLTemplate * findTemplate(const QString &name) const
Definition: classifier.cpp:1120
bool hasAttributes() const
Definition: classifier.cpp:1259
virtual void copyInto(UMLObject *lhs) const
Definition: classifier.cpp:642
int operations() const
Definition: classifier.cpp:926
UMLAttributeList getAttributeListStatic(Uml::Visibility::Enum scope) const
Definition: classifier.cpp:486
void attributeAdded(UMLClassifierListItem *)
Definition: moc_classifier.cpp:261
ClassifierType
Definition: classifier.h:42
@ ALL
Definition: classifier.h:42
@ DATATYPE
Definition: classifier.h:42
@ INTERFACE
Definition: classifier.h:42
@ CLASS
Definition: classifier.h:42
virtual UMLAssociationList getUniAssociationToBeImplemented() const
Definition: classifier.cpp:1318
UMLOperation * findOperation(const QString &name, Model_Utils::NameAndType_List params) const
Definition: classifier.cpp:177
UMLOperationList findOperations(const QString &n) const
Definition: classifier.cpp:521
int removeOperation(UMLOperation *op)
Definition: classifier.cpp:369
void templateAdded(UMLClassifierListItem *)
Definition: moc_classifier.cpp:247
void templateRemoved(UMLClassifierListItem *)
Definition: moc_classifier.cpp:254
UMLClassifierList findSuperClassConcepts(ClassifierType type=ALL) const
Definition: classifier.cpp:609
void attributeRemoved(UMLClassifierListItem *)
Definition: moc_classifier.cpp:268
bool hasAccessorMethods() const
Definition: classifier.cpp:1282
virtual UMLClassifierListItemList getFilteredList(UMLObject::ObjectType ot) const
Definition: classifier.cpp:999
UMLOperation * checkOperationSignature(const QString &name, UMLAttributeList opParams, UMLOperation *exemptOp=0) const
Definition: classifier.cpp:132
The base class for UML objects.
Definition: umlobject.h:70
ObjectType
Definition: umlobject.h:76
void init()
Definition: umlobject.cpp:122
QString name() const
Definition: umlobject.cpp:207
Definition: operation.h:20
Non-graphical information for a Package.
Definition: package.h:28
Sets up template information.
Definition: template.h:22
QLinkedList< NameAndType > NameAndType_List
Auxiliary type for OpDescriptor.
Definition: model_utils.h:123
Enum
Definition: basictypes.h:92
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
std::string Type
Definition: basictypes.h:371
Enum
Definition: basictypes.h:45
@ Private
Definition: basictypes.h:47
QList< UMLAssociation * > UMLAssociationList
Definition: umlassociationlist.h:12
QList< UMLClassifier * > UMLClassifierList
Definition: umlclassifierlist.h:12
QList< UMLOperation * > UMLOperationList
Definition: umloperationlist.h:12
QList< UMLTemplate * > UMLTemplateList
Definition: umltemplatelist.h:13