Refactored generators
This commit is contained in:
@@ -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>
|
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
|
||||||
*
|
*
|
||||||
@@ -20,9 +20,8 @@
|
|||||||
|
|
||||||
#include "util/error.h"
|
#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)
|
std::string relative_to(std::string n, std::string c)
|
||||||
{
|
{
|
||||||
if (c.rfind(n) == std::string::npos)
|
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);
|
return c.substr(n.size() + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// generator
|
|
||||||
//
|
|
||||||
|
|
||||||
generator::generator(
|
generator::generator(
|
||||||
clanguml::config::class_diagram &config, diagram_model &model)
|
clanguml::config::class_diagram &config, diagram_model &model)
|
||||||
: m_config(config)
|
: m_config(config)
|
||||||
@@ -414,7 +409,6 @@ std::ostream &operator<<(std::ostream &os, const generator &g)
|
|||||||
g.generate(os);
|
g.generate(os);
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
} // namespace puml
|
|
||||||
|
|
||||||
clanguml::class_diagram::model::diagram generate(
|
clanguml::class_diagram::model::diagram generate(
|
||||||
cppast::libclang_compilation_database &db, const std::string &name,
|
cppast::libclang_compilation_database &db, const std::string &name,
|
||||||
@@ -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>
|
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
|
||||||
*
|
*
|
||||||
@@ -36,9 +36,9 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
namespace generators {
|
|
||||||
namespace class_diagram {
|
namespace class_diagram {
|
||||||
namespace puml {
|
namespace generators {
|
||||||
|
namespace plantuml {
|
||||||
|
|
||||||
using diagram_config = clanguml::class_diagram::model::diagram;
|
using diagram_config = clanguml::class_diagram::model::diagram;
|
||||||
using diagram_model = clanguml::class_diagram::model::diagram;
|
using diagram_model = clanguml::class_diagram::model::diagram;
|
||||||
@@ -77,8 +77,6 @@ private:
|
|||||||
diagram_model &m_model;
|
diagram_model &m_model;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
clanguml::class_diagram::model::diagram generate(
|
clanguml::class_diagram::model::diagram generate(
|
||||||
cppast::libclang_compilation_database &db, const std::string &name,
|
cppast::libclang_compilation_database &db, const std::string &name,
|
||||||
clanguml::config::class_diagram &diagram);
|
clanguml::config::class_diagram &diagram);
|
||||||
@@ -86,3 +84,4 @@ clanguml::class_diagram::model::diagram generate(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
18
src/main.cc
18
src/main.cc
@@ -18,12 +18,12 @@
|
|||||||
|
|
||||||
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG
|
#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/model/diagram.h"
|
||||||
#include "class_diagram/visitor/translation_unit_visitor.h"
|
#include "class_diagram/visitor/translation_unit_visitor.h"
|
||||||
#include "config/config.h"
|
#include "config/config.h"
|
||||||
#include "cx/compilation_database.h"
|
#include "cx/compilation_database.h"
|
||||||
#include "puml/class_diagram_generator.h"
|
#include "sequence_diagram/generators/plantuml/sequence_diagram_generator.h"
|
||||||
#include "puml/sequence_diagram_generator.h"
|
|
||||||
#include "sequence_diagram/visitor/translation_unit_context.h"
|
#include "sequence_diagram/visitor/translation_unit_context.h"
|
||||||
#include "util/util.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);
|
ofs.open(path, std::ofstream::out | std::ofstream::trunc);
|
||||||
|
|
||||||
if (std::dynamic_pointer_cast<class_diagram>(diagram)) {
|
if (std::dynamic_pointer_cast<class_diagram>(diagram)) {
|
||||||
auto model = generators::class_diagram::generate(
|
auto model =
|
||||||
db2, name, dynamic_cast<class_diagram &>(*diagram));
|
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),
|
dynamic_cast<clanguml::config::class_diagram &>(*diagram),
|
||||||
model);
|
model);
|
||||||
}
|
}
|
||||||
else if (std::dynamic_pointer_cast<sequence_diagram>(diagram)) {
|
else if (std::dynamic_pointer_cast<sequence_diagram>(diagram)) {
|
||||||
auto model = generators::sequence_diagram::generate(
|
auto model =
|
||||||
db, name, dynamic_cast<sequence_diagram &>(*diagram));
|
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),
|
dynamic_cast<clanguml::config::sequence_diagram &>(*diagram),
|
||||||
model);
|
model);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
|
||||||
*
|
*
|
||||||
@@ -16,12 +16,11 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "puml/sequence_diagram_generator.h"
|
#include "sequence_diagram_generator.h"
|
||||||
|
|
||||||
#include "sequence_diagram/visitor/translation_unit_context.h"
|
#include "sequence_diagram/visitor/translation_unit_context.h"
|
||||||
|
|
||||||
namespace clanguml::generators::sequence_diagram {
|
namespace clanguml::sequence_diagram::generators::plantuml {
|
||||||
namespace puml {
|
|
||||||
|
|
||||||
using diagram_model = clanguml::sequence_diagram::model::diagram;
|
using diagram_model = clanguml::sequence_diagram::model::diagram;
|
||||||
using diagram_config = clanguml::config::sequence_diagram::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);
|
g.generate(os);
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
clanguml::sequence_diagram::model::diagram generate(
|
clanguml::sequence_diagram::model::diagram generate(
|
||||||
clanguml::cx::compilation_database &db, const std::string &name,
|
clanguml::cx::compilation_database &db, const std::string &name,
|
||||||
@@ -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>
|
* Copyright (c) 2021 Bartek Kryza <bkryza@gmail.com>
|
||||||
*
|
*
|
||||||
@@ -31,9 +31,9 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
namespace clanguml {
|
namespace clanguml {
|
||||||
namespace generators {
|
|
||||||
namespace sequence_diagram {
|
namespace sequence_diagram {
|
||||||
namespace puml {
|
namespace generators {
|
||||||
|
namespace plantuml {
|
||||||
|
|
||||||
using diagram_model = clanguml::sequence_diagram::model::diagram;
|
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 &m_model;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
clanguml::sequence_diagram::model::diagram generate(
|
clanguml::sequence_diagram::model::diagram generate(
|
||||||
clanguml::cx::compilation_database &db, const std::string &name,
|
clanguml::cx::compilation_database &db, const std::string &name,
|
||||||
clanguml::config::sequence_diagram &diagram);
|
clanguml::config::sequence_diagram &diagram);
|
||||||
@@ -70,3 +68,4 @@ clanguml::sequence_diagram::model::diagram generate(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@@ -45,7 +45,8 @@ clanguml::sequence_diagram::model::diagram generate_sequence_diagram(
|
|||||||
std::shared_ptr<clanguml::config::diagram> diagram)
|
std::shared_ptr<clanguml::config::diagram> diagram)
|
||||||
{
|
{
|
||||||
auto diagram_model =
|
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));
|
dynamic_cast<clanguml::config::sequence_diagram &>(*diagram));
|
||||||
|
|
||||||
return diagram_model;
|
return diagram_model;
|
||||||
@@ -56,7 +57,8 @@ clanguml::class_diagram::model::diagram generate_class_diagram(
|
|||||||
std::shared_ptr<clanguml::config::diagram> diagram)
|
std::shared_ptr<clanguml::config::diagram> diagram)
|
||||||
{
|
{
|
||||||
auto diagram_model =
|
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));
|
dynamic_cast<clanguml::config::class_diagram &>(*diagram));
|
||||||
|
|
||||||
return diagram_model;
|
return diagram_model;
|
||||||
@@ -66,7 +68,7 @@ std::string generate_sequence_puml(
|
|||||||
std::shared_ptr<clanguml::config::diagram> config,
|
std::shared_ptr<clanguml::config::diagram> config,
|
||||||
clanguml::sequence_diagram::model::diagram &model)
|
clanguml::sequence_diagram::model::diagram &model)
|
||||||
{
|
{
|
||||||
using namespace clanguml::generators::sequence_diagram::puml;
|
using namespace clanguml::sequence_diagram::generators::plantuml;
|
||||||
|
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
|
|
||||||
@@ -80,7 +82,7 @@ std::string generate_class_puml(
|
|||||||
std::shared_ptr<clanguml::config::diagram> config,
|
std::shared_ptr<clanguml::config::diagram> config,
|
||||||
clanguml::class_diagram::model::diagram &model)
|
clanguml::class_diagram::model::diagram &model)
|
||||||
{
|
{
|
||||||
using namespace clanguml::generators::class_diagram::puml;
|
using namespace clanguml::class_diagram::generators::plantuml;
|
||||||
|
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
|
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
|
|
||||||
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_DEBUG
|
#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/model/diagram.h"
|
||||||
#include "class_diagram/visitor/translation_unit_visitor.h"
|
#include "class_diagram/visitor/translation_unit_visitor.h"
|
||||||
#include "config/config.h"
|
#include "config/config.h"
|
||||||
#include "cx/compilation_database.h"
|
#include "cx/compilation_database.h"
|
||||||
#include "puml/class_diagram_generator.h"
|
#include "sequence_diagram/generators/plantuml/sequence_diagram_generator.h"
|
||||||
#include "puml/sequence_diagram_generator.h"
|
|
||||||
#include "sequence_diagram/visitor/translation_unit_visitor.h"
|
#include "sequence_diagram/visitor/translation_unit_visitor.h"
|
||||||
#include "util/util.h"
|
#include "util/util.h"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user