Skip to content

Commit 4cc542a

Browse files
committed
Refactored is_diagram_supported_by_generators (#427)
1 parent 19d8421 commit 4cc542a

File tree

1 file changed

+31
-25
lines changed

1 file changed

+31
-25
lines changed

src/common/generators/generators.cc

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,35 @@ void generate_diagram(const std::string &name,
242242
}
243243
}
244244

245+
bool is_diagram_supported_by_generators(
246+
const std::vector<generator_type_t> &generators,
247+
model::diagram_t diagram_type)
248+
{
249+
for (const auto generator_type : generators) {
250+
if (generator_type == generator_type_t::plantuml) {
251+
if (generator_supports_diagram_type<plantuml_generator_tag>(
252+
diagram_type))
253+
return true;
254+
}
255+
else if (generator_type == generator_type_t::json) {
256+
if (generator_supports_diagram_type<json_generator_tag>(
257+
diagram_type))
258+
return true;
259+
}
260+
else if (generator_type == generator_type_t::mermaid) {
261+
if (generator_supports_diagram_type<mermaid_generator_tag>(
262+
diagram_type))
263+
return true;
264+
}
265+
else if (generator_type == generator_type_t::graphml) {
266+
if (generator_supports_diagram_type<graphml_generator_tag>(
267+
diagram_type))
268+
return true;
269+
}
270+
}
271+
return false;
272+
}
273+
245274
int generate_diagrams(const std::vector<std::string> &diagram_names,
246275
config::config &config, const common::compilation_database_ptr &db,
247276
const cli::runtime_config &runtime_config,
@@ -274,31 +303,8 @@ int generate_diagrams(const std::vector<std::string> &diagram_names,
274303
continue;
275304

276305
// If none of the generators supports the diagram type - skip it
277-
bool at_least_one_generator_supports_diagram_type{false};
278-
for (const auto generator_type : runtime_config.generators) {
279-
if (generator_type == generator_type_t::plantuml) {
280-
if (generator_supports_diagram_type<plantuml_generator_tag>(
281-
diagram->type()))
282-
at_least_one_generator_supports_diagram_type = true;
283-
}
284-
else if (generator_type == generator_type_t::json) {
285-
if (generator_supports_diagram_type<json_generator_tag>(
286-
diagram->type()))
287-
at_least_one_generator_supports_diagram_type = true;
288-
}
289-
else if (generator_type == generator_type_t::mermaid) {
290-
if (generator_supports_diagram_type<mermaid_generator_tag>(
291-
diagram->type()))
292-
at_least_one_generator_supports_diagram_type = true;
293-
}
294-
else if (generator_type == generator_type_t::graphml) {
295-
if (generator_supports_diagram_type<graphml_generator_tag>(
296-
diagram->type()))
297-
at_least_one_generator_supports_diagram_type = true;
298-
}
299-
}
300-
301-
if (!at_least_one_generator_supports_diagram_type) {
306+
if (!is_diagram_supported_by_generators(
307+
runtime_config.generators, diagram->type())) {
302308
LOG_INFO("Diagram '{}' not supported by any of selected "
303309
"generators - skipping...",
304310
name);

0 commit comments

Comments
 (0)