umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codeclassfield.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-2.0-or-later
3
4 SPDX-FileCopyrightText: 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov>
5 SPDX-FileCopyrightText: 2004-2021 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6*/
7
8#ifndef CODECLASSFIELD_H
9#define CODECLASSFIELD_H
10
13#include "codeparameter.h"
14#include "codeaccessormethod.h"
15
17class UMLAttribute;
18class UMLObject;
19class UMLRole;
20
26{
27 Q_OBJECT
28public:
29
31
33 CodeClassField (ClassifierCodeDocument * parentDoc, UMLRole * role);
34
36
37 // CodeClassField (ClassifierCodeDocument * doc, UMLRole role);
38
39 virtual ~CodeClassField ();
40
41// /**
42// * Get the value of m_dialog
43// * @return the value of m_dialog
44// */
45// CodeClassFieldDialog getDialog ();
46
47 // Determine if this cf is attribute or some type of association
48 QString getTypeName ();
49
51
53
55
56 bool fieldIsSingleValue ();
57
59
60 // quick utility call to figure out if parent is an attribute or not
61 bool parentIsAttribute () const;
62
63 // get the type of object that will be added/removed from lists
64 // of objects (as per specification of associations)
65 QString getListObjectType();
66
67 bool getWriteOutMethods () const;
68
69 void setWriteOutMethods(bool val);
70
72
74
75 virtual void saveToXMI(QXmlStreamWriter& writer);
76
77 virtual void loadFromXMI (QDomElement & root);
78
79 virtual void synchronize ();
80
81 void updateContent();
82
83protected:
84
85 void setParentUMLObject (UMLObject * obj);
86
87 // CodeClassFieldDialog * m_dialog;
88
89 QString cleanName(const QString &name);
90
91 QString fixInitialStringDeclValue(const QString& val, const QString &type);
92
93 // set the list class name
94 void setListClassName (const QString &className);
95
96 bool addMethod (CodeAccessorMethod * add);
97
98 QString getUMLObjectName(UMLObject *obj);
99
100 bool removeMethod (CodeAccessorMethod * remove);
101
102private:
103
107 CodeAccessorMethodList m_methodVector; // the list of methods related to this codeclassfield
109
116
117 virtual void setAttributesOnNode (QXmlStreamWriter& writer);
118
119 virtual void setAttributesFromNode (QDomElement & element);
120
121 void initFields(bool inConstructor = false);
122
123 // initialize the accessor methods for this field
124 void initAccessorMethods();
125
126signals:
127
128 void modified ();
129
130};
131
132#endif // CODECLASSFIELD_H
Definition: classifiercodedocument.h:29
Definition: codeaccessormethod.h:18
AccessorType
Definition: codeaccessormethod.h:29
Definition: codeclassfielddeclarationblock.h:26
Definition: codeclassfield.h:26
CodeClassField(ClassifierCodeDocument *parentDoc, UMLAttribute *attrib)
Definition: codeclassfield.cpp:39
virtual ~CodeClassField()
Definition: codeclassfield.cpp:49
bool removeMethod(CodeAccessorMethod *remove)
Definition: codeclassfield.cpp:175
CodeClassFieldDeclarationBlock * m_declCodeBlock
Definition: codeclassfield.h:106
void setParentUMLObject(UMLObject *obj)
Definition: codeclassfield.cpp:71
QString m_listClassName
Definition: codeclassfield.h:104
CodeAccessorMethodList getMethodList() const
Definition: codeclassfield.cpp:188
virtual void loadFromXMI(QDomElement &root)
Definition: codeclassfield.cpp:226
bool m_parentIsAttribute
Definition: codeclassfield.h:108
virtual void synchronize()
Definition: codeclassfield.cpp:409
QString getTypeName()
Definition: codeclassfield.cpp:91
void initFields(bool inConstructor=false)
Definition: codeclassfield.cpp:638
bool fieldIsSingleValue()
Definition: codeclassfield.cpp:615
void finishInitialization()
Definition: codeclassfield.cpp:658
int maximumListOccurances()
Definition: codeclassfield.cpp:354
QString fixInitialStringDeclValue(const QString &val, const QString &type)
Definition: codeclassfield.cpp:392
CodeClassFieldDeclarationBlock * getDeclarationCodeBlock()
Definition: codeclassfield.cpp:218
ClassFieldType m_classFieldType
Definition: codeclassfield.h:105
ClassFieldType
Definition: codeclassfield.h:30
@ Composition
Definition: codeclassfield.h:30
@ Unknown_Assoc
Definition: codeclassfield.h:30
@ Attribute
Definition: codeclassfield.h:30
@ Self
Definition: codeclassfield.h:30
@ PlainAssociation
Definition: codeclassfield.h:30
@ Aggregation
Definition: codeclassfield.h:30
bool parentIsAttribute() const
Definition: codeclassfield.cpp:124
QString getListObjectType()
Definition: codeclassfield.cpp:109
CodeAccessorMethodList m_methodVector
Definition: codeclassfield.h:107
void initAccessorMethods()
Definition: codeclassfield.cpp:454
int minimumListOccurances()
Definition: codeclassfield.cpp:326
QString getUMLObjectName(UMLObject *obj)
Definition: codeclassfield.cpp:146
void setWriteOutMethods(bool val)
Definition: codeclassfield.cpp:208
void updateContent()
Definition: codeclassfield.cpp:515
ClassFieldType getClassFieldType() const
Definition: codeclassfield.cpp:133
CodeAccessorMethod * findMethodByType(CodeAccessorMethod::AccessorType type, int role_id=-1)
Definition: codeclassfield.cpp:423
bool m_writeOutMethods
Definition: codeclassfield.h:115
void modified()
Definition: moc_codeclassfield.cpp:129
bool getWriteOutMethods() const
Definition: codeclassfield.cpp:198
virtual void setAttributesFromNode(QDomElement &element)
Definition: codeclassfield.cpp:260
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codeclassfield.cpp:235
bool addMethod(CodeAccessorMethod *add)
Definition: codeclassfield.cpp:154
QString cleanName(const QString &name)
Definition: codeclassfield.cpp:382
void setListClassName(const QString &className)
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: codeclassfield.cpp:311
Definition: codeparameter.h:23
Sets up attribute information.
Definition: attribute.h:23
The base class for UML objects.
Definition: umlobject.h:70
Definition: umlrole.h:20
QList< CodeAccessorMethod * > CodeAccessorMethodList
Definition: codeaccessormethodlist.h:12