retdec
dotnet_type.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_FILEFORMAT_TYPES_DOTNET_TYPES_DOTNET_TYPE_H
8 #define RETDEC_FILEFORMAT_TYPES_DOTNET_TYPES_DOTNET_TYPE_H
9 
10 #include <cstdint>
11 #include <string>
12 
13 namespace retdec {
14 namespace fileformat {
15 
20 {
21  Public,
22  Protected,
23  Private
24 };
25 
30 {
31  protected:
32  std::string name;
33  std::string nameSpace;
35  public:
36  virtual ~DotnetType() = default;
37 
40  std::string getName() const { return name; }
41  const std::string& getNameSpace() const { return nameSpace; }
43  std::string getFullyQualifiedName() const { return nameSpace.empty() ? name : nameSpace + '.' + name; }
44  const std::string& getVisibilityString() const;
46 
49  void setName(const std::string& typeName) { name = typeName; }
50  void setNameSpace(const std::string& typeNameSpace) { nameSpace = typeNameSpace; }
51  void setVisibility(DotnetTypeVisibility typeVisibility) { visibility = typeVisibility; }
53 
56  bool isPublic() const { return visibility == DotnetTypeVisibility::Public; }
60 };
61 
62 } // namespace fileformat
63 } // namespace retdec
64 
65 #endif
Definition: dotnet_type.h:30
virtual ~DotnetType()=default
std::string name
Definition: dotnet_type.h:32
const std::string & getNameSpace() const
Definition: dotnet_type.h:41
DotnetTypeVisibility getVisibility() const
Definition: dotnet_type.h:42
bool isPublic() const
Definition: dotnet_type.h:56
DotnetTypeVisibility visibility
Definition: dotnet_type.h:34
void setVisibility(DotnetTypeVisibility typeVisibility)
Definition: dotnet_type.h:51
void setNameSpace(const std::string &typeNameSpace)
Definition: dotnet_type.h:50
std::string getName() const
Definition: dotnet_type.h:40
bool isProtected() const
Definition: dotnet_type.h:57
bool isPrivate() const
Definition: dotnet_type.h:58
std::string nameSpace
Definition: dotnet_type.h:33
void setName(const std::string &typeName)
Definition: dotnet_type.h:49
const std::string & getVisibilityString() const
Definition: dotnet_type.cpp:27
std::string getFullyQualifiedName() const
Definition: dotnet_type.h:43
DotnetTypeVisibility
Definition: dotnet_type.h:20
Definition: archive_wrapper.h:19