Refactored generators

This commit is contained in:
Bartek Kryza
2021-10-03 12:45:47 +02:00
parent 61a2849cf2
commit a2c7d9ff48
7 changed files with 31 additions and 37 deletions

View File

@@ -1,5 +1,5 @@
/**
* src/puml/class_diagram_generator.cc
* src/class_diagram/generators/plantuml/class_diagram_generator.cc
*
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
*
@@ -20,9 +20,8 @@
#include "util/error.h"
namespace clanguml::generators::class_diagram {
namespace clanguml::class_diagram::generators::plantuml {
namespace puml {
std::string relative_to(std::string n, std::string c)
{
if (c.rfind(n) == std::string::npos)
@@ -31,10 +30,6 @@ std::string relative_to(std::string n, std::string c)
return c.substr(n.size() + 2);
}
//
// generator
//
generator::generator(
clanguml::config::class_diagram &config, diagram_model &model)
: m_config(config)
@@ -414,7 +409,6 @@ std::ostream &operator<<(std::ostream &os, const generator &g)
g.generate(os);
return os;
}
} // namespace puml
clanguml::class_diagram::model::diagram generate(
cppast::libclang_compilation_database &db, const std::string &name,

View File

@@ -1,5 +1,5 @@
/**
* src/puml/class_diagram_generator.h
* src/class_diagram/generators/plantuml/class_diagram_generator.h
*
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
*
@@ -36,9 +36,9 @@
#include <sstream>
namespace clanguml {
namespace generators {
namespace class_diagram {
namespace puml {
namespace generators {
namespace plantuml {
using diagram_config = clanguml::class_diagram::model::diagram;
using diagram_model = clanguml::class_diagram::model::diagram;
@@ -77,8 +77,6 @@ private:
diagram_model &m_model;
};
}
clanguml::class_diagram::model::diagram generate(
cppast::libclang_compilation_database &db, const std::string &name,
clanguml::config::class_diagram &diagram);
@@ -86,3 +84,4 @@ clanguml::class_diagram::model::diagram generate(
}
}
}
}

View File

@@ -18,12 +18,12 @@
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG
#include "class_diagram/generators/plantuml/class_diagram_generator.h"
#include "class_diagram/model/diagram.h"
#include "class_diagram/visitor/translation_unit_visitor.h"
#include "config/config.h"
#include "cx/compilation_database.h"
#include "puml/class_diagram_generator.h"
#include "puml/sequence_diagram_generator.h"
#include "sequence_diagram/generators/plantuml/sequence_diagram_generator.h"
#include "sequence_diagram/visitor/translation_unit_context.h"
#include "util/util.h"
@@ -98,18 +98,20 @@ int main(int argc, const char *argv[])
ofs.open(path, std::ofstream::out | std::ofstream::trunc);
if (std::dynamic_pointer_cast<class_diagram>(diagram)) {
auto model = generators::class_diagram::generate(
db2, name, dynamic_cast<class_diagram &>(*diagram));
auto model =
clanguml::class_diagram::generators::plantuml::generate(
db2, name, dynamic_cast<class_diagram &>(*diagram));
ofs << clanguml::generators::class_diagram::puml::generator(
ofs << clanguml::class_diagram::generators::plantuml::generator(
dynamic_cast<clanguml::config::class_diagram &>(*diagram),
model);
}
else if (std::dynamic_pointer_cast<sequence_diagram>(diagram)) {
auto model = generators::sequence_diagram::generate(
db, name, dynamic_cast<sequence_diagram &>(*diagram));
auto model =
clanguml::sequence_diagram::generators::plantuml::generate(
db, name, dynamic_cast<sequence_diagram &>(*diagram));
ofs << clanguml::generators::sequence_diagram::puml::generator(
ofs << clanguml::sequence_diagram::generators::plantuml::generator(
dynamic_cast<clanguml::config::sequence_diagram &>(*diagram),
model);
}

View File

@@ -1,5 +1,5 @@
/**
* src/puml/sequence_diagram_generator.h
* src/sequence_diagram/generators/plantuml/sequence_diagram_generator.cc
*
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
*
@@ -16,12 +16,11 @@
* limitations under the License.
*/
#include "puml/sequence_diagram_generator.h"
#include "sequence_diagram_generator.h"
#include "sequence_diagram/visitor/translation_unit_context.h"
namespace clanguml::generators::sequence_diagram {
namespace puml {
namespace clanguml::sequence_diagram::generators::plantuml {
using diagram_model = clanguml::sequence_diagram::model::diagram;
using diagram_config = clanguml::config::sequence_diagram::diagram;
@@ -119,7 +118,6 @@ std::ostream &operator<<(std::ostream &os, const generator &g)
g.generate(os);
return os;
}
}
clanguml::sequence_diagram::model::diagram generate(
clanguml::cx::compilation_database &db, const std::string &name,

View File

@@ -1,5 +1,5 @@
/**
* src/puml/sequence_diagram_generator.h
* src/sequence_diagram/generators/plantuml/sequence_diagram_generator.h
*
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
*
@@ -31,9 +31,9 @@
#include <sstream>
namespace clanguml {
namespace generators {
namespace sequence_diagram {
namespace puml {
namespace generators {
namespace plantuml {
using diagram_model = clanguml::sequence_diagram::model::diagram;
@@ -61,8 +61,6 @@ private:
clanguml::sequence_diagram::model::diagram &m_model;
};
}
clanguml::sequence_diagram::model::diagram generate(
clanguml::cx::compilation_database &db, const std::string &name,
clanguml::config::sequence_diagram &diagram);
@@ -70,3 +68,4 @@ clanguml::sequence_diagram::model::diagram generate(
}
}
}
}

View File

@@ -45,7 +45,8 @@ clanguml::sequence_diagram::model::diagram generate_sequence_diagram(
std::shared_ptr<clanguml::config::diagram> diagram)
{
auto diagram_model =
clanguml::generators::sequence_diagram::generate(db, diagram->name,
clanguml::sequence_diagram::generators::plantuml::generate(db,
diagram->name,
dynamic_cast<clanguml::config::sequence_diagram &>(*diagram));
return diagram_model;
@@ -56,7 +57,8 @@ clanguml::class_diagram::model::diagram generate_class_diagram(
std::shared_ptr<clanguml::config::diagram> diagram)
{
auto diagram_model =
clanguml::generators::class_diagram::generate(db, diagram->name,
clanguml::class_diagram::generators::plantuml::generate(db,
diagram->name,
dynamic_cast<clanguml::config::class_diagram &>(*diagram));
return diagram_model;
@@ -66,7 +68,7 @@ std::string generate_sequence_puml(
std::shared_ptr<clanguml::config::diagram> config,
clanguml::sequence_diagram::model::diagram &model)
{
using namespace clanguml::generators::sequence_diagram::puml;
using namespace clanguml::sequence_diagram::generators::plantuml;
std::stringstream ss;
@@ -80,7 +82,7 @@ std::string generate_class_puml(
std::shared_ptr<clanguml::config::diagram> config,
clanguml::class_diagram::model::diagram &model)
{
using namespace clanguml::generators::class_diagram::puml;
using namespace clanguml::class_diagram::generators::plantuml;
std::stringstream ss;

View File

@@ -19,12 +19,12 @@
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG
#include "class_diagram/generators/plantuml/class_diagram_generator.h"
#include "class_diagram/model/diagram.h"
#include "class_diagram/visitor/translation_unit_visitor.h"
#include "config/config.h"
#include "cx/compilation_database.h"
#include "puml/class_diagram_generator.h"
#include "puml/sequence_diagram_generator.h"
#include "sequence_diagram/generators/plantuml/sequence_diagram_generator.h"
#include "sequence_diagram/visitor/translation_unit_visitor.h"
#include "util/util.h"