summaryrefslogtreecommitdiffstats
path: root/umbrello/umbrello/codegenerators/rubyclassifiercodedocument.h
diff options
context:
space:
mode:
Diffstat (limited to 'umbrello/umbrello/codegenerators/rubyclassifiercodedocument.h')
-rw-r--r--umbrello/umbrello/codegenerators/rubyclassifiercodedocument.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/umbrello/umbrello/codegenerators/rubyclassifiercodedocument.h b/umbrello/umbrello/codegenerators/rubyclassifiercodedocument.h
new file mode 100644
index 00000000..c5f89d07
--- /dev/null
+++ b/umbrello/umbrello/codegenerators/rubyclassifiercodedocument.h
@@ -0,0 +1,126 @@
+/***************************************************************************
+ rubyclassdeclarationblock.cpp
+ Derived from the Java code generator by thomas
+
+ begin : Thur Jul 21 2005
+ author : Richard Dale
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * copyright (C) 2006-2007 *
+ * Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
+ ***************************************************************************/
+
+
+#ifndef RUBYCLASSIFIERCODEDOCUMENT_H
+#define RUBYCLASSIFIERCODEDOCUMENT_H
+
+#include <qstring.h>
+
+#include "../codeclassfieldlist.h"
+#include "../classifiercodedocument.h"
+#include "../classifier.h"
+#include "../hierarchicalcodeblock.h"
+#include "classifierinfo.h"
+#include "rubycodeclassfield.h"
+#include "rubycodeoperation.h"
+
+class RubyClassDeclarationBlock;
+class RubyCodeGenerationPolicy;
+
+/**
+ * class RubyClassifierCodeDocument
+ * A Ruby UMLClassifier Code Document.
+ */
+
+class RubyClassifierCodeDocument : public ClassifierCodeDocument
+{
+ Q_OBJECT
+public:
+
+ // Constructors/Destructors
+ //
+
+
+ /**
+ * Constructor
+ */
+ RubyClassifierCodeDocument (UMLClassifier * classifier);
+
+ /**
+ * Empty Destructor
+ */
+ virtual ~RubyClassifierCodeDocument ( );
+
+ /**
+ * Get the dialog widget which allows user interaction with the object parameters.
+ * @return CodeDocumentDialog
+ */
+ //CodeDocumentDialog getDialog ( );
+
+ QString scopeToRubyDecl(Uml::Visibility scope);
+
+ // Make it easier on ourselves
+ RubyCodeGenerationPolicy * getRubyPolicy();
+
+ QString getRubyClassName (const QString &name);
+
+ QString getPath();
+
+ /** add a code operation to this ruby classifier code document.
+ * @return bool which is true IF the code operation was added successfully
+ */
+ bool addCodeOperation (CodeOperation * op );
+
+protected:
+
+ // reset/clear our inventory of textblocks in this document
+ void resetTextBlocks();
+
+ /**
+ * need to overwrite this for ruby since we need to pick up the
+ * ruby class declaration block.
+ */
+ virtual void loadChildTextBlocksFromNode ( QDomElement & root);
+
+ void addOrUpdateCodeClassFieldMethodsInCodeBlock(CodeClassFieldList &list, RubyClassDeclarationBlock * codeBlock);
+
+ bool forceDoc ();
+
+ void updateContent();
+
+private:
+
+ RubyClassDeclarationBlock * classDeclCodeBlock;
+ HierarchicalCodeBlock * constructorBlock;
+ HierarchicalCodeBlock * operationsBlock;
+
+ HierarchicalCodeBlock * publicBlock;
+ HierarchicalCodeBlock * privateBlock;
+ HierarchicalCodeBlock * protectedBlock;
+
+// HierarchicalCodeBlock * namespaceBlock;
+
+ HierarchicalCodeBlock * pubConstructorBlock;
+ HierarchicalCodeBlock * protConstructorBlock;
+ HierarchicalCodeBlock * privConstructorBlock;
+
+ HierarchicalCodeBlock * pubOperationsBlock;
+ HierarchicalCodeBlock * privOperationsBlock;
+ HierarchicalCodeBlock * protOperationsBlock;
+
+ ClassifierInfo * info;
+
+ void init ( );
+ RubyClassDeclarationBlock * getClassDecl();
+
+
+};
+
+#endif // RUBYCLASSIFIERCODEDOCUMENT_H