umbrello 2.34.70-5524f40e1
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
14class CodeClassField;
15class QXmlStreamWriter;
16
18{
19 friend class CodeClassField;
20 Q_OBJECT
21public:
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
51protected:
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
63private:
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