umbrello  2.39.2
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 
11 #include "codeaccessormethodlist.h"
13 #include "codeparameter.h"
14 #include "codeaccessormethod.h"
15 
17 class UMLAttribute;
18 class UMLObject;
19 class UMLRole;
20 
26 {
27  Q_OBJECT
28 public:
29 
31 
32  CodeClassField (ClassifierCodeDocument * parentDoc, UMLAttribute * attrib);
33  CodeClassField (ClassifierCodeDocument * parentDoc, UMLRole * role);
34 
35  void finishInitialization();
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 
83 protected:
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 
102 private:
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 
126 signals:
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