umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codeaccessormethod.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 CODEACCESSORMETHOD_H
9 #define CODEACCESSORMETHOD_H
10 
11 #include "codemethodblock.h"
12 #include <QString>
13 
14 class CodeClassField;
15 class QXmlStreamWriter;
16 
18 {
19  friend class CodeClassField;
20  Q_OBJECT
21 public:
22 
23  // some types of accessor methods that are possible:
24  // "GET" is to retrieve single-valued (primitive or Object) fields
25  // "SET" is to set single-valued (primitive or Object) fields
26  // "ADD" is to add a value to a multiple-valued field of either primitive or Object items
27  // "REMOVE" is to remove a value to a multiple-valued field of either primitive or Object items
28  // "LIST" is to retrieve the entire list of items in a multiple-valued field
30 
31  explicit CodeAccessorMethod(CodeClassField * field);
32  virtual ~CodeAccessorMethod();
33 
35 
37 
38  void setType(AccessorType type);
39 
40  // virtual UMLObject * getParentObject();
41 
42  bool parentIsAttribute();
43 
44  virtual void updateContent() = 0;
45 
46  virtual void saveToXMI(QXmlStreamWriter& writer);
47  virtual void loadFromXMI(QDomElement & root);
48 
49  virtual void setAttributesFromObject(TextBlock * obj);
50 
51 protected:
52 
53  virtual void release();
54 
55  virtual void setAttributesOnNode(QXmlStreamWriter& writer);
56 
57  virtual void setAttributesFromNode(QDomElement & element);
58 
59  virtual void updateMethodDeclaration() = 0;
60 
61  void forceRelease();
62 
63 private:
64 
67 
68  void initFields(CodeClassField * parentCF);
69 
70 };
71 
72 #endif // CODEACCESSORMETHOD_H
Definition: codeaccessormethod.h:18
CodeClassField * getParentClassField()
Definition: codeaccessormethod.cpp:37
AccessorType getType()
Definition: codeaccessormethod.cpp:61
virtual void setAttributesFromObject(TextBlock *obj)
Definition: codeaccessormethod.cpp:167
void forceRelease()
Definition: codeaccessormethod.cpp:88
virtual void loadFromXMI(QDomElement &root)
Definition: codeaccessormethod.cpp:99
CodeAccessorMethod(CodeClassField *field)
Definition: codeaccessormethod.cpp:20
AccessorType m_accessorType
Definition: codeaccessormethod.h:66
bool parentIsAttribute()
Definition: codeaccessormethod.cpp:42
virtual void release()
Definition: codeaccessormethod.cpp:80
virtual ~CodeAccessorMethod()
Definition: codeaccessormethod.cpp:29
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: codeaccessormethod.cpp:107
void initFields(CodeClassField *parentCF)
Definition: codeaccessormethod.cpp:181
virtual void updateMethodDeclaration()=0
virtual void updateContent()=0
CodeClassField * m_parentclassfield
Definition: codeaccessormethod.h:65
void setType(AccessorType type)
Definition: codeaccessormethod.cpp:69
AccessorType
Definition: codeaccessormethod.h:29
@ GET
Definition: codeaccessormethod.h:29
@ REMOVE
Definition: codeaccessormethod.h:29
@ ADD
Definition: codeaccessormethod.h:29
@ SET
Definition: codeaccessormethod.h:29
@ LIST
Definition: codeaccessormethod.h:29
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codeaccessormethod.cpp:120
virtual void setAttributesFromNode(QDomElement &element)
Definition: codeaccessormethod.cpp:134
Definition: codeclassfield.h:26
Definition: codemethodblock.h:26
Definition: textblock.h:23