rubyclassifiercodedocument.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef RUBYCLASSIFIERCODEDOCUMENT_H
00022 #define RUBYCLASSIFIERCODEDOCUMENT_H
00023
00024 #include <qstring.h>
00025 #include "../codeclassfieldlist.h"
00026 #include "../classifiercodedocument.h"
00027 #include "../classifier.h"
00028 #include "../hierarchicalcodeblock.h"
00029 #include "classifierinfo.h"
00030 #include "rubycodeclassfield.h"
00031 #include "rubycodeoperation.h"
00032
00033 class RubyClassDeclarationBlock;
00034 class RubyCodeGenerationPolicy;
00035
00041 class RubyClassifierCodeDocument : public ClassifierCodeDocument
00042 {
00043 Q_OBJECT
00044 public:
00045
00046
00047
00048
00049
00053 RubyClassifierCodeDocument (UMLClassifier * classifier);
00054
00058 virtual ~RubyClassifierCodeDocument ( );
00059
00064
00065
00066 QString scopeToRubyDecl(Uml::Visibility scope);
00067 QString capitalizeFirstLetter(const QString &string);
00068
00069
00070 RubyCodeGenerationPolicy * getRubyPolicy();
00071
00072 QString getRubyClassName (const QString &name);
00073
00074 QString getPath();
00075
00079 bool addCodeOperation (CodeOperation * op );
00080
00081 protected:
00082
00083
00084 void resetTextBlocks();
00085
00090 virtual void loadChildTextBlocksFromNode ( QDomElement & root);
00091
00092 void addOrUpdateCodeClassFieldMethodsInCodeBlock(CodeClassFieldList &list, RubyClassDeclarationBlock * codeBlock);
00093
00094 bool forceDoc ();
00095
00096 void updateContent();
00097
00098 private:
00099
00100 RubyClassDeclarationBlock * classDeclCodeBlock;
00101 HierarchicalCodeBlock * constructorBlock;
00102 HierarchicalCodeBlock * operationsBlock;
00103
00104 HierarchicalCodeBlock * publicBlock;
00105 HierarchicalCodeBlock * privateBlock;
00106 HierarchicalCodeBlock * protectedBlock;
00107
00108
00109
00110 HierarchicalCodeBlock * pubConstructorBlock;
00111 HierarchicalCodeBlock * protConstructorBlock;
00112 HierarchicalCodeBlock * privConstructorBlock;
00113
00114 HierarchicalCodeBlock * pubOperationsBlock;
00115 HierarchicalCodeBlock * privOperationsBlock;
00116 HierarchicalCodeBlock * protOperationsBlock;
00117
00118 ClassifierInfo * info;
00119 QString fileName;
00120 QString endLine;
00121 QString RubyClassName;
00122
00123 void init ( );
00124 RubyClassDeclarationBlock * getClassDecl();
00125
00126
00127 };
00128
00129 #endif // RUBYCLASSIFIERCODEDOCUMENT_H
This file is part of the documentation for umbrello Version 3.1.0.