Added list-diagrams cli options

This commit is contained in:
Bartek Kryza
2022-02-05 11:52:28 +01:00
parent 1a93f6121d
commit c1825f1a1f
3 changed files with 64 additions and 3 deletions

View File

@@ -27,6 +27,20 @@ config load(const std::string &config_file)
return doc.as<config>();
}
std::string to_string(const diagram_type t)
{
switch (t) {
case diagram_type::class_diagram:
return "class";
case diagram_type::sequence_diagram:
return "sequence";
case diagram_type::package_diagram:
return "package";
default:
assert(false);
}
}
bool diagram::should_include_entities(const std::string &ent)
{
for (const auto &ex : exclude.entity_types) {
@@ -107,6 +121,8 @@ bool diagram::should_include(const clanguml::common::model::scope_t scope) const
return false;
}
diagram_type class_diagram::type() const { return diagram_type::class_diagram; }
bool class_diagram::has_class(std::string clazz)
{
for (const auto &c : classes) {
@@ -123,6 +139,16 @@ bool class_diagram::has_class(std::string clazz)
return false;
}
diagram_type sequence_diagram::type() const
{
return diagram_type::sequence_diagram;
}
diagram_type package_diagram::type() const
{
return diagram_type::package_diagram;
}
}
}

View File

@@ -59,9 +59,15 @@ struct filter {
std::vector<common::model::scope_t> scopes;
};
enum class diagram_type { class_diagram, sequence_diagram, package_diagram };
std::string to_string(const diagram_type t);
struct diagram {
virtual ~diagram() = default;
virtual diagram_type type() const = 0;
std::string name;
std::vector<std::string> glob;
std::vector<std::string> using_namespace;
@@ -89,6 +95,8 @@ struct source_location {
struct class_diagram : public diagram {
virtual ~class_diagram() = default;
diagram_type type() const override;
std::vector<std::string> classes;
bool include_relations_also_as_members{true};
@@ -98,11 +106,15 @@ struct class_diagram : public diagram {
struct sequence_diagram : public diagram {
virtual ~sequence_diagram() = default;
diagram_type type() const override;
std::vector<source_location> start_from;
};
struct package_diagram : public diagram {
virtual ~package_diagram() = default;
diagram_type type() const override;
};
struct config {