You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.2 KiB
122 lines
3.2 KiB
/***************************************************************************
|
|
* *
|
|
* 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. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
/* This code generated by:
|
|
* Author : thomas
|
|
* Date : Sep Mon 1 2003
|
|
*
|
|
* copyright (C) 2004
|
|
* Umbrello UML Modeller Authors <uml-devel@uml.sf.net>
|
|
*/
|
|
|
|
|
|
#ifndef SIMPLECODEGENERATOR_H
|
|
#define SIMPLECODEGENERATOR_H
|
|
|
|
#include <tqstringlist.h>
|
|
#include <tqstring.h>
|
|
#include <tqmap.h>
|
|
|
|
#include "../codegenerator.h"
|
|
#include "../umlnamespace.h"
|
|
|
|
class UMLDoc;
|
|
|
|
/**
|
|
* A simple code generator interface designed to work with
|
|
* the existing codewriters.
|
|
*/
|
|
class SimpleCodeGenerator : public CodeGenerator
|
|
{
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
public:
|
|
|
|
// Constructors/Destructors
|
|
//
|
|
|
|
/**
|
|
* Empty Constructor
|
|
*/
|
|
SimpleCodeGenerator (bool createDirHierarchyForPackages = true);
|
|
|
|
/**
|
|
* Empty Destructor
|
|
*/
|
|
virtual ~SimpleCodeGenerator ( );
|
|
|
|
// Public attribute accessor methods
|
|
//
|
|
|
|
void writeCodeToFile ( UMLClassifierList & concepts);
|
|
void writeCodeToFile ( );
|
|
|
|
/**
|
|
* call this method to generate code for a UMLClassifier
|
|
* @param c the class you want to generate code for.
|
|
*/
|
|
virtual void writeClass(UMLClassifier *c) = 0;
|
|
|
|
/**
|
|
* This is implemented only because we HAVE to.
|
|
* @return ClassifierCodeDocument
|
|
* @param classifier
|
|
*/
|
|
CodeDocument * newClassifierCodeDocument (UMLClassifier * classifier);
|
|
|
|
protected:
|
|
|
|
// compatability methods..
|
|
TQString findFileName(UMLPackage* concept, const TQString &ext);
|
|
TQString overwritableName(UMLPackage* concept, const TQString &name, const TQString &ext);
|
|
bool hasDefaultValueAttr(UMLClassifier *c);
|
|
bool hasAbstractOps(UMLClassifier *c);
|
|
|
|
/**
|
|
* Returns the current indent string based on m_indentLevel and m_indentation.
|
|
*/
|
|
TQString getIndent ();
|
|
|
|
/**
|
|
* Maps UMLObjects to filenames. Used for finding out which file
|
|
* each class was written to.
|
|
*/
|
|
TQMap<UMLPackage*,TQString> m_fileMap;
|
|
|
|
// the tqparent document
|
|
UMLDoc *m_doc;
|
|
|
|
/**
|
|
* For some code generators, it does not make much sense to create a
|
|
* directory for each package because that would lead to a rather
|
|
* sparsely populated directory tree (maximum of just one source file
|
|
* per directory.)
|
|
*/
|
|
bool m_createDirHierarchyForPackages;
|
|
|
|
/* Old Attributes writers will look for */
|
|
TQString m_indentation;
|
|
int m_indentLevel;
|
|
TQString m_endl;
|
|
|
|
// override tqparent method..we need special handling
|
|
void initFromParentDocument( );
|
|
|
|
private:
|
|
|
|
void initFields ( UMLDoc * doc) ;
|
|
|
|
public slots:
|
|
|
|
void syncCodeToDocument ( );
|
|
|
|
};
|
|
|
|
#endif // SIMPLECODEGENERATOR_H
|