Added diagram type enum

This commit is contained in:
Bartek Kryza
2022-03-30 23:43:08 +02:00
parent a8b57e4eb1
commit 22483df105
8 changed files with 25 additions and 6 deletions

View File

@@ -36,6 +36,11 @@ const std::vector<type_safe::object_ref<const enum_>> diagram::enums() const
return enums_; return enums_;
} }
common::model::diagram_t diagram::type() const
{
return common::model::diagram_t::kClass;
}
bool diagram::has_class(const class_ &c) const bool diagram::has_class(const class_ &c) const
{ {
return std::any_of(classes_.cbegin(), classes_.cend(), return std::any_of(classes_.cbegin(), classes_.cend(),

View File

@@ -41,6 +41,8 @@ public:
diagram &operator=(const diagram &) = delete; diagram &operator=(const diagram &) = delete;
diagram &operator=(diagram &&) = default; diagram &operator=(diagram &&) = default;
common::model::diagram_t type() const override;
const std::vector<type_safe::object_ref<const class_>> classes() const; const std::vector<type_safe::object_ref<const class_>> classes() const;
const std::vector<type_safe::object_ref<const enum_>> enums() const; const std::vector<type_safe::object_ref<const enum_>> enums() const;

View File

@@ -34,6 +34,8 @@ public:
diagram(); diagram();
virtual ~diagram(); virtual ~diagram();
virtual diagram_t type() const = 0;
diagram(const diagram &) = delete; diagram(const diagram &) = delete;
diagram(diagram &&); diagram(diagram &&);
diagram &operator=(const diagram &) = delete; diagram &operator=(const diagram &) = delete;

View File

@@ -21,6 +21,8 @@
namespace clanguml::common::model { namespace clanguml::common::model {
enum class diagram_t { kClass, kSequence, kPackage };
enum class access_t { kPublic, kProtected, kPrivate }; enum class access_t { kPublic, kProtected, kPrivate };
enum class relationship_t { enum class relationship_t {

View File

@@ -23,6 +23,11 @@
namespace clanguml::package_diagram::model { namespace clanguml::package_diagram::model {
common::model::diagram_t diagram::type() const
{
return common::model::diagram_t::kPackage;
}
std::string diagram::to_alias(const std::string &full_name) const std::string diagram::to_alias(const std::string &full_name) const
{ {
LOG_DBG("Looking for alias for {}", full_name); LOG_DBG("Looking for alias for {}", full_name);

View File

@@ -38,6 +38,8 @@ public:
diagram &operator=(const diagram &) = delete; diagram &operator=(const diagram &) = delete;
diagram &operator=(diagram &&) = default; diagram &operator=(diagram &&) = default;
common::model::diagram_t type() const override;
std::string to_alias(const std::string &full_name) const; std::string to_alias(const std::string &full_name) const;
}; };
} }

View File

@@ -18,17 +18,16 @@
#include "diagram.h" #include "diagram.h"
#include <clang-c/CXCompilationDatabase.h>
#include <clang-c/Index.h>
#include <spdlog/spdlog.h>
#include <functional> #include <functional>
#include <memory> #include <memory>
#include <string>
#include <vector>
namespace clanguml::sequence_diagram::model { namespace clanguml::sequence_diagram::model {
common::model::diagram_t diagram::type() const
{
return common::model::diagram_t::kSequence;
}
std::string diagram::to_alias(const std::string &full_name) const std::string diagram::to_alias(const std::string &full_name) const
{ {
return full_name; return full_name;

View File

@@ -34,6 +34,8 @@ public:
diagram &operator=(const diagram &) = delete; diagram &operator=(const diagram &) = delete;
diagram &operator=(diagram &&) = default; diagram &operator=(diagram &&) = default;
common::model::diagram_t type() const override;
std::string to_alias(const std::string &full_name) const; std::string to_alias(const std::string &full_name) const;
bool started{false}; bool started{false};