umbrello  2.35.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
cppcodegenerator.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 CPPCODEGENERATOR_H
9 #define CPPCODEGENERATOR_H
10 
11 #include "codedocumentlist.h"
12 #include "codeviewerstate.h"
13 #include "advancedcodegenerator.h"
14 #include "cppmakecodedocument.h"
15 #include "umldoc.h"
16 
17 #include <QString>
18 
19 class CodeViewerDialog;
21 
23 {
24  Q_OBJECT
25 public:
26 
27  static const bool DEFAULT_BUILD_MAKEFILE;
28 
30  virtual ~CPPCodeGenerator();
31 
32  void setCreateProjectMakefile(bool buildIt);
34 
35  QString fixTypeName(const QString &name);
36 
38  bool removeHeaderCodeDocument (CPPHeaderCodeDocument * remove_object);
39 
41 
44 
45  virtual CodeViewerDialog * getCodeViewerDialog(QWidget* parent, CodeDocument * doc,
47 
48  virtual void writeCodeToFile();
49  virtual void writeCodeToFile(UMLClassifierList &list);
50 
51  QStringList defaultDatatypes() const;
52 
53  virtual void saveToXMI(QXmlStreamWriter& writer);
54 
55  virtual QStringList reservedKeywords() const;
56 
57  virtual void createDefaultStereotypes ();
58 
60 
61 protected:
62 
64 
66 
67 private:
68 
70  CodeDocumentList m_headercodedocumentVector; //< a separate list for recording the header documents
71 
72 public slots:
73 
74  virtual void checkAddUMLObject (UMLObject * obj);
75  virtual void checkRemoveUMLObject (UMLObject * obj);
76 
77  virtual void syncCodeToDocument ();
78 };
79 
80 #endif // CPPCODEGENERATOR_H
UMLObject::id
virtual Uml::ID::Type id() const
Definition: umlobject.cpp:421
CPPCodeGenerator::newHeaderClassifierCodeDocument
CPPHeaderCodeDocument * newHeaderClassifierCodeDocument(UMLClassifier *classifier)
Definition: cppcodegenerator.cpp:282
cppcodedocumentation.h
CPPCodeGenerator::initFromParentDocument
void initFromParentDocument()
Definition: cppcodegenerator.cpp:302
CodeDocument::setWriteOutCode
void setWriteOutCode(bool new_var)
Definition: codedocument.cpp:151
CPPCodeGenerator::checkRemoveUMLObject
virtual void checkRemoveUMLObject(UMLObject *obj)
Definition: cppcodegenerator.cpp:363
CPPCodeGenerator::language
Uml::ProgrammingLanguage::Enum language() const
Definition: cppcodegenerator.cpp:57
ClassifierCodeDocument::getParentClassifier
UMLClassifier * getParentClassifier() const
Definition: classifiercodedocument.cpp:278
CPPCodeGenerator::CPPCodeGenerator
CPPCodeGenerator()
Definition: cppcodegenerator.cpp:32
cppcodegenerator.h
Codegen_Utils::cppDatatypes
QStringList cppDatatypes()
Definition: codegen_utils.cpp:18
Uml::ProgrammingLanguage::Enum
Enum
Definition: basictypes.h:291
CPPCodeGenerator::reservedKeywords
virtual QStringList reservedKeywords() const
Definition: cppcodegenerator.cpp:396
CPPCodeGenerator::getCreateProjectMakefile
bool getCreateProjectMakefile()
Definition: cppcodegenerator.cpp:79
UMLObject::name
QString name() const
Definition: umlobject.cpp:207
CPPCodeGenerator::m_createMakefile
bool m_createMakefile
Definition: cppcodegenerator.h:69
codedocumentlist.h
UMLDoc::classesAndInterfaces
UMLClassifierList classesAndInterfaces(bool includeNested=true) const
Definition: umldoc.cpp:3048
CPPCodeGenerator::setCreateProjectMakefile
void setCreateProjectMakefile(bool buildIt)
Definition: cppcodegenerator.cpp:66
CPPCodeGenerator::newMakefileCodeDocument
CPPMakefileCodeDocument * newMakefileCodeDocument()
Definition: cppcodegenerator.cpp:293
cppheadercodedocument.h
CodeGenerator::cleanName
static QString cleanName(const QString &name)
Definition: codegenerator.cpp:548
CPPCodeGenerator::writeCodeToFile
virtual void writeCodeToFile()
Definition: cppcodegenerator.cpp:222
CPPCodeGenerator::createDefaultStereotypes
virtual void createDefaultStereotypes()
Definition: cppcodegenerator.cpp:404
CodeViewerDialog::addCodeDocument
void addCodeDocument(CodeDocument *doc)
Definition: codeviewerdialog.cpp:55
codeviewerdialog.h
CodeGenerator::isReservedKeyword
virtual bool isReservedKeyword(const QString &keyword)
Definition: codegenerator.cpp:796
CPPCodeGenerator::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: cppcodegenerator.cpp:179
CPPHeaderCodeDocument
Definition: cppheadercodedocument.h:31
CPPCodeGenerator::~CPPCodeGenerator
virtual ~CPPCodeGenerator()
Definition: cppcodegenerator.cpp:46
Uml::ID::toString
QString toString(const ID::Type &id)
Definition: basictypes.cpp:1306
UMLClassifierList
QList< UMLClassifier * > UMLClassifierList
Definition: umlclassifierlist.h:12
CPPCodeGenerator::addHeaderCodeDocument
bool addHeaderCodeDocument(CPPHeaderCodeDocument *doc)
Definition: cppcodegenerator.cpp:89
CodeGenerator::findCodeDocumentByID
CodeDocument * findCodeDocumentByID(const QString &id)
Definition: codegenerator.cpp:109
CPPCodeGenerator
Definition: cppcodegenerator.h:22
CodeGenerator::findCodeDocumentByClassifier
CodeDocument * findCodeDocumentByClassifier(UMLClassifier *classifier)
Definition: codegenerator.cpp:299
CodeDocument
Definition: codedocument.h:29
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
CPPCodeGenerationPolicy
Definition: cppcodegenerationpolicy.h:18
CPPCodeGenerator::findHeaderCodeDocumentByClassifier
CPPHeaderCodeDocument * findHeaderCodeDocumentByClassifier(UMLClassifier *classifier)
Definition: cppcodegenerator.cpp:259
UMLApp::setPolicyExt
void setPolicyExt(CodeGenPolicyExt *policy)
Definition: uml.cpp:2467
CPPMakefileCodeDocument
Definition: cppmakecodedocument.h:19
ClassifierCodeDocument
Definition: classifiercodedocument.h:28
CodeGenerator::m_codeDocumentDictionary
QHash< QString, CodeDocument * > m_codeDocumentDictionary
Definition: codegenerator.h:135
it
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two distribute and or modify the software for each author s protection and we want to make certain that everyone understands that there is no warranty for this free software If the software is modified by someone else and passed we want its recipients to know that what they have is not the so that any problems introduced by others will not reflect on the original authors reputations any free program is threatened constantly by software patents We wish to avoid the danger that redistributors of a free program will individually obtain patent in effect making the program proprietary To prevent we have made it clear that any patent must be licensed for everyone s free use or not licensed at all The precise terms and conditions for distribution and modification follow TERMS AND CONDITIONS FOR DISTRIBUTION AND MODIFICATION This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License The refers to any such program or and a work based on the Program means either the Program or any derivative work under copyright a work containing the Program or a portion of it
Definition: GPL-2.0-only.txt:64
CPPCodeGenerator::checkAddUMLObject
virtual void checkAddUMLObject(UMLObject *obj)
Definition: cppcodegenerator.cpp:336
advancedcodegenerator.h
CPPCodeGenerator::newClassifierCodeDocument
CodeDocument * newClassifierCodeDocument(UMLClassifier *classifier)
Definition: cppcodegenerator.cpp:270
ClassifierCodeDocument::synchronize
virtual void synchronize()
Definition: classifiercodedocument.cpp:482
CPPCodeGenerator::syncCodeToDocument
virtual void syncCodeToDocument()
Definition: cppcodegenerator.cpp:204
UMLObject::asUMLClassifier
UMLClassifier * asUMLClassifier()
Definition: umlobject.cpp:1422
CPPCodeGenerator::defaultDatatypes
QStringList defaultDatatypes() const
Definition: cppcodegenerator.cpp:387
ClassifierCodeDocument::initCodeClassFields
virtual void initCodeClassFields()
Definition: classifiercodedocument.cpp:542
AdvancedCodeGenerator
Definition: advancedcodegenerator.h:17
CodeGenerator::removeCodeDocument
bool removeCodeDocument(CodeDocument *remove_object)
Definition: codegenerator.cpp:149
AdvancedCodeGenerator::connectSlots
void connectSlots()
Definition: advancedcodegenerator.cpp:108
Uml::ProgrammingLanguage::Cpp
@ Cpp
Definition: basictypes.h:294
c
type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of the commands you use may be called something other than show w and show c
Definition: GPL-2.0-only.txt:301
CodeGenerator::getCodeDocumentList
CodeDocumentList * getCodeDocumentList()
Definition: codegenerator.cpp:168
AdvancedCodeGenerator::getCodeViewerDialog
virtual CodeViewerDialog * getCodeViewerDialog(QWidget *parent, CodeDocument *doc, Settings::CodeViewerState &state)
Definition: advancedcodegenerator.cpp:33
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:349
CodeDocument::synchronize
virtual void synchronize()
Definition: codedocument.cpp:326
cppcodegenerationpolicy.h
CPPSourceCodeDocument
Definition: cppsourcecodedocument.h:17
CodeViewerDialog
Definition: codeviewerdialog.h:22
Codegen_Utils::createCppStereotypes
void createCppStereotypes()
Definition: codegen_utils.cpp:412
cppmakecodedocument.h
uml.h
Codegen_Utils::reservedCppKeywords
const QStringList reservedCppKeywords()
Definition: codegen_utils.cpp:46
UMLClassifier
Information for a non-graphical Concept/Class.
Definition: classifier.h:34
codeviewerstate.h
CPPCodeGenerator::DEFAULT_BUILD_MAKEFILE
static const bool DEFAULT_BUILD_MAKEFILE
Definition: cppcodegenerator.h:27
CodeDocument::ID
QString ID() const
Definition: codedocument.cpp:140
cppsourcecodedocument.h
CPPCodeGenerator::m_headercodedocumentVector
CodeDocumentList m_headercodedocumentVector
Definition: cppcodegenerator.h:70
CPPCodeGenerator::removeHeaderCodeDocument
bool removeHeaderCodeDocument(CPPHeaderCodeDocument *remove_object)
Definition: cppcodegenerator.cpp:111
Settings::CodeViewerState
configurable params for the code viewer tool
Definition: codeviewerstate.h:15
CPPMakefileCodeDocument::DOCUMENT_ID_VALUE
static const char * DOCUMENT_ID_VALUE
Definition: cppmakecodedocument.h:24
CodeDocumentList
QList< CodeDocument * > CodeDocumentList
Definition: codedocumentlist.h:12
CodeGenerator::addCodeDocument
bool addCodeDocument(CodeDocument *add_object)
Definition: codegenerator.cpp:124
CodeGenerator::writeListedCodeDocsToFile
void writeListedCodeDocsToFile(CodeDocumentList *docs)
Definition: codegenerator.cpp:340
CodeDocument::setID
void setID(const QString &new_id)
Definition: codedocument.cpp:131
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1139
codegen_utils.h
umldoc.h
CPPCodeGenerator::getCodeViewerDialog
virtual CodeViewerDialog * getCodeViewerDialog(QWidget *parent, CodeDocument *doc, Settings::CodeViewerState &state)
Definition: cppcodegenerator.cpp:132
CPPCodeGenerator::fixTypeName
QString fixTypeName(const QString &name)
Definition: cppcodegenerator.cpp:169