@@ -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+
245274int 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