umbrello  2.32.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  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2003 Brian Thomas <thomas@mail630.gsfc.nasa.gov> *
8  * copyright (C) 2004-2020 *
9  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
10  ***************************************************************************/
11 
12 #ifndef CODECLASSFIELD_H
13 #define CODECLASSFIELD_H
14 
15 #include "codeaccessormethodlist.h"
17 #include "codeparameter.h"
18 #include "codeaccessormethod.h"
19 
21 class UMLAttribute;
22 class UMLObject;
23 class UMLRole;
24 
30 {
31  Q_OBJECT
32 public:
33 
35 
36  CodeClassField (ClassifierCodeDocument * parentDoc, UMLAttribute * attrib);
37  CodeClassField (ClassifierCodeDocument * parentDoc, UMLRole * role);
38 
39  void finishInitialization();
40 
41  // CodeClassField (ClassifierCodeDocument * doc, UMLRole role);
42 
43  virtual ~CodeClassField ();
44 
45 // /**
46 // * Get the value of m_dialog
47 // * @return the value of m_dialog
48 // */
49 // CodeClassFieldDialog getDialog ();
50 
51  // Determine if this cf is attribute or some type of association
52  QString getTypeName ();
53 
55 
57 
59 
60  bool fieldIsSingleValue ();
61 
63 
64  // quick utility call to figure out if parent is an attribute or not
65  bool parentIsAttribute () const;
66 
67  // get the type of object that will be added/removed from lists
68  // of objects (as per specification of associations)
69  QString getListObjectType();
70 
71  bool getWriteOutMethods () const;
72 
73  void setWriteOutMethods(bool val);
74 
76 
78 
79  virtual void saveToXMI1(QXmlStreamWriter& writer);
80 
81  virtual void loadFromXMI1 (QDomElement & root);
82 
83  virtual void synchronize ();
84 
85  void updateContent();
86 
87 protected:
88 
89  void setParentUMLObject (UMLObject * obj);
90 
91  // CodeClassFieldDialog * m_dialog;
92 
93  QString cleanName(const QString &name);
94 
95  QString fixInitialStringDeclValue(const QString& val, const QString &type);
96 
97  // set the list class name
98  void setListClassName (const QString &className);
99 
100  bool addMethod (CodeAccessorMethod * add);
101 
102  QString getUMLObjectName(UMLObject *obj);
103 
104  bool removeMethod (CodeAccessorMethod * remove);
105 
106 private:
107 
111  CodeAccessorMethodList m_methodVector; // the list of methods related to this codeclassfield
113 
120 
121  virtual void setAttributesOnNode (QXmlStreamWriter& writer);
122 
123  virtual void setAttributesFromNode (QDomElement & element);
124 
125  void initFields(bool inConstructor = false);
126 
127  // initialize the accessor methods for this field
128  void initAccessorMethods();
129 
130 signals:
131 
132  void modified ();
133 
134 };
135 
136 #endif // CODECLASSFIELD_H
CodeClassField::Composition
@ Composition
Definition: codeclassfield.h:34
umlrole.h
codeclassfield.h
CodeGenFactory::newDeclarationCodeBlock
CodeClassFieldDeclarationBlock * newDeclarationCodeBlock(ClassifierCodeDocument *cd, CodeClassField *cf)
Definition: codegenfactory.cpp:373
codegenfactory.h
CodeClassFieldDeclarationBlock
Definition: codeclassfielddeclarationblock.h:29
CodeClassField::getWriteOutMethods
bool getWriteOutMethods() const
Definition: codeclassfield.cpp:202
CodeClassField::finishInitialization
void finishInitialization()
Definition: codeclassfield.cpp:662
UMLObject::name
QString name() const
Definition: umlobject.cpp:211
CodeClassField::ClassFieldType
ClassFieldType
Definition: codeclassfield.h:34
CodeClassField::parentIsAttribute
bool parentIsAttribute() const
Definition: codeclassfield.cpp:128
CodeClassField::m_listClassName
QString m_listClassName
Definition: codeclassfield.h:108
CodeClassFieldDeclarationBlock::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: codeclassfielddeclarationblock.cpp:82
Uml::Changeability::Changeable
@ Changeable
Definition: basictypes.h:234
CodeGenObjectWithTextBlocks::removeTextBlock
virtual bool removeTextBlock(TextBlock *remove_object)
Definition: codegenobjectwithtextblocks.cpp:95
CodeClassField::cleanName
QString cleanName(const QString &name)
Definition: codeclassfield.cpp:386
UMLClassifierListItem::getTypeName
virtual QString getTypeName() const
Definition: classifierlistitem.cpp:112
TextBlock::setWriteOutText
void setWriteOutText(bool write)
Definition: textblock.cpp:131
CodeAccessorMethod::SET
@ SET
Definition: codeaccessormethod.h:33
CodeClassField::initAccessorMethods
void initAccessorMethods()
Definition: codeclassfield.cpp:458
CodeMethodBlock::syncToParent
virtual void syncToParent()
Definition: codemethodblock.cpp:171
CodeClassField::getUMLObjectName
QString getUMLObjectName(UMLObject *obj)
Definition: codeclassfield.cpp:150
CodeClassFieldDeclarationBlock::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codeclassfielddeclarationblock.cpp:92
CodeAccessorMethod::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codeaccessormethod.cpp:103
association.h
CodeAccessorMethod
Definition: codeaccessormethod.h:21
CodeClassField::setListClassName
void setListClassName(const QString &className)
CodeClassFieldDeclarationBlock::forceRelease
void forceRelease()
Definition: codeclassfielddeclarationblock.cpp:67
CodeClassField::Aggregation
@ Aggregation
Definition: codeclassfield.h:34
CodeClassField::PlainAssociation
@ PlainAssociation
Definition: codeclassfield.h:34
CodeClassField::Unknown_Assoc
@ Unknown_Assoc
Definition: codeclassfield.h:34
CodeClassField::Attribute
@ Attribute
Definition: codeclassfield.h:34
CodeAccessorMethod::setType
void setType(AccessorType type)
Definition: codeaccessormethod.cpp:73
codeparameter.h
CodeClassField
Definition: codeclassfield.h:29
CodeClassField::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: codeclassfield.cpp:315
CodeParameter::getParentDocument
ClassifierCodeDocument * getParentDocument()
Definition: codeparameter.cpp:136
CodeClassFieldDeclarationBlock::syncToParent
virtual void syncToParent()
Definition: codeclassfielddeclarationblock.cpp:138
CodeClassField::findMethodByType
CodeAccessorMethod * findMethodByType(CodeAccessorMethod::AccessorType type, int role_id=-1)
Definition: codeclassfield.cpp:427
CodeClassField::getTypeName
QString getTypeName()
Definition: codeclassfield.cpp:95
UMLObject
The base class for UML objects.
Definition: umlobject.h:74
UMLRole
Definition: umlrole.h:24
Uml::AssociationType::Association_Self
@ Association_Self
Definition: basictypes.h:128
CodeAccessorMethod::forceRelease
void forceRelease()
Definition: codeaccessormethod.cpp:92
CodeClassField::m_writeOutMethods
bool m_writeOutMethods
Definition: codeclassfield.h:119
ClassifierCodeDocument
Definition: classifiercodedocument.h:32
OwnedCodeBlock::getParentObject
UMLObject * getParentObject()
Definition: ownedcodeblock.cpp:67
Uml::Changeability::Enum
Enum
Definition: basictypes.h:233
CodeAccessorMethod::getType
AccessorType getType()
Definition: codeaccessormethod.cpp:65
Uml::AssociationType::Aggregation
@ Aggregation
Definition: basictypes.h:125
Uml::Changeability::Frozen
@ Frozen
Definition: basictypes.h:235
CodeClassField::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codeclassfield.cpp:230
CodeClassField::Self
@ Self
Definition: codeclassfield.h:34
attribute.h
CodeClassField::modified
void modified()
Definition: moc_codeclassfield.cpp:129
uWarning
#define uWarning()
Definition: debug_utils.h:124
CodeClassField::CodeClassField
CodeClassField(ClassifierCodeDocument *parentDoc, UMLAttribute *attrib)
Definition: codeclassfield.cpp:43
CodeClassField::removeMethod
bool removeMethod(CodeAccessorMethod *remove)
Definition: codeclassfield.cpp:179
CodeClassField::fixInitialStringDeclValue
QString fixInitialStringDeclValue(const QString &val, const QString &type)
Definition: codeclassfield.cpp:396
UMLObject::asUMLRole
UMLRole * asUMLRole()
Definition: umlobject.cpp:1411
classifiercodedocument.h
Uml::AssociationType::Association
@ Association
Definition: basictypes.h:127
codeclassfielddeclarationblock.h
CodeClassField::initFields
void initFields(bool inConstructor=false)
Definition: codeclassfield.cpp:642
CodeAccessorMethodList
QList< CodeAccessorMethod * > CodeAccessorMethodList
Definition: codeaccessormethodlist.h:17
CodeClassField::getListObjectType
QString getListObjectType()
Definition: codeclassfield.cpp:113
CodeClassField::maximumListOccurances
int maximumListOccurances()
Definition: codeclassfield.cpp:358
CodeClassField::setWriteOutMethods
void setWriteOutMethods(bool val)
Definition: codeclassfield.cpp:212
Uml::AssociationType::Enum
Enum
Definition: basictypes.h:123
MyProject\connect
connect()
Definition: namespaces-multiple.php:5
CodeGenFactory::newCodeAccessorMethod
CodeAccessorMethod * newCodeAccessorMethod(ClassifierCodeDocument *ccd, CodeClassField *cf, CodeAccessorMethod::AccessorType type)
Definition: codegenfactory.cpp:323
CodeParameter::setAttributesFromNode
virtual void setAttributesFromNode(QDomElement &element)
Definition: codeparameter.cpp:195
CodeAccessorMethod::GET
@ GET
Definition: codeaccessormethod.h:33
UMLAttribute
Sets up attribute information.
Definition: attribute.h:27
CodeParameter::setAttributesOnNode
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codeparameter.cpp:169
CodeClassField::~CodeClassField
virtual ~CodeClassField()
Definition: codeclassfield.cpp:53
CodeDocument::cleanName
QString cleanName(const QString &name)
Definition: codedocument.cpp:271
CodeBlock::contentType
ContentType contentType() const
Definition: codeblock.cpp:54
CodeClassField::synchronize
virtual void synchronize()
Definition: codeclassfield.cpp:413
CodeBlock::AutoGenerated
@ AutoGenerated
the content was generated by code generation itself
Definition: codeblock.h:46
UMLRole::changeability
Uml::Changeability::Enum changeability() const
Definition: umlrole.cpp:103
CodeClassField::setAttributesFromNode
virtual void setAttributesFromNode(QDomElement &element)
Definition: codeclassfield.cpp:264
CodeClassField::addMethod
bool addMethod(CodeAccessorMethod *add)
Definition: codeclassfield.cpp:158
uError
#define uError()
Definition: debug_utils.h:123
CodeClassField::setAttributesOnNode
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codeclassfield.cpp:239
CodeClassField::m_classFieldType
ClassFieldType m_classFieldType
Definition: codeclassfield.h:109
uml.h
CodeClassField::minimumListOccurances
int minimumListOccurances()
Definition: codeclassfield.cpp:330
debug_utils.h
CodeClassField::updateContent
void updateContent()
Definition: codeclassfield.cpp:519
UMLAssociation
Sets up association information.
Definition: association.h:33
CodeClassField::fieldIsSingleValue
bool fieldIsSingleValue()
Definition: codeclassfield.cpp:619
CodeAccessorMethod::LIST
@ LIST
Definition: codeaccessormethod.h:33
codeaccessormethod.h
umlobject.h
UMLAssociation::getAssocType
Uml::AssociationType::Enum getAssocType() const
Definition: association.cpp:105
CodeClassField::getMethodList
CodeAccessorMethodList getMethodList() const
Definition: codeclassfield.cpp:192
Uml::AssociationType::Composition
@ Composition
Definition: basictypes.h:134
UMLRole::role
Uml::RoleType::Enum role() const
Definition: umlrole.cpp:169
CodeAccessorMethod::REMOVE
@ REMOVE
Definition: codeaccessormethod.h:33
codegenerator.h
CodeClassField::setParentUMLObject
void setParentUMLObject(UMLObject *obj)
Definition: codeclassfield.cpp:75
CodeClassField::getDeclarationCodeBlock
CodeClassFieldDeclarationBlock * getDeclarationCodeBlock()
Definition: codeclassfield.cpp:222
CodeParameter
Definition: codeparameter.h:26
UMLRole::object
UMLObject * object() const
Definition: umlrole.cpp:93
CodeClassField::getClassFieldType
ClassFieldType getClassFieldType() const
Definition: codeclassfield.cpp:137
CodeAccessorMethod::ADD
@ ADD
Definition: codeaccessormethod.h:33
CodeClassField::m_parentIsAttribute
bool m_parentIsAttribute
Definition: codeclassfield.h:112
CodeAccessorMethod::AccessorType
AccessorType
Definition: codeaccessormethod.h:33
UMLRole::multiplicity
QString multiplicity() const
Definition: umlrole.cpp:113
CodeClassField::m_methodVector
CodeAccessorMethodList m_methodVector
Definition: codeclassfield.h:111
CodeClassField::m_declCodeBlock
CodeClassFieldDeclarationBlock * m_declCodeBlock
Definition: codeclassfield.h:110
CodeParameter::getParentObject
UMLObject * getParentObject()
Definition: codeparameter.cpp:144
CodeAccessorMethod::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: codeaccessormethod.cpp:111
UMLRole::parentAssociation
UMLAssociation * parentAssociation() const
Definition: umlrole.cpp:84
codeaccessormethodlist.h