umbrello API Documentation

dwriter.h

00001 
00002 /***************************************************************************
00003  *                                                                         *
00004  *   This program is free software; you can redistribute it and/or modify  *
00005  *   it under the terms of the GNU General Public License as published by  *
00006  *   the Free Software Foundation; either version 2 of the License, or     *
00007  *   (at your option) any later version.                                   *
00008  *                                                                         *
00009  *   copyright (C) 2007 Jari-Matti Mäkelä <jmjm@iki.fi>                    *
00010  *   Umbrello UML Modeller Authors <uml-devel@uml.sf.net>                  *
00011  ***************************************************************************/
00012 
00013 /***************************************************************************
00014     This is the "old" code generator that does not support code editing
00015     in the Modeller but uses significantly less file space because the
00016     source code is not replicated in the XMI file.
00017  ***************************************************************************/
00018 
00019 #ifndef DWRITER_H
00020 #define DWRITER_H
00021 
00022 #include "simplecodegenerator.h"
00023 #include "../umloperationlist.h"
00024 #include "../umlattributelist.h"
00025 #include "../umlassociationlist.h"
00026 
00027 class UMLOperation;
00028 
00035 class DWriter : public SimpleCodeGenerator {
00036 public:
00037 
00041     DWriter();
00042 
00046     virtual ~DWriter();
00047 
00052     virtual void writeClass(UMLClassifier *c);
00053 
00057     virtual Uml::Programming_Language getLanguage();
00058 
00062     QStringList defaultDatatypes();
00063 
00064 private:
00065 
00069     void writeModuleDecl(UMLClassifier *c, QTextStream &d);
00070 
00074     void writeModuleImports(UMLClassifier *c, QTextStream &d);
00075 
00080     void writeClassDecl(UMLClassifier *c, QTextStream &d);
00081 
00085     void writeConstructor(UMLClassifier *c, QTextStream &d);
00086 
00092     static bool compareDMethod(UMLOperation *op1, UMLOperation *op2);
00093 
00099     static bool dMethodInList(UMLOperation *umlOp, UMLOperationList &opl);
00100 
00109     void getSuperImplementedOperations(UMLClassifier *c, UMLOperationList &yetImplementedOpList ,UMLOperationList &toBeImplementedOpList, bool noClassInPath = true);
00110 
00116     void getInterfacesOperationsToBeImplemented(UMLClassifier *c, UMLOperationList &opl);
00117 
00123     void writeOperations(UMLClassifier *c, QTextStream &j);
00124 
00130     void writeOperations(UMLOperationList &list, QTextStream &j);
00131 
00137     void writeAttributes(UMLClassifier *c, QTextStream &j);
00138 
00144     void writeProtectionMod(Uml::Visibility visibility, QTextStream &d);
00145     
00153     void writeAttributeDecl(Uml::Visibility visibility, UMLAttributeList &atlist, QTextStream &d);
00154 
00162     void writeAttributeDecls(UMLAttributeList &atpub, UMLAttributeList &atprot,
00163                              UMLAttributeList &atpriv, QTextStream &d );
00164 
00168     void writeAssociationDecls(UMLAssociationList associations, Uml::IDType id, QTextStream &d);
00169 
00173     void writeAssociationRoleDecl(QString fieldClassName, QString roleName, QString multi,
00174                                   QString doc, Uml::Visibility visib, QTextStream &d);
00175 
00179     void writeAttributeMethods(UMLAttributeList &atpub, Uml::Visibility visibility, QTextStream &d);
00180 
00184     void writeAssociationMethods(UMLAssociationList associations, UMLClassifier *thisClass,
00185                                  QTextStream &d);
00186 
00192     void writeAssociationRoleMethod(QString fieldClassName, QString roleName, QString multi,
00193                                     QString description, Uml::Visibility visib, Uml::Changeability_Type change,
00194                                     QTextStream &d);
00195 
00199     void writeSingleAttributeAccessorMethods(QString fieldClassName, QString fieldVarName,
00200             QString fieldName, QString description,
00201             Uml::Visibility visibility, Uml::Changeability_Type change,
00202             bool isFinal, QTextStream &d);
00203 
00207     void writeVectorAttributeAccessorMethods(QString fieldClassName, QString fieldVarName,
00208             QString fieldName, QString description,
00209             Uml::Visibility visibility, Uml::Changeability_Type change,
00210             QTextStream &d);
00211 
00215     void writeComment(const QString &text, const QString &indent, QTextStream &d, bool dDocStyle=false);
00216 
00220     void writeDocumentation(QString header, QString body, QString end, QString indent, QTextStream &d);
00221 
00225     QString getUMLObjectName(UMLObject *obj);
00226 
00230     QString capitaliseFirstLetter(QString string);
00231     
00235     QString deCapitaliseFirstLetter(QString string);
00236 
00240     QString pluralize(QString string);
00241  
00245     QString unPluralize(QString string);
00246     
00250     QString fixTypeName(const QString& string);
00251 
00255     QString fixInitialStringDeclValue(QString value, QString type);
00256 
00260     void writeBlankLine(QTextStream& d);
00261 
00265     QString scopeToDDecl(Uml::Visibility scope);
00266 
00270     QString startline;
00271 
00275     bool isInterface;
00276 
00277 };
00278 
00279 
00280 #endif // DWRITER_H
00281 
KDE Logo
This file is part of the documentation for umbrello Version 3.1.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Jun 26 08:07:56 2007 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003