From 3b6aa48b8216ba58fbe5663af7ea1f397aef13b5 Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Wed, 16 Feb 2022 21:13:58 +0100 Subject: [PATCH] Refactored common diagram methods to common class --- src/class_diagram/model/diagram.cc | 4 ---- src/class_diagram/model/diagram.h | 8 ++----- src/common/model/diagram.cc | 27 +++++++++++++++++++++ src/common/model/diagram.h | 34 +++++++++++++++++++++++++++ src/package_diagram/model/diagram.cc | 4 ---- src/package_diagram/model/diagram.h | 10 +++----- src/sequence_diagram/model/diagram.cc | 4 ---- src/sequence_diagram/model/diagram.h | 11 +++------ 8 files changed, 69 insertions(+), 33 deletions(-) create mode 100644 src/common/model/diagram.cc create mode 100644 src/common/model/diagram.h diff --git a/src/class_diagram/model/diagram.cc b/src/class_diagram/model/diagram.cc index 9eb6664b..46ec8185 100644 --- a/src/class_diagram/model/diagram.cc +++ b/src/class_diagram/model/diagram.cc @@ -23,10 +23,6 @@ namespace clanguml::class_diagram::model { -std::string diagram::name() const { return name_; } - -void diagram::set_name(const std::string &name) { name_ = name; } - const std::vector diagram::classes() const { return classes_; } const std::vector diagram::enums() const { return enums_; } diff --git a/src/class_diagram/model/diagram.h b/src/class_diagram/model/diagram.h index 0dffe194..7f230b02 100644 --- a/src/class_diagram/model/diagram.h +++ b/src/class_diagram/model/diagram.h @@ -18,6 +18,7 @@ #pragma once #include "class.h" +#include "common/model/diagram.h" #include "enum.h" #include "type_alias.h" @@ -26,12 +27,8 @@ namespace clanguml::class_diagram::model { -class diagram { +class diagram : public clanguml::common::model::diagram { public: - std::string name() const; - - void set_name(const std::string &name); - const std::vector classes() const; const std::vector enums() const; @@ -47,7 +44,6 @@ public: std::string to_alias(const std::string &full_name) const; private: - std::string name_; std::vector classes_; std::vector enums_; std::map type_aliases_; diff --git a/src/common/model/diagram.cc b/src/common/model/diagram.cc new file mode 100644 index 00000000..1f4263f5 --- /dev/null +++ b/src/common/model/diagram.cc @@ -0,0 +1,27 @@ +/** + * src/common/model/diagram.cc + * + * Copyright (c) 2021-2022 Bartek Kryza + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "diagram.h" + +namespace clanguml::common::model { + +std::string diagram::name() const { return name_; } + +void diagram::set_name(const std::string &name) { name_ = name; } + +} \ No newline at end of file diff --git a/src/common/model/diagram.h b/src/common/model/diagram.h new file mode 100644 index 00000000..3e4f95b0 --- /dev/null +++ b/src/common/model/diagram.h @@ -0,0 +1,34 @@ +/** + * src/common/model/diagram.h + * + * Copyright (c) 2021-2022 Bartek Kryza + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#pragma once + +#include + +namespace clanguml::common::model { + +class diagram { +public: + std::string name() const; + + void set_name(const std::string &name); + +private: + std::string name_; +}; + +} diff --git a/src/package_diagram/model/diagram.cc b/src/package_diagram/model/diagram.cc index 1ec49861..00a70863 100644 --- a/src/package_diagram/model/diagram.cc +++ b/src/package_diagram/model/diagram.cc @@ -23,10 +23,6 @@ namespace clanguml::package_diagram::model { -std::string diagram::name() const { return name_; } - -void diagram::set_name(const std::string &name) { name_ = name; } - 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 7a18f8ea..85dd70b0 100644 --- a/src/package_diagram/model/diagram.h +++ b/src/package_diagram/model/diagram.h @@ -17,6 +17,7 @@ */ #pragma once +#include "common/model/diagram.h" #include "package.h" #include @@ -26,17 +27,12 @@ namespace clanguml::package_diagram::model { -class diagram : public detail::package_trait { +class diagram : public clanguml::common::model::diagram, + public detail::package_trait { public: - std::string name() const; - - void set_name(const std::string &name); - std::string to_alias(const std::string &full_name) const; private: - std::string name_; - std::vector> packages_; }; } diff --git a/src/sequence_diagram/model/diagram.cc b/src/sequence_diagram/model/diagram.cc index f85568f4..b83869ce 100644 --- a/src/sequence_diagram/model/diagram.cc +++ b/src/sequence_diagram/model/diagram.cc @@ -29,10 +29,6 @@ namespace clanguml::sequence_diagram::model { -std::string diagram::name() const { return name_; } - -void diagram::set_name(const std::string &name) { name_ = name; } - 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 67f6df39..8cbc70eb 100644 --- a/src/sequence_diagram/model/diagram.h +++ b/src/sequence_diagram/model/diagram.h @@ -18,25 +18,20 @@ #pragma once #include "activity.h" +#include "common/model/diagram.h" #include #include namespace clanguml::sequence_diagram::model { -struct diagram { - std::string name() const; - - void set_name(const std::string &name); - +class diagram : public clanguml::common::model::diagram { +public: std::string to_alias(const std::string &full_name) const; bool started{false}; std::map sequences; - -private: - std::string name_; }; }