umbrello  2.32.3
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
dwriter.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2007 Jari-Matti Mäkelä <jmjm@iki.fi> *
8  * copyright (C) 2008-2020 *
9  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
10  ***************************************************************************/
11 
12 #ifndef DWRITER_H
13 #define DWRITER_H
14 
15 #include "simplecodegenerator.h"
16 #include "umloperationlist.h"
17 #include "umlattributelist.h"
18 #include "umlassociationlist.h"
19 
20 class UMLOperation;
21 
33 {
34 public:
35 
36  DWriter();
37  virtual ~DWriter();
38 
39  virtual void writeClass(UMLClassifier *c);
40 
42 
43  QStringList defaultDatatypes();
44 
45 private:
46 
50  void writeModuleDecl(UMLClassifier *c, QTextStream &d);
51 
55  void writeModuleImports(UMLClassifier *c, QTextStream &d);
56 
61  void writeClassDecl(UMLClassifier *c, QTextStream &d);
62 
66  void writeConstructor(UMLClassifier *c, QTextStream &d);
67 
73  static bool compareDMethod(UMLOperation *op1, UMLOperation *op2);
74 
80  static bool dMethodInList(UMLOperation *umlOp, UMLOperationList &opl);
81 
90  void getSuperImplementedOperations(UMLClassifier *c, UMLOperationList &yetImplementedOpList,
91  UMLOperationList &toBeImplementedOpList, bool noClassInPath = true);
92 
99 
105  void writeOperations(UMLClassifier *c, QTextStream &j);
106 
112  void writeOperations(UMLOperationList &list, QTextStream &j);
113 
119  void writeAttributes(UMLClassifier *c, QTextStream &j);
120 
127 
136 
145  UMLAttributeList &atpriv, QTextStream &d);
146 
150  void writeAssociationDecls(UMLAssociationList associations, Uml::ID::Type id, QTextStream &d);
151 
155  void writeAssociationRoleDecl(QString fieldClassName, QString roleName, QString multi,
156  QString doc, Uml::Visibility::Enum visib, QTextStream &d);
157 
162 
166  void writeAssociationMethods(UMLAssociationList associations, UMLClassifier *thisClass,
167  QTextStream &d);
168 
174  void writeAssociationRoleMethod(QString fieldClassName, QString roleName, QString multi,
176  QTextStream &d);
177 
181  void writeSingleAttributeAccessorMethods(QString fieldClassName, QString fieldVarName,
182  QString fieldName, QString description,
184  bool isFinal, QTextStream &d);
185 
189  void writeVectorAttributeAccessorMethods(QString fieldClassName, QString fieldVarName,
190  QString fieldName, QString description,
192  QTextStream &d);
193 
197  void writeComment(const QString &text, const QString &indent, QTextStream &d, bool dDocStyle=false);
198 
202  void writeDocumentation(QString header, QString body, QString end, QString indent, QTextStream &d);
203 
207  QString getUMLObjectName(UMLObject *obj);
208 
212  QString deCapitaliseFirstLetter(const QString& str);
213 
217  QString pluralize(const QString& string);
218 
222  QString unPluralize(const QString& str);
223 
227  QString fixTypeName(const QString& string);
228 
232  QString fixInitialStringDeclValue(const QString& val, const QString& type);
233 
237  void writeBlankLine(QTextStream& d);
238 
239  QString startline;
240  bool isInterface;
241 
242 };
243 
244 #endif // DWRITER_H
Definition: dwriter.h:33
void writeComment(const QString &text, const QString &indent, QTextStream &d, bool dDocStyle=false)
Definition: dwriter.cpp:439
void writeProtectionMod(Uml::Visibility::Enum visibility, QTextStream &d)
Definition: dwriter.cpp:375
void writeOperations(UMLClassifier *c, QTextStream &j)
Definition: dwriter.cpp:829
void writeAttributeDecl(Uml::Visibility::Enum visibility, UMLAttributeList &atlist, QTextStream &d)
Definition: dwriter.cpp:380
bool isInterface
whether or not this concept is an interface
Definition: dwriter.h:240
void writeClassDecl(UMLClassifier *c, QTextStream &d)
Definition: dwriter.cpp:283
void writeConstructor(UMLClassifier *c, QTextStream &d)
Definition: dwriter.cpp:693
void writeAssociationRoleMethod(QString fieldClassName, QString roleName, QString multi, QString description, Uml::Visibility::Enum visib, Uml::Changeability::Enum change, QTextStream &d)
Definition: dwriter.cpp:596
QString fixInitialStringDeclValue(const QString &val, const QString &type)
Definition: dwriter.cpp:944
QString deCapitaliseFirstLetter(const QString &str)
Definition: dwriter.cpp:963
void writeAttributeDecls(UMLAttributeList &atpub, UMLAttributeList &atprot, UMLAttributeList &atpriv, QTextStream &d)
Definition: dwriter.cpp:416
void writeModuleDecl(UMLClassifier *c, QTextStream &d)
Definition: dwriter.cpp:57
void writeDocumentation(QString header, QString body, QString end, QString indent, QTextStream &d)
Definition: dwriter.cpp:472
void writeAssociationDecls(UMLAssociationList associations, Uml::ID::Type id, QTextStream &d)
Definition: dwriter.cpp:489
void writeBlankLine(QTextStream &d)
Definition: dwriter.cpp:990
QString startline
a , used at the end of each line
Definition: dwriter.h:239
QString fixTypeName(const QString &string)
Definition: dwriter.cpp:712
void writeSingleAttributeAccessorMethods(QString fieldClassName, QString fieldVarName, QString fieldName, QString description, Uml::Visibility::Enum visibility, Uml::Changeability::Enum change, bool isFinal, QTextStream &d)
Definition: dwriter.cpp:663
virtual Uml::ProgrammingLanguage::Enum language() const
Definition: dwriter.cpp:51
void getSuperImplementedOperations(UMLClassifier *c, UMLOperationList &yetImplementedOpList, UMLOperationList &toBeImplementedOpList, bool noClassInPath=true)
Definition: dwriter.cpp:796
virtual void writeClass(UMLClassifier *c)
Definition: dwriter.cpp:101
void writeAssociationRoleDecl(QString fieldClassName, QString roleName, QString multi, QString doc, Uml::Visibility::Enum visib, QTextStream &d)
Definition: dwriter.cpp:524
virtual ~DWriter()
Definition: dwriter.cpp:43
QString unPluralize(const QString &str)
Definition: dwriter.cpp:975
void writeAssociationMethods(UMLAssociationList associations, UMLClassifier *thisClass, QTextStream &d)
Definition: dwriter.cpp:562
QStringList defaultDatatypes()
Definition: dwriter.cpp:732
QString getUMLObjectName(UMLObject *obj)
Definition: dwriter.cpp:958
void writeModuleImports(UMLClassifier *c, QTextStream &d)
Definition: dwriter.cpp:65
void writeAttributes(UMLClassifier *c, QTextStream &j)
DWriter()
Definition: dwriter.cpp:34
static bool dMethodInList(UMLOperation *umlOp, UMLOperationList &opl)
Definition: dwriter.cpp:786
static bool compareDMethod(UMLOperation *op1, UMLOperation *op2)
Definition: dwriter.cpp:764
void writeAttributeMethods(UMLAttributeList &atpub, Uml::Visibility::Enum visibility, QTextStream &d)
Definition: dwriter.cpp:425
void getInterfacesOperationsToBeImplemented(UMLClassifier *c, UMLOperationList &opl)
Definition: dwriter.cpp:817
QString pluralize(const QString &string)
Definition: dwriter.cpp:970
void writeVectorAttributeAccessorMethods(QString fieldClassName, QString fieldVarName, QString fieldName, QString description, Uml::Visibility::Enum visibility, Uml::Changeability::Enum change, QTextStream &d)
Definition: dwriter.cpp:613
Definition: simplecodegenerator.h:34
QString indent()
Definition: simplecodegenerator.cpp:76
Definition: umlattributelist.h:27
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
The base class for UML objects.
Definition: umlobject.h:75
Definition: operation.h:25
static const char description[]
Definition: main.cpp:37
Enum
Definition: basictypes.h:216
std::string Type
Definition: basictypes.h:385
Enum
Definition: basictypes.h:305
Enum
Definition: basictypes.h:59
Definition: visibility.py:1
QList< UMLAssociation * > UMLAssociationList
Definition: umlassociationlist.h:18
QList< UMLOperation * > UMLOperationList
Definition: umloperationlist.h:18