umbrello 26.03.70-1a62d36 Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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

`#include <csharpwriter.h>`

Inheritance diagram for CSharpWriter:

## Public Member Functions

| CSharpWriter ()
virtual | ~CSharpWriter ()
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 ()
virtual void | writeClass (UMLClassifier *c)=0
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)
virtual void | writeCodeToFile ()
virtual void | writeCodeToFile (UMLClassifierList &list)
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)
virtual Uml::ProgrammingLanguage::Enum | language () const =0
CodeDocument * | findCodeDocumentByClassifier (UMLClassifier *classifier)
virtual QStringList | defaultDatatypes () const
virtual bool | isReservedKeyword (const QString &keyword)
virtual QStringList | reservedKeywords () const
virtual void | createDefaultStereotypes ()
virtual void | initFromParentDocument ()=0

## Private Member Functions

void | writeRealizationsRecursive (UMLClassifier *currentClass, UMLAssociationList *realizations, QTextStream &cs)
void | writeOperations (UMLClassifier *c, QTextStream &cs)
void | writeOperations (UMLOperationList opList, QTextStream &cs, bool interface=false, bool isOverride=false, bool generateErrorStub=false)
void | writeOverridesRecursive (UMLClassifierList *superclasses, QTextStream &cs)
void | writeAttributes (UMLClassifier *c, QTextStream &cs)
void | writeAttributes (UMLAttributeList &atList, QTextStream &cs)
void | writeAssociatedAttributes (UMLAssociationList &associated, UMLClassifier *c, QTextStream &cs)
void | writeAttribute (const QString &doc, Uml::Visibility::Enum visibility, bool isStatic, const QString &typeName, const QString &name, const QString &initialValue, bool asProperty, QTextStream &cs)
QString | makeLocalTypeName (UMLClassifierListItem *cl)

## Private Attributes

QString | m_container_indent
UMLPackageList | m_seenIncludes
int | m_unnamedRoles

## 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 CSharpWriter is a C# code generator for UMLClassifier objects Just call writeClass and feed it a UMLClassifier;

Author
  Ferenc Veres

## Constructor & Destructor Documentation

## ◆ CSharpWriter()

CSharpWriter::CSharpWriter | ( |  | ) |

## ◆ ~CSharpWriter()

CSharpWriter::~CSharpWriter | ( |  | ) |

virtual

## Member Function Documentation

## ◆ defaultDatatypes()

QStringList CSharpWriter::defaultDatatypes | ( |  | ) | const

virtual

Get list of predefined data types.

Reimplemented from CodeGenerator.

## ◆ language()

Uml::ProgrammingLanguage::Enum CSharpWriter::language | ( |  | ) | const

virtual

Returns "C#".

Implements CodeGenerator.

## ◆ makeLocalTypeName()

QString CSharpWriter::makeLocalTypeName | ( | UMLClassifierListItem * | cl | ) |

private

Find the type in used namespaces, if namespace found return short name, complete otherwise.

Parameters

  cl | Operation or Attribute to check type

## ◆ reservedKeywords()

QStringList CSharpWriter::reservedKeywords | ( |  | ) | const

virtual

Get list of reserved keywords.

Reimplemented from CodeGenerator.

## ◆ writeAssociatedAttributes()

void CSharpWriter::writeAssociatedAttributes | ( | UMLAssociationList & | associated,
|  | UMLClassifier * | c,
|  | QTextStream & | cs
| ) |  |

private

Write attributes from associated objects (compositions, aggregations).

Parameters

  associated | list of associated objects
  c | currently written class, to see association direction
  cs | output stream

## ◆ writeAttribute()

void CSharpWriter::writeAttribute | ( | const QString & | doc,
|  | Uml::Visibility::Enum | visibility,
|  | bool | isStatic,
|  | const QString & | typeName,
|  | const QString & | name,
|  | const QString & | initialValue,
|  | bool | asProperty,
|  | QTextStream & | cs
| ) |  |

private

Write a single attribute to the output stream.

Parameters

  doc | attribute documentation
  visibility | attribute visibility
  isStatic | static attribute
  typeName | class/type of the attribute
  name | name of the attribute
  initialValue | initial value given to the attribute at declaration
  asProperty | true writes as property (get/set), false writes single line variable
  cs | output stream

## ◆ writeAttributes() [1/2]

void CSharpWriter::writeAttributes | ( | UMLAttributeList & | atList,
|  | QTextStream & | cs
| ) |  |

private

Write a list of class attributes.

Parameters

  atList | the list of attributes
  cs | output stream

## ◆ writeAttributes() [2/2]

void CSharpWriter::writeAttributes | ( | UMLClassifier * | c,
|  | QTextStream & | cs
| ) |  |

private

Write all the attributes of a class.

Parameters

  c | the class we are generating code for
  cs | output stream

## ◆ writeClass()

void CSharpWriter::writeClass | ( | UMLClassifier * | c | ) |

virtual

Call this method to generate Php code for a UMLClassifier

Parameters

  c | the class you want to generate code for.

Implements SimpleCodeGenerator.

## ◆ writeOperations() [1/2]

void CSharpWriter::writeOperations | ( | UMLClassifier * | c,
|  | QTextStream & | cs
| ) |  |

private

Write all operations for a given class.

Parameters

  c | the classifier we are generating code for
  cs | output stream

## ◆ writeOperations() [2/2]

void CSharpWriter::writeOperations | ( | UMLOperationList | opList,
|  | QTextStream & | cs,
|  | bool | isInterface = `false`,
|  | bool | isOverride = `false`,
|  | bool | generateErrorStub = `false`
| ) |  |

private

Write a list of class operations.

Parameters

  opList | the list of operations
  cs | output stream
  isInterface | indicates if the operation is an interface member
  isOverride | implementation of an inherited abstract function
  generateErrorStub | flag whether an exception should be thrown

## ◆ writeOverridesRecursive()

void CSharpWriter::writeOverridesRecursive | ( | UMLClassifierList * | superclasses,
|  | QTextStream & | cs
| ) |  |

private

Write superclasses' abstract methods.

Parameters

  superclasses | List of superclasses to start recursing on
  cs | output stream

## ◆ writeRealizationsRecursive()

void CSharpWriter::writeRealizationsRecursive | ( | UMLClassifier * | currentClass,
|  | UMLAssociationList * | realizations,
|  | QTextStream & | cs
| ) |  |

private

Write realizations of a class and recurse to parent classes.

Parameters

  currentClass | class to start with
  realizations | realizations of this class
  cs | output stream

## Member Data Documentation

## ◆ m_container_indent

QString CSharpWriter::m_container_indent

private

Adds extra indenting if the class is in a container (namespace).

## ◆ m_seenIncludes

UMLPackageList CSharpWriter::m_seenIncludes

private

Collection of included namespaces, to skip them from variable types.

## ◆ m_unnamedRoles

int CSharpWriter::m_unnamedRoles

private

Counts associations without a role name for giving a default name.

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

- umbrello/codegenerators/csharp/csharpwriter.h
- umbrello/codegenerators/csharp/csharpwriter.cpp