umbrello  2.39.2
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 
16 class CodeBlock;
18 class CodeClassField;
19 class CodeComment;
20 class CodeDocument;
22 class QXmlStreamWriter;
23 class TextBlock;
24 
29 {
30 public:
31 
32  explicit CodeGenObjectWithTextBlocks(CodeDocument *parent);
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 
74 protected:
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 
95 private:
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
virtual TextBlock * findCodeClassFieldTextBlockByTag(const QString &tag)=0
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 HierarchicalCodeBlock * newHierarchicalCodeBlock()=0
virtual void resetTextBlocks()
Definition: codegenobjectwithtextblocks.cpp:322
virtual void setAttributesFromNode(QDomElement &element)
Definition: codegenobjectwithtextblocks.cpp:372
TextBlockList m_textblockVector
Definition: codegenobjectwithtextblocks.h:93
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 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