umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codegenobjectwithtextblocks.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-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6*/
7
8#ifndef CODEGENOBJECTWITHTEXTBLOCKS_H
9#define CODEGENOBJECTWITHTEXTBLOCKS_H
10
11#include "codeaccessormethod.h"
12#include "textblocklist.h"
13
14#include <QMap>
15
16class CodeBlock;
18class CodeClassField;
19class CodeComment;
20class CodeDocument;
22class QXmlStreamWriter;
23class TextBlock;
24
29{
30public:
31
34
35 virtual bool addTextBlock(TextBlock * add_object);
36
37 virtual bool removeTextBlock(TextBlock * remove_object);
38
43 virtual bool insertTextBlock(TextBlock * newBlock, TextBlock * existingBlock, bool after) = 0;
44
46
47 virtual HierarchicalCodeBlock * getHierarchicalCodeBlock(const QString &tag, const QString &comment, int indentLevel);
48
49 virtual CodeBlockWithComments * getCodeBlockWithComments(const QString &tag, const QString &comment, int indentLevel);
50
51 CodeComment * addOrUpdateTaggedCodeComment(const QString &tag = QString(), const QString &text = QString(), int indentationLevel = 0);
52
54 (const QString &tag, const QString &text, const QString &ctext,
55 int indentLevel, bool forceUserBlockUpdate);
56
57 TextBlock * findTextBlockByTag(const QString &tag);
58
63 virtual QString getUniqueTag(const QString& prefix = QString()) = 0;
64
68 virtual CodeBlock * newCodeBlock() = 0;
71
73
74protected:
75
76 virtual void setAttributesOnNode(QXmlStreamWriter& writer);
77
78 virtual void setAttributesFromNode(QDomElement & element);
79
81
82 virtual void loadChildTextBlocksFromNode(QDomElement & root);
83
84 virtual void resetTextBlocks();
85
90 virtual TextBlock * findCodeClassFieldTextBlockByTag(const QString &tag) = 0;
91
92 QMap<QString, TextBlock *> m_textBlockTagMap;
94
95private:
96
97 // needed in order to use findTextBlocksByTag
99
100};
101
102#endif // CODEGENOBJECTWITHTEXTBLOCKS_H
Definition: codeblockwithcomments.h:20
Definition: codeblock.h:17
Definition: codeclassfield.h:26
Definition: codecomment.h:20
Definition: codedocument.h:30
Definition: codegenobjectwithtextblocks.h:29
CodeGenObjectWithTextBlocks(CodeDocument *parent)
Definition: codegenobjectwithtextblocks.cpp:28
virtual bool insertTextBlock(TextBlock *newBlock, TextBlock *existingBlock, bool after)=0
virtual bool addTextBlock(TextBlock *add_object)
Definition: codegenobjectwithtextblocks.cpp:56
virtual ~CodeGenObjectWithTextBlocks()
Definition: codegenobjectwithtextblocks.cpp:36
virtual CodeBlockWithComments * newCodeBlockWithComments()=0
virtual CodeBlock * newCodeBlock()=0
CodeComment * addOrUpdateTaggedCodeComment(const QString &tag=QString(), const QString &text=QString(), int indentationLevel=0)
Definition: codegenobjectwithtextblocks.cpp:239
CodeBlockWithComments * addOrUpdateTaggedCodeBlockWithComments(const QString &tag, const QString &text, const QString &ctext, int indentLevel, bool forceUserBlockUpdate)
Definition: codegenobjectwithtextblocks.cpp:279
void setAttributesFromObject(CodeGenObjectWithTextBlocks *obj)
Definition: codegenobjectwithtextblocks.cpp:338
virtual HierarchicalCodeBlock * getHierarchicalCodeBlock(const QString &tag, const QString &comment, int indentLevel)
Definition: codegenobjectwithtextblocks.cpp:176
virtual void resetTextBlocks()
Definition: codegenobjectwithtextblocks.cpp:322
virtual void setAttributesFromNode(QDomElement &element)
Definition: codegenobjectwithtextblocks.cpp:372
TextBlockList m_textblockVector
Definition: codegenobjectwithtextblocks.h:93
virtual TextBlock * findCodeClassFieldTextBlockByTag(const QString &tag)=0
TextBlock * findTextBlockByTag(const QString &tag)
Definition: codegenobjectwithtextblocks.cpp:121
CodeGenObjectWithTextBlocks * findParentObjectForTaggedTextBlock(const QString &tag)
Definition: codegenobjectwithtextblocks.cpp:141
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codegenobjectwithtextblocks.cpp:354
virtual QString getUniqueTag(const QString &prefix=QString())=0
virtual CodeBlockWithComments * getCodeBlockWithComments(const QString &tag, const QString &comment, int indentLevel)
Definition: codegenobjectwithtextblocks.cpp:208
QMap< QString, TextBlock * > m_textBlockTagMap
Definition: codegenobjectwithtextblocks.h:92
virtual HierarchicalCodeBlock * newHierarchicalCodeBlock()=0
virtual void loadChildTextBlocksFromNode(QDomElement &root)
Definition: codegenobjectwithtextblocks.cpp:389
virtual bool removeTextBlock(TextBlock *remove_object)
Definition: codegenobjectwithtextblocks.cpp:91
CodeDocument * m_pCodeDoc
Definition: codegenobjectwithtextblocks.h:98
TextBlockList * getTextBlockList() const
Definition: codegenobjectwithtextblocks.cpp:45
Definition: hierarchicalcodeblock.h:21
Definition: textblock.h:23
QList< TextBlock * > TextBlockList
Definition: textblocklist.h:12