umbrello  2.35.1
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
CodeClassField::Composition
@ Composition
Definition: codeclassfield.h:30
umlrole.h
codeclassfield.h
CodeGenFactory::newDeclarationCodeBlock
CodeClassFieldDeclarationBlock * newDeclarationCodeBlock(ClassifierCodeDocument *cd, CodeClassField *cf)
Definition: codegenfactory.cpp:360
codegenfactory.h
CodeClassFieldDeclarationBlock
Definition: codeclassfielddeclarationblock.h:25
CodeClassField::getWriteOutMethods
bool getWriteOutMethods() const
Definition: codeclassfield.cpp:198
CodeClassField::finishInitialization
void finishInitialization()
Definition: codeclassfield.cpp:658
UMLObject::name
QString name() const
Definition: umlobject.cpp:207
CodeClassField::ClassFieldType
ClassFieldType
Definition: codeclassfield.h:30
CodeClassField::parentIsAttribute
bool parentIsAttribute() const
Definition: codeclassfield.cpp:124
CodeClassField::m_listClassName
QString m_listClassName
Definition: codeclassfield.h:104
Uml::Changeability::Changeable
@ Changeable
Definition: basictypes.h:203
CodeGenObjectWithTextBlocks::removeTextBlock
virtual bool removeTextBlock(TextBlock *remove_object)
Definition: codegenobjectwithtextblocks.cpp:91
CodeAccessorMethod::loadFromXMI
virtual void loadFromXMI(QDomElement &root)
Definition: codeaccessormethod.cpp:99
CodeClassField::cleanName
QString cleanName(const QString &name)
Definition: codeclassfield.cpp:382
UMLClassifierListItem::getTypeName
virtual QString getTypeName() const
Definition: classifierlistitem.cpp:108
TextBlock::setWriteOutText
void setWriteOutText(bool write)
Definition: textblock.cpp:127
CodeAccessorMethod::SET
@ SET
Definition: codeaccessormethod.h:29
CodeClassField::initAccessorMethods
void initAccessorMethods()
Definition: codeclassfield.cpp:454
CodeClassField::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: codeclassfield.cpp:311
CodeMethodBlock::syncToParent
virtual void syncToParent()
Definition: codemethodblock.cpp:167
logError0
#define logError0(s)
Definition: uml.h:539
CodeClassField::getUMLObjectName
QString getUMLObjectName(UMLObject *obj)
Definition: codeclassfield.cpp:146
logError1
#define logError1(s, a)
Definition: uml.h:545
association.h
CodeAccessorMethod
Definition: codeaccessormethod.h:17
CodeClassField::setListClassName
void setListClassName(const QString &className)
CodeClassFieldDeclarationBlock::forceRelease
void forceRelease()
Definition: codeclassfielddeclarationblock.cpp:63
CodeClassField::Aggregation
@ Aggregation
Definition: codeclassfield.h:30
CodeClassField::PlainAssociation
@ PlainAssociation
Definition: codeclassfield.h:30
CodeClassField::Unknown_Assoc
@ Unknown_Assoc
Definition: codeclassfield.h:30
CodeClassField::Attribute
@ Attribute
Definition: codeclassfield.h:30
CodeAccessorMethod::setType
void setType(AccessorType type)
Definition: codeaccessormethod.cpp:69
codeparameter.h
CodeClassField
Definition: codeclassfield.h:25
CodeParameter::getParentDocument
ClassifierCodeDocument * getParentDocument()
Definition: codeparameter.cpp:132
CodeClassFieldDeclarationBlock::loadFromXMI
virtual void loadFromXMI(QDomElement &root)
Definition: codeclassfielddeclarationblock.cpp:88
CodeClassFieldDeclarationBlock::syncToParent
virtual void syncToParent()
Definition: codeclassfielddeclarationblock.cpp:134
CodeClassField::findMethodByType
CodeAccessorMethod * findMethodByType(CodeAccessorMethod::AccessorType type, int role_id=-1)
Definition: codeclassfield.cpp:423
CodeClassField::getTypeName
QString getTypeName()
Definition: codeclassfield.cpp:91
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
UMLRole
Definition: umlrole.h:19
Uml::AssociationType::Association_Self
@ Association_Self
Definition: basictypes.h:97
CodeAccessorMethod::forceRelease
void forceRelease()
Definition: codeaccessormethod.cpp:88
CodeClassField::m_writeOutMethods
bool m_writeOutMethods
Definition: codeclassfield.h:115
ClassifierCodeDocument
Definition: classifiercodedocument.h:28
OwnedCodeBlock::getParentObject
UMLObject * getParentObject()
Definition: ownedcodeblock.cpp:63
Uml::Changeability::Enum
Enum
Definition: basictypes.h:202
CodeAccessorMethod::getType
AccessorType getType()
Definition: codeaccessormethod.cpp:61
Uml::AssociationType::Aggregation
@ Aggregation
Definition: basictypes.h:94
Uml::Changeability::Frozen
@ Frozen
Definition: basictypes.h:204
CodeClassField::Self
@ Self
Definition: codeclassfield.h:30
attribute.h
number
it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Library is restricted in certain countries either by patents or by copyrighted the original copyright holder who places the Library under this License may add an geographical distribution limitation excluding those so that distribution is permitted only in or among countries not thus excluded In such this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the Library General Public License from time to time Such new versions will be similar in spirit to the present but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Library specifies a version number of this License which applies to it and any later you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Library does not specify a license version number
Definition: LGPL-2.0-only.txt:368
CodeClassField::modified
void modified()
Definition: moc_codeclassfield.cpp:128
CodeClassField::CodeClassField
CodeClassField(ClassifierCodeDocument *parentDoc, UMLAttribute *attrib)
Definition: codeclassfield.cpp:39
CodeClassField::removeMethod
bool removeMethod(CodeAccessorMethod *remove)
Definition: codeclassfield.cpp:175
CodeClassField::fixInitialStringDeclValue
QString fixInitialStringDeclValue(const QString &val, const QString &type)
Definition: codeclassfield.cpp:392
CodeClassField::loadFromXMI
virtual void loadFromXMI(QDomElement &root)
Definition: codeclassfield.cpp:226
classifiercodedocument.h
Uml::AssociationType::Association
@ Association
Definition: basictypes.h:96
codeclassfielddeclarationblock.h
CodeClassField::initFields
void initFields(bool inConstructor=false)
Definition: codeclassfield.cpp:638
CodeAccessorMethodList
QList< CodeAccessorMethod * > CodeAccessorMethodList
Definition: codeaccessormethodlist.h:12
CodeClassField::getListObjectType
QString getListObjectType()
Definition: codeclassfield.cpp:109
CodeAccessorMethod::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: codeaccessormethod.cpp:107
CodeClassField::maximumListOccurances
int maximumListOccurances()
Definition: codeclassfield.cpp:354
CodeClassField::setWriteOutMethods
void setWriteOutMethods(bool val)
Definition: codeclassfield.cpp:208
Uml::AssociationType::Enum
Enum
Definition: basictypes.h:92
MyProject\connect
connect()
Definition: namespaces-multiple.php:5
logWarn1
#define logWarn1(s, a)
Definition: uml.h:544
CodeGenFactory::newCodeAccessorMethod
CodeAccessorMethod * newCodeAccessorMethod(ClassifierCodeDocument *ccd, CodeClassField *cf, CodeAccessorMethod::AccessorType type)
Definition: codegenfactory.cpp:310
CodeParameter::setAttributesFromNode
virtual void setAttributesFromNode(QDomElement &element)
Definition: codeparameter.cpp:191
CodeAccessorMethod::GET
@ GET
Definition: codeaccessormethod.h:29
UMLAttribute
Sets up attribute information.
Definition: attribute.h:22
CodeParameter::setAttributesOnNode
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codeparameter.cpp:165
CodeClassField::~CodeClassField
virtual ~CodeClassField()
Definition: codeclassfield.cpp:49
CodeDocument::cleanName
QString cleanName(const QString &name)
Definition: codedocument.cpp:267
CodeBlock::contentType
ContentType contentType() const
Definition: codeblock.cpp:50
CodeClassField::synchronize
virtual void synchronize()
Definition: codeclassfield.cpp:409
CodeBlock::AutoGenerated
@ AutoGenerated
the content was generated by code generation itself
Definition: codeblock.h:24
UMLRole::changeability
Uml::Changeability::Enum changeability() const
Definition: umlrole.cpp:102
CodeClassField::setAttributesFromNode
virtual void setAttributesFromNode(QDomElement &element)
Definition: codeclassfield.cpp:260
CodeClassField::addMethod
bool addMethod(CodeAccessorMethod *add)
Definition: codeclassfield.cpp:154
CodeClassField::setAttributesOnNode
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codeclassfield.cpp:235
CodeClassField::m_classFieldType
ClassFieldType m_classFieldType
Definition: codeclassfield.h:105
uml.h
CodeClassField::minimumListOccurances
int minimumListOccurances()
Definition: codeclassfield.cpp:326
debug_utils.h
CodeClassField::updateContent
void updateContent()
Definition: codeclassfield.cpp:515
UMLAssociation
Sets up association information.
Definition: association.h:28
CodeClassField::fieldIsSingleValue
bool fieldIsSingleValue()
Definition: codeclassfield.cpp:615
CodeAccessorMethod::LIST
@ LIST
Definition: codeaccessormethod.h:29
codeaccessormethod.h
umlobject.h
UMLAssociation::getAssocType
Uml::AssociationType::Enum getAssocType() const
Definition: association.cpp:101
CodeClassFieldDeclarationBlock::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: codeclassfielddeclarationblock.cpp:78
CodeClassField::getMethodList
CodeAccessorMethodList getMethodList() const
Definition: codeclassfield.cpp:188
Uml::AssociationType::Composition
@ Composition
Definition: basictypes.h:103
UMLRole::role
Uml::RoleType::Enum role() const
Definition: umlrole.cpp:168
CodeAccessorMethod::REMOVE
@ REMOVE
Definition: codeaccessormethod.h:29
codegenerator.h
CodeClassField::setParentUMLObject
void setParentUMLObject(UMLObject *obj)
Definition: codeclassfield.cpp:71
CodeClassField::getDeclarationCodeBlock
CodeClassFieldDeclarationBlock * getDeclarationCodeBlock()
Definition: codeclassfield.cpp:218
CodeParameter
Definition: codeparameter.h:22
UMLRole::object
UMLObject * object() const
Definition: umlrole.cpp:92
CodeClassField::getClassFieldType
ClassFieldType getClassFieldType() const
Definition: codeclassfield.cpp:133
CodeAccessorMethod::ADD
@ ADD
Definition: codeaccessormethod.h:29
CodeClassField::m_parentIsAttribute
bool m_parentIsAttribute
Definition: codeclassfield.h:108
CodeAccessorMethod::AccessorType
AccessorType
Definition: codeaccessormethod.h:29
UMLRole::multiplicity
QString multiplicity() const
Definition: umlrole.cpp:112
CodeClassField::m_methodVector
CodeAccessorMethodList m_methodVector
Definition: codeclassfield.h:107
CodeClassField::m_declCodeBlock
CodeClassFieldDeclarationBlock * m_declCodeBlock
Definition: codeclassfield.h:106
UMLObject::asUMLRole
UMLRole * asUMLRole()
Definition: umlobject.cpp:1440
CodeParameter::getParentObject
UMLObject * getParentObject()
Definition: codeparameter.cpp:140
UMLRole::parentAssociation
UMLAssociation * parentAssociation() const
Definition: umlrole.cpp:83
codeaccessormethodlist.h