tclwriter.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef TCLWRITER_H
00020 #define TCLWRITER_H
00021
00022 #include <qstringlist.h>
00023 #include "simplecodegenerator.h"
00024 #include "../umloperationlist.h"
00025 #include "../umlattributelist.h"
00026 #include "../umlassociationlist.h"
00027
00028 class QFile;
00029 class QTextStream;
00030 class ClassifierInfo;
00031
00038 class TclWriter : public SimpleCodeGenerator
00039 {
00040 public:
00041
00045 TclWriter();
00046
00050 virtual ~ TclWriter();
00051
00056 virtual void writeClass(UMLClassifier * c);
00057
00061 virtual Uml::Programming_Language getLanguage();
00062
00066 virtual const QStringList reservedKeywords() const;
00067
00068 private:
00072 QTextStream * mStream;
00076 void writeHeaderFile(UMLClassifier * c, QFile & file);
00077
00081 void writeSourceFile(UMLClassifier * c, QFile & file);
00082
00086 void writeCode(const QString &text);
00087
00091 void writeComm(const QString &text);
00092
00096 void writeDocu(const QString &text);
00097
00098 void writeConstructorDecl();
00099
00100 void writeDestructorDecl();
00101
00105 ClassifierInfo *classifierInfo;
00106 QString mNamespace;
00107 QString mClass;
00108 QString mClassGlobal;
00109
00116 void writeAttributeDecl(Uml::Visibility visibility, bool writeStatic);
00117
00118 void writeAssociationIncl(UMLAssociationList list,
00119 Uml::IDType myId, const QString &type);
00123 void writeAssociationDecl(UMLAssociationList associations,
00124 Uml::Visibility permit, Uml::IDType id,
00125 const QString &type);
00126
00130 void writeAssociationRoleDecl(const QString &fieldClassName,
00131 const QString &roleName, const QString &multi, const QString &doc, const QString &docname);
00132
00136 void writeInitAttributeHeader();
00137 void writeInitAttributeSource();
00138
00139 void writeConstructorHeader();
00140 void writeConstructorSource();
00141 void writeDestructorHeader();
00142 void writeDestructorSource();
00143 void writeOperationHeader(UMLClassifier * c,
00144 Uml::Visibility permitScope);
00145 void writeOperationSource(UMLClassifier * c,
00146 Uml::Visibility permitScope);
00147 void writeAttributeSource();
00148 void writeAssociationSource(UMLAssociationList associations,
00149 Uml::IDType id);
00150 void writeAssociationRoleSource(const QString &fieldClassName,
00151 const QString &roleName,
00152 const QString &multi);
00153 void writeUse(UMLClassifier * c);
00154
00155
00156
00160 QString getUMLObjectName(UMLObject * obj);
00161
00165 QString fixTypeName(const QString &string);
00166
00167 QStringList ObjectFieldVariables;
00168 QStringList VectorFieldVariables;
00169
00170 };
00171
00172
00173
00174 #endif // TCLWRITER_H
This file is part of the documentation for umbrello Version 3.1.0.