umbrello  2.31.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
csharpimport.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2011-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef CSHARPIMPORT_H
12 #define CSHARPIMPORT_H
13 
14 #include "nativeimportbase.h"
15 
16 class UMLObject;
17 
25 {
26 public:
27  explicit CSharpImport(CodeImpThread* thread = 0);
28  virtual ~CSharpImport();
29 
30 protected:
31  void initVars();
32 
33  bool parseStmt();
34 
35  void fillSource(const QString& word);
36 
37  bool parseFile(const QString& filename);
38 
39  UMLObject* resolveClass (const QString& className);
40 
41  void spawnImport(const QString& file);
42 
43  QString joinTypename(const QString& typeName);
44 
45  bool m_isStatic;
47  QString m_currentPackage;
48  QStringList m_imports;
50 
55  static QStringList s_filesAlreadyParsed;
56 
61  static int s_parseDepth;
62 
63 private:
64  static UMLObject* findObject(const QString& name, UMLPackage *parentPkg);
65 
66  bool parseUsingDirectives();
67  bool parseGlobalAttributes();
69  bool parseAttributes();
70 
71  // type-declaration
72  bool parseClassDeclaration(const QString& keyword);
74  // bool parseInterfaceDeclaration();
75  bool parseEnumDeclaration();
77 
78  bool isTypeDeclaration(const QString& keyword);
79  bool isClassModifier(const QString& keyword);
80  bool isCommonModifier(const QString& keyword);
81 
82 };
83 
84 #endif
NativeImportBase::scopeIndex
int scopeIndex()
Definition: nativeimportbase.cpp:176
CSharpImport::parseUsingDirectives
bool parseUsingDirectives()
Definition: csharpimport.cpp:502
UMLObject::asUMLClassifier
UMLClassifier * asUMLClassifier()
Definition: umlobject.cpp:1308
CSharpImport::m_currentFileName
QString m_currentFileName
current filename being parsed
Definition: csharpimport.h:46
Import_Utils::insertAttribute
UMLAttribute * insertAttribute(UMLClassifier *owner, Uml::Visibility::Enum scope, const QString &name, UMLClassifier *attrType, const QString &comment, bool isStatic)
Definition: import_utils.cpp:426
umlpackagelist.h
CSharpImport::m_imports
QStringList m_imports
imports included in the current file
Definition: csharpimport.h:48
CSharpImport::s_parseDepth
static int s_parseDepth
Definition: csharpimport.h:61
UMLObject::ObjectType
ObjectType
Definition: umlobject.h:80
Uml::Visibility::Implementation
@ Implementation
Definition: basictypes.h:80
UMLClassifier::isInterface
bool isInterface() const
Definition: classifier.cpp:118
ClassImport::log
void log(const QString &file, const QString &text)
Definition: classimport.cpp:133
CSharpImport::parseEnumDeclaration
bool parseEnumDeclaration()
Definition: csharpimport.cpp:622
CSharpImport::m_currentPackage
QString m_currentPackage
current package of the file being parsed
Definition: csharpimport.h:47
NativeImportBase::m_currentAccess
Uml::Visibility::Enum m_currentAccess
current access (public/protected/private)
Definition: nativeimportbase.h:99
UMLObject::name
QString name() const
Definition: umlobject.cpp:211
UMLObject::setStatic
void setStatic(bool bStatic)
Definition: umlobject.cpp:374
CSharpImport::fillSource
void fillSource(const QString &word)
Definition: csharpimport.cpp:93
CSharpImport::parseStmt
bool parseStmt()
Definition: csharpimport.cpp:263
UMLObject::ot_Class
@ ot_Class
Definition: umlobject.h:89
operation.h
UMLObject::setVisibilityCmd
void setVisibilityCmd(Uml::Visibility::Enum visibility)
Definition: umlobject.cpp:486
Import_Utils::createGeneralization
UMLAssociation * createGeneralization(UMLClassifier *child, UMLClassifier *parent)
Definition: import_utils.cpp:603
CSharpImport
Definition: csharpimport.h:25
CSharpImport::resolveClass
UMLObject * resolveClass(const QString &className)
Definition: csharpimport.cpp:149
UMLObject::ot_Interface
@ ot_Interface
Definition: umlobject.h:86
CSharpImport::~CSharpImport
virtual ~CSharpImport()
Definition: csharpimport.cpp:50
Import_Utils::createUMLObject
UMLObject * createUMLObject(UMLObject::ObjectType type, const QString &inName, UMLPackage *parentPkg, const QString &comment, const QString &stereotype, bool searchInParentPackageOnly, bool remapParent)
Definition: import_utils.cpp:178
CSharpImport::findObject
static UMLObject * findObject(const QString &name, UMLPackage *parentPkg)
Definition: csharpimport.cpp:138
CSharpImport::parseDelegateDeclaration
bool parseDelegateDeclaration()
Definition: csharpimport.cpp:677
CSharpImport::isClassModifier
bool isClassModifier(const QString &keyword)
Definition: csharpimport.cpp:575
NativeImportBase::m_klass
UMLClassifier * m_klass
class currently being processed
Definition: nativeimportbase.h:98
UMLObject::ot_Package
@ ot_Package
Definition: umlobject.h:85
Import_Utils::insertMethod
void insertMethod(UMLClassifier *klass, UMLOperation *&op, Uml::Visibility::Enum scope, const QString &type, bool isStatic, bool isAbstract, bool isFriend, bool isConstructor, bool isDestructor, const QString &comment)
Definition: import_utils.cpp:498
CSharpImport::CSharpImport
CSharpImport(CodeImpThread *thread=0)
Definition: csharpimport.cpp:39
UMLObject::ot_UMLObject
@ ot_UMLObject
Definition: umlobject.h:82
CSharpImport::spawnImport
void spawnImport(const QString &file)
Definition: csharpimport.cpp:117
UMLObject
The base class for UML objects.
Definition: umlobject.h:74
NativeImportBase::setMultiLineComment
void setMultiLineComment(const QString &intro, const QString &end)
Definition: nativeimportbase.cpp:59
import_utils.h
UMLObject::asUMLEnum
UMLEnum * asUMLEnum()
Definition: umlobject.cpp:1315
CSharpImport::s_filesAlreadyParsed
static QStringList s_filesAlreadyParsed
Definition: csharpimport.h:55
CSharpImport::parseAttributes
bool parseAttributes()
Definition: csharpimport.cpp:544
csharpimport.h
CSharpImport::m_isStatic
bool m_isStatic
static flag for the member var or method
Definition: csharpimport.h:45
NativeImportBase::currentScope
UMLPackage * currentScope()
Definition: nativeimportbase.cpp:165
NativeImportBase::skipStmt
void skipStmt(const QString &until=QLatin1String(";"))
Definition: nativeimportbase.cpp:82
Uml::Visibility::Public
@ Public
Definition: basictypes.h:77
Import_Utils::remapUMLEnum
UMLEnum * remapUMLEnum(UMLObject *ns, UMLPackage *currentScope)
Definition: import_utils.cpp:738
NativeImportBase::skipToClosing
bool skipToClosing(QChar opener)
Definition: nativeimportbase.cpp:97
CSharpImport::parseNamespaceMemberDeclarations
bool parseNamespaceMemberDeclarations()
Definition: csharpimport.cpp:531
NativeImportBase::m_isAbstract
bool m_isAbstract
accumulator for abstractness
Definition: nativeimportbase.h:107
attribute.h
NativeImportBase::popScope
UMLPackage * popScope()
Definition: nativeimportbase.cpp:153
NativeImportBase::m_source
QStringList m_source
the scanned lexemes
Definition: nativeimportbase.h:95
UMLObject::fullyQualifiedName
virtual QString fullyQualifiedName(const QString &separator=QString(), bool includeRoot=false) const
Definition: umlobject.cpp:227
UMLClassifier::setBaseType
void setBaseType(UMLObject::ObjectType ot)
Definition: classifier.cpp:83
CSharpImport::parseStructDeclaration
bool parseStructDeclaration()
Definition: csharpimport.cpp:666
Import_Utils::addMethodParameter
UMLAttribute * addMethodParameter(UMLOperation *method, const QString &type, const QString &name)
Definition: import_utils.cpp:572
uDebug
#define uDebug()
Definition: debug_utils.h:122
NativeImportBase::advance
virtual QString advance()
Definition: nativeimportbase.cpp:198
CSharpImport::initVars
void initVars()
Definition: csharpimport.cpp:57
NativeImportBase::m_comment
QString m_comment
intermediate accumulator for comment text
Definition: nativeimportbase.h:100
CodeImpThread
Definition: codeimpthread.h:36
UMLObject::setAbstract
void setAbstract(bool bAbstract)
Definition: umlobject.cpp:356
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:269
Import_Utils::makeOperation
UMLOperation * makeOperation(UMLClassifier *parent, const QString &name)
Definition: import_utils.cpp:416
UMLDoc
Definition: umldoc.h:75
NativeImportBase
Base class for native implementations of language import.
Definition: nativeimportbase.h:45
CSharpImport::joinTypename
QString joinTypename(const QString &typeName)
Definition: csharpimport.cpp:68
Uml
Definition: basictypes.cpp:37
CSharpImport::isCommonModifier
bool isCommonModifier(const QString &keyword)
Definition: csharpimport.cpp:595
nativeimportbase.h
NativeImportBase::parseFile
virtual bool parseFile(const QString &filename)
Definition: nativeimportbase.cpp:417
Uml::Visibility::Enum
Enum
Definition: basictypes.h:76
ClassImport::importFiles
bool importFiles(const QStringList &fileNames)
Definition: classimport.cpp:92
Import_Utils::addEnumLiteral
void addEnumLiteral(UMLEnum *enumType, const QString &literal, const QString &comment, const QString &value)
Definition: import_utils.cpp:593
UMLDoc::findUMLObject
UMLObject * findUMLObject(const QString &name, UMLObject::ObjectType type=UMLObject::ot_UMLObject, UMLObject *currentObj=0)
Definition: umldoc.cpp:1065
CSharpImport::parseFile
bool parseFile(const QString &filename)
Definition: csharpimport.cpp:233
classifier.h
uError
#define uError()
Definition: debug_utils.h:123
UMLOperation
Definition: operation.h:25
UMLObject::ot_Enum
@ ot_Enum
Definition: umlobject.h:88
uml.h
debug_utils.h
NativeImportBase::pushScope
void pushScope(UMLPackage *p)
Definition: nativeimportbase.cpp:143
NativeImportBase::split
virtual QStringList split(const QString &line)
Definition: nativeimportbase.cpp:324
CSharpImport::parseGlobalAttributes
bool parseGlobalAttributes()
Definition: csharpimport.cpp:521
UMLObject::asUMLPackage
UMLPackage * asUMLPackage()
Definition: umlobject.cpp:1324
Uml::Visibility::Private
@ Private
Definition: basictypes.h:78
NativeImportBase::m_srcIndex
int m_srcIndex
used for indexing m_source
Definition: nativeimportbase.h:96
package.h
Uml::Visibility::Protected
@ Protected
Definition: basictypes.h:79
CSharpImport::parseClassDeclaration
bool parseClassDeclaration(const QString &keyword)
Definition: csharpimport.cpp:691
CSharpImport::m_defaultCurrentAccess
Uml::Visibility::Enum m_defaultCurrentAccess
current visibility for when the visibility is absent
Definition: csharpimport.h:49
codeimpthread.h
CSharpImport::isTypeDeclaration
bool isTypeDeclaration(const QString &keyword)
Definition: csharpimport.cpp:556
UMLEnum
Non-graphical Information for an Enum.
Definition: enum.h:29
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1055
umldoc.h
UMLClassifier::addTemplate
UMLTemplate * addTemplate(const QString &name, Uml::ID::Type id=Uml::ID::None)
Definition: classifier.cpp:1024
UMLPackage
Non-graphical information for a Package.
Definition: package.h:33
enum.h