umbrello  2.32.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
CodeGenObjectWithTextBlocks::resetTextBlocks
virtual void resetTextBlocks()
Definition: codegenobjectwithtextblocks.cpp:322
CodeGenObjectWithTextBlocks::findParentObjectForTaggedTextBlock
CodeGenObjectWithTextBlocks * findParentObjectForTaggedTextBlock(const QString &tag)
Definition: codegenobjectwithtextblocks.cpp:141
CodeGenObjectWithTextBlocks::findCodeClassFieldTextBlockByTag
virtual TextBlock * findCodeClassFieldTextBlockByTag(const QString &tag)=0
textblocklist.h
codegenfactory.h
CodeGenObjectWithTextBlocks::getCodeBlockWithComments
virtual CodeBlockWithComments * getCodeBlockWithComments(const QString &tag, const QString &comment, int indentLevel)
Definition: codegenobjectwithtextblocks.cpp:208
CodeBlock::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codeblock.cpp:87
CodeGenObjectWithTextBlocks::addOrUpdateTaggedCodeBlockWithComments
CodeBlockWithComments * addOrUpdateTaggedCodeBlockWithComments(const QString &tag, const QString &text, const QString &ctext, int indentLevel, bool forceUserBlockUpdate)
Definition: codegenobjectwithtextblocks.cpp:279
UMLObject::asUMLOperation
UMLOperation * asUMLOperation()
Definition: umlobject.cpp:1404
CodeGenObjectWithTextBlocks::m_textBlockTagMap
QMap< QString, TextBlock * > m_textBlockTagMap
Definition: codegenobjectwithtextblocks.h:92
CodeGenObjectWithTextBlocks::removeTextBlock
virtual bool removeTextBlock(TextBlock *remove_object)
Definition: codegenobjectwithtextblocks.cpp:91
hierarchicalcodeblock.h
namespace_enum_literal::test
test
Definition: namespace-enum-literal.h:3
CodeGenObjectWithTextBlocks::findTextBlockByTag
TextBlock * findTextBlockByTag(const QString &tag)
Definition: codegenobjectwithtextblocks.cpp:121
CodeComment
Definition: codecomment.h:19
TextBlock::setWriteOutText
void setWriteOutText(bool write)
Definition: textblock.cpp:127
CodeGenObjectWithTextBlocks::addTextBlock
virtual bool addTextBlock(TextBlock *add_object)
Definition: codegenobjectwithtextblocks.cpp:56
CodeGenObjectWithTextBlocks::newHierarchicalCodeBlock
virtual HierarchicalCodeBlock * newHierarchicalCodeBlock()=0
CodeBlockWithComments::getComment
CodeComment * getComment() const
Definition: codeblockwithcomments.cpp:46
TextBlock::setTag
void setTag(const QString &value)
Definition: textblock.cpp:117
CodeClassField
Definition: codeclassfield.h:25
CodeDocument
Definition: codedocument.h:29
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
CodeGenObjectWithTextBlocks::getTextBlockList
TextBlockList * getTextBlockList() const
Definition: codegenobjectwithtextblocks.cpp:45
codeoperation.h
CodeBlock
Definition: codeblock.h:16
ClassifierCodeDocument
Definition: classifiercodedocument.h:28
CodeOperation::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codeoperation.cpp:82
CodeGenObjectWithTextBlocks::addOrUpdateTaggedCodeComment
CodeComment * addOrUpdateTaggedCodeComment(const QString &tag=QString(), const QString &text=QString(), int indentationLevel=0)
Definition: codegenobjectwithtextblocks.cpp:239
Uml::ID::fromString
ID::Type fromString(const QString &id)
Definition: basictypes.cpp:1305
CodeBlockWithComments::setOverallIndentationLevel
void setOverallIndentationLevel(int level)
Definition: codeblockwithcomments.cpp:163
CodeBlockWithComments::setComment
void setComment(CodeComment *object)
Definition: codeblockwithcomments.cpp:38
CodeGenObjectWithTextBlocks
Definition: codegenobjectwithtextblocks.h:28
CodeGenObjectWithTextBlocks::m_pCodeDoc
CodeDocument * m_pCodeDoc
Definition: codegenobjectwithtextblocks.h:98
CodeGenObjectWithTextBlocks::m_textblockVector
TextBlockList m_textblockVector
Definition: codegenobjectwithtextblocks.h:93
CodeGenFactory::newCodeComment
CodeComment * newCodeComment(CodeDocument *cd)
Definition: codegenfactory.cpp:398
UMLDoc::findObjectById
UMLObject * findObjectById(Uml::ID::Type id)
Definition: umldoc.cpp:1039
CodeGenObjectWithTextBlocks::CodeGenObjectWithTextBlocks
CodeGenObjectWithTextBlocks(CodeDocument *parent)
Definition: codegenobjectwithtextblocks.cpp:28
HierarchicalCodeBlock::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: hierarchicalcodeblock.cpp:268
uWarning
#define uWarning()
Definition: debug_utils.h:110
classifiercodedocument.h
CodeGenObjectWithTextBlocks::getUniqueTag
virtual QString getUniqueTag(const QString &prefix=QString())=0
CodeBlockWithComments::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codeblockwithcomments.cpp:96
TextBlock::setIndentationLevel
void setIndentationLevel(int level)
Definition: textblock.cpp:148
uDebug
#define uDebug()
Definition: debug_utils.h:108
CodeGenObjectWithTextBlocks::newCodeBlock
virtual CodeBlock * newCodeBlock()=0
CodeBlockWithComments
Definition: codeblockwithcomments.h:19
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:275
CodeGenObjectWithTextBlocks::insertTextBlock
virtual bool insertTextBlock(TextBlock *newBlock, TextBlock *existingBlock, bool after)=0
CodeGenObjectWithTextBlocks::setAttributesFromNode
virtual void setAttributesFromNode(QDomElement &element)
Definition: codegenobjectwithtextblocks.cpp:372
CodeBlock::contentType
ContentType contentType() const
Definition: codeblock.cpp:50
CodeBlock::AutoGenerated
@ AutoGenerated
the content was generated by code generation itself
Definition: codeblock.h:24
CodeGenObjectWithTextBlocks::getHierarchicalCodeBlock
virtual HierarchicalCodeBlock * getHierarchicalCodeBlock(const QString &tag, const QString &comment, int indentLevel)
Definition: codegenobjectwithtextblocks.cpp:176
codegenobjectwithtextblocks.h
codedocument.h
HierarchicalCodeBlock
Definition: hierarchicalcodeblock.h:20
uError
#define uError()
Definition: debug_utils.h:109
UMLOperation
Definition: operation.h:19
CodeOperation
Definition: codeoperation.h:19
CodeGenObjectWithTextBlocks::setAttributesFromObject
void setAttributesFromObject(CodeGenObjectWithTextBlocks *obj)
Definition: codegenobjectwithtextblocks.cpp:338
uml.h
debug_utils.h
TextBlockList
QList< TextBlock * > TextBlockList
Definition: textblocklist.h:12
TextBlock::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)=0
codeaccessormethod.h
TextBlock::getParentDocument
CodeDocument * getParentDocument() const
Definition: textblock.cpp:66
CodeGenObjectWithTextBlocks::setAttributesOnNode
virtual void setAttributesOnNode(QXmlStreamWriter &writer)
Definition: codegenobjectwithtextblocks.cpp:354
CodeComment::loadFromXMI1
virtual void loadFromXMI1(QDomElement &root)
Definition: codecomment.cpp:38
TextBlock
Definition: textblock.h:22
TextBlock::setText
void setText(const QString &text)
Definition: textblock.cpp:76
CodeGenObjectWithTextBlocks::~CodeGenObjectWithTextBlocks
virtual ~CodeGenObjectWithTextBlocks()
Definition: codegenobjectwithtextblocks.cpp:36
CodeGenObjectWithTextBlocks::newCodeBlockWithComments
virtual CodeBlockWithComments * newCodeBlockWithComments()=0
CodeGenFactory::newCodeOperation
CodeOperation * newCodeOperation(ClassifierCodeDocument *ccd, UMLOperation *op)
Definition: codegenfactory.cpp:218
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1063
CodeGenObjectWithTextBlocks::loadChildTextBlocksFromNode
virtual void loadChildTextBlocksFromNode(QDomElement &root)
Definition: codegenobjectwithtextblocks.cpp:389
TextBlock::getTag
QString getTag() const
Definition: textblock.cpp:106
umldoc.h
HierarchicalCodeBlock::removeTextBlock
bool removeTextBlock(TextBlock *remove_object)
Definition: hierarchicalcodeblock.cpp:168