diff --git a/src/class_diagram/model/diagram.cc b/src/class_diagram/model/diagram.cc index 5d251664..26ba79e8 100644 --- a/src/class_diagram/model/diagram.cc +++ b/src/class_diagram/model/diagram.cc @@ -36,6 +36,11 @@ const std::vector> diagram::enums() const return enums_; } +common::model::diagram_t diagram::type() const +{ + return common::model::diagram_t::kClass; +} + bool diagram::has_class(const class_ &c) const { return std::any_of(classes_.cbegin(), classes_.cend(), diff --git a/src/class_diagram/model/diagram.h b/src/class_diagram/model/diagram.h index 7abce58d..cf372240 100644 --- a/src/class_diagram/model/diagram.h +++ b/src/class_diagram/model/diagram.h @@ -41,6 +41,8 @@ public: diagram &operator=(const diagram &) = delete; diagram &operator=(diagram &&) = default; + common::model::diagram_t type() const override; + const std::vector> classes() const; const std::vector> enums() const; diff --git a/src/common/model/diagram.h b/src/common/model/diagram.h index 8fb8aff0..71483f4d 100644 --- a/src/common/model/diagram.h +++ b/src/common/model/diagram.h @@ -34,6 +34,8 @@ public: diagram(); virtual ~diagram(); + virtual diagram_t type() const = 0; + diagram(const diagram &) = delete; diagram(diagram &&); diagram &operator=(const diagram &) = delete; diff --git a/src/common/model/enums.h b/src/common/model/enums.h index 24748512..e102a67c 100644 --- a/src/common/model/enums.h +++ b/src/common/model/enums.h @@ -21,6 +21,8 @@ namespace clanguml::common::model { +enum class diagram_t { kClass, kSequence, kPackage }; + enum class access_t { kPublic, kProtected, kPrivate }; enum class relationship_t { diff --git a/src/package_diagram/model/diagram.cc b/src/package_diagram/model/diagram.cc index 1fb2c1c6..f8835711 100644 --- a/src/package_diagram/model/diagram.cc +++ b/src/package_diagram/model/diagram.cc @@ -23,6 +23,11 @@ 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 { LOG_DBG("Looking for alias for {}", full_name); diff --git a/src/package_diagram/model/diagram.h b/src/package_diagram/model/diagram.h index ba092552..f84fd1ad 100644 --- a/src/package_diagram/model/diagram.h +++ b/src/package_diagram/model/diagram.h @@ -38,6 +38,8 @@ public: diagram &operator=(const diagram &) = delete; diagram &operator=(diagram &&) = default; + common::model::diagram_t type() const override; + std::string to_alias(const std::string &full_name) const; }; } diff --git a/src/sequence_diagram/model/diagram.cc b/src/sequence_diagram/model/diagram.cc index b83869ce..779322ae 100644 --- a/src/sequence_diagram/model/diagram.cc +++ b/src/sequence_diagram/model/diagram.cc @@ -18,17 +18,16 @@ #include "diagram.h" -#include -#include -#include - #include #include -#include -#include 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 { return full_name; diff --git a/src/sequence_diagram/model/diagram.h b/src/sequence_diagram/model/diagram.h index 50b4eede..c846fdd2 100644 --- a/src/sequence_diagram/model/diagram.h +++ b/src/sequence_diagram/model/diagram.h @@ -34,6 +34,8 @@ public: diagram &operator=(const diagram &) = delete; diagram &operator=(diagram &&) = default; + common::model::diagram_t type() const override; + std::string to_alias(const std::string &full_name) const; bool started{false};