umbrello: PythonWriter Class Reference

umbrello 25.04.0 Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology

Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
PythonWriter Class Reference

`#include <pythonwriter.h>`

Inheritance diagram for PythonWriter:

## Public Member Functions
| PythonWriter ()
virtual | ~PythonWriter ()
virtual void | writeClass (UMLClassifier *c)
virtual Uml::ProgrammingLanguage::Enum | language () const
virtual QStringList | reservedKeywords () const
QStringList | defaultDatatypes () const
Public Member Functions inherited from SimpleCodeGenerator
| SimpleCodeGenerator (bool createDirHierarchyForPackages=true)
virtual | ~SimpleCodeGenerator ()
void | writeCodeToFile (UMLClassifierList &concepts)
void | writeCodeToFile ()
Public Member Functions inherited from CodeGenerator
| CodeGenerator ()
virtual | ~CodeGenerator ()
bool | addCodeDocument (CodeDocument *add_object)
bool | removeCodeDocument (CodeDocument *remove_object)
CodeDocumentList * | getCodeDocumentList ()
QString | getUniqueID (CodeDocument *codeDoc)
virtual void | saveToXMI (QXmlStreamWriter &writer)
CodeDocument * | findCodeDocumentByID (const QString &id)
void | setIncludeHeadings (bool i)
bool | includeHeadings () const
void | setHeadingFileDir (const QString &)
QString | headingFileDir () const
void | setForceDoc (bool f)
bool | forceDoc () const
void | setSectionCommentPolicy (CodeGenerationPolicy::WriteSectionCommentsPolicy f)
bool | forceSections () const
virtual QString | getHeadingFile (const QString &file)
QString | findFileName (CodeDocument *codeDocument)
virtual void | loadFromXMI (QDomElement &element)
CodeDocument * | findCodeDocumentByClassifier (UMLClassifier *classifier)
virtual bool | isReservedKeyword (const QString &keyword)
virtual void | createDefaultStereotypes ()

## Private Member Functions
void | writeAttributes (UMLAttributeList atList, QTextStream &py)
void | writeOperations (UMLClassifier *c, QTextStream &h)
void | writeOperations (const QString &classname, UMLOperationList &opList, QTextStream &h, Uml::Visibility::Enum access)
QString | findIncludeFromType (const QString &string)

## Static Private Member Functions
static bool | hasContainer (const QString &string)
static QString | fixTypeName (const QString &string)

## Private Attributes
bool | m_bNeedPass
| True as long as no "pass" has been written.

## Additional Inherited Members
Public Types inherited from CodeGenerator
enum | GenerationState { Generated , Failed , Skipped }
Public Slots inherited from SimpleCodeGenerator
virtual void | syncCodeToDocument ()
Public Slots inherited from CodeGenerator
virtual void | syncCodeToDocument ()
Signals inherited from CodeGenerator
void | codeGenerated (UMLClassifier *classifier, bool generated)
void | codeGenerated (UMLClassifier *classifier, CodeGenerator::GenerationState result)
void | showGeneratedFile (const QString &filename)
Static Public Member Functions inherited from CodeGenerator
static QString | cleanName (const QString &name)
static QString | formatDoc (const QString &text, const QString &linePrefix=QStringLiteral(" *"), int lineWidth=80)
static QString | formatFullDocBlock (const QString &text, const QString &blockHeader=QStringLiteral("/* "), const QString &blockFooter=QStringLiteral(" */"), const QString &linePrefix=QStringLiteral(" *"), int lineWidth=80)
static QString | formatSourceCode (const QString &code, const QString &indentation)
static void | findObjectsRelated (UMLClassifier *c, UMLPackageList &cList)
Protected Member Functions inherited from SimpleCodeGenerator
QString | findFileName (UMLPackage *classifier, const QString &ext)
QString | overwritableName (UMLPackage *classifier, const QString &name, const QString &ext)
bool | hasDefaultValueAttr (UMLClassifier *c)
bool | hasAbstractOps (UMLClassifier *c)
QString | indent ()
virtual void | initFromParentDocument ()
Protected Member Functions inherited from CodeGenerator
QString | overwritableName (const QString &name, const QString &extension)
bool | openFile (QFile &file, const QString &name)
void | writeListedCodeDocsToFile (CodeDocumentList *docs)
virtual void | finalizeRun ()
Protected Attributes inherited from SimpleCodeGenerator
QString | className_
QString | fileName_
QMap< UMLPackage *, QString > | m_fileMap
bool | m_createDirHierarchyForPackages
QString | m_indentation
int | m_indentLevel
QString | m_endl
Protected Attributes inherited from CodeGenerator
QHash< QString, CodeDocument * > | m_codeDocumentDictionary
bool | m_applyToAllRemaining
UMLDoc * | m_document

## Detailed Description

Class PythonWriter is a python code generator for UMLClassifier objects Just call writeClass and feed it a UMLClassifier.

NOTE: There is a unit test available for this class. Please, use and adapt it when necessary.

## Constructor & Destructor Documentation

## ◆ PythonWriter()

PythonWriter::PythonWriter | ( |  | ) |

## ◆ ~PythonWriter()

PythonWriter::~PythonWriter | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ defaultDatatypes()

QStringList PythonWriter::defaultDatatypes | ( |  | ) | const
| virtual

Reimplementation of method from class CodeGenerator

Reimplemented from CodeGenerator.

## ◆ findIncludeFromType()

QString PythonWriter::findIncludeFromType | ( | const QString & | string | ) |
| private

## ◆ fixTypeName()

QString PythonWriter::fixTypeName | ( | const QString & | string | ) |
| staticprivate

Fix types to be compatible with Python

Parameters

  string | type as defined in model

Returns
  fixed type

## ◆ hasContainer()

bool PythonWriter::hasContainer | ( | const QString & | string | ) |
| staticprivate

Check if type is a container

Parameters

  string | type that will be used

Returns
  true if is a container

## ◆ language()

Uml::ProgrammingLanguage::Enum PythonWriter::language | ( |  | ) | const
| virtual

Return the programming language identifier.

Returns
  programming language id

Implements CodeGenerator.

## ◆ reservedKeywords()

QStringList PythonWriter::reservedKeywords | ( |  | ) | const
| virtual

Get list of reserved keywords.

Returns
  the list of reserved keywords

Reimplemented from CodeGenerator.

## ◆ writeAttributes()

void PythonWriter::writeAttributes | ( | UMLAttributeList | atList,
|  | QTextStream & | py )
| private

Write all attributes for a given class.

Parameters

  atList | the attribute list we are generating code for
  py | output stream for the header file

## ◆ writeClass()

void PythonWriter::writeClass | ( | UMLClassifier * | c | ) |
| virtual

Call this method to generate C++ code for a UMLClassifier.

Parameters

  c | the class you want to generate code for

Implements SimpleCodeGenerator.

## ◆ writeOperations() [1/2]

void PythonWriter::writeOperations | ( | const QString & | classname,
|  | UMLOperationList & | opList,
|  | QTextStream & | h,
|  | Uml::Visibility::Enum | access )
| private

Write a list of class operations.

Parameters

  classname | the name of the class
  opList | the list of operations
  h | output stream for the header file
  access | visibility identifier

## ◆ writeOperations() [2/2]

void PythonWriter::writeOperations | ( | UMLClassifier * | c,
|  | QTextStream & | h )
| private

Write all operations for a given class.

Parameters

  c | the classifier we are generating code for
  h | output stream for the header file

## Member Data Documentation

## ◆ m_bNeedPass

bool PythonWriter::m_bNeedPass
| private

True as long as no "pass" has been written.

The documentation for this class was generated from the following files:

- umbrello/codegenerators/python/pythonwriter.h
- umbrello/codegenerators/python/pythonwriter.cpp