LCOV - code coverage report
Current view: top level - data/source/entity - data_diagram_type.c (source / functions) Coverage Total Hit
Test: crystal-facet-uml_v1.70.5_covts Lines: 80.0 % 10 8
Test Date: 2026-05-28 21:31:40 Functions: 100.0 % 2 2

            Line data    Source code
       1              : /* File: data_diagram_type.c; Copyright and License: see below */
       2              : 
       3              : #include "entity/data_diagram_type.h"
       4              : #include <stddef.h>
       5              : #include <assert.h>
       6              : 
       7              : const data_diagram_type_t DATA_DIAGRAM_TYPE_ARRAY [DATA_DIAGRAM_TYPE_COUNT]
       8              :     = {
       9              :         DATA_DIAGRAM_TYPE_LIST,
      10              :         DATA_DIAGRAM_TYPE_BOX_DIAGRAM,
      11              :         DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM,
      12              :         DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM,
      13              :         DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM,
      14              :         DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM,
      15              :         DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM,
      16              :         DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM,
      17              :         DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM,
      18              :         DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM,
      19              :         DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM,
      20              :         /* DATA_DIAGRAM_TYPE_DEPRECATED_INTERACTION_OVERVIEW_DIAGRAM, */
      21              :         DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM,
      22              :         DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM,
      23              :         DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM,
      24              :         DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM,
      25              :         DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM,
      26              :         DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM,
      27              :         DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM,
      28              :         DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM
      29              :     };
      30              : 
      31              : static const char *const DATA_DIAGRAM_TYPE_NAME_ARRAY [DATA_DIAGRAM_TYPE_HASH_MOD]
      32              :     = {
      33              :         [ DATA_DIAGRAM_TYPE_LIST ] = "List",
      34              :         [ DATA_DIAGRAM_TYPE_BOX_DIAGRAM ] = "Box Overview",
      35              :         [2] = "",
      36              :         [3] = "",
      37              :         [ DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM ] = "Block Definition Diagram",
      38              :         [ DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM ] = "Internal Block Diagram",
      39              :         [6] = "",
      40              :         [ DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM ] = "Parametric Diagram",
      41              :         [8] = "",
      42              :         [ DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM ] = "Requirement Diagram",
      43              :         [ DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM ] = "Use Case Diagram",
      44              :         [ DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM ] = "Activity Diagram",
      45              :         [ DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM ] = "State Diagram",
      46              :         [ DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM ] = "Sequence Diagram",
      47              :         [ DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM ] = "Communication Diagram",
      48              :         [15] = "",
      49              :         [ DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM ] = "Timing Diagram",
      50              :         [ DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM ] = "Interation Overview Diagram",
      51              :         [18] = "",
      52              :         [19] = "",
      53              :         [20] = "",
      54              :         [21] = "",
      55              :         [22] = "",
      56              :         [23] = "",
      57              :         [24] = "",
      58              :         [25] = "",
      59              :         [26] = "",
      60              :         [27] = "",
      61              :         [28] = "",
      62              :         [29] = "",
      63              :         [ DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM ] = "Deployment Diagram",
      64              :         [ DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM ] = "Component Diagram",
      65              :         [ DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM ] = "Composite Structure Diagram",
      66              :         [ DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM ] = "Package Diagram",
      67              :         [ DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM ] = "Class Diagram",
      68              :         [35] = "",
      69              :         [36] = "",
      70              :         [37] = "",
      71              :         [38] = "",
      72              :         [ DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM ] = "Profile Diagram",
      73              :     };
      74              : 
      75              : static const char *const DATA_DIAGRAM_TYPE_ELEMENT_KIND_ARRAY [DATA_DIAGRAM_TYPE_HASH_MOD]
      76              :     = {
      77              :         [ DATA_DIAGRAM_TYPE_LIST ] = "",  /* "list" */
      78              :         [ DATA_DIAGRAM_TYPE_BOX_DIAGRAM ] = "",  /* "box" */
      79              :         [2] = "",
      80              :         [3] = "",
      81              :         [ DATA_DIAGRAM_TYPE_SYSML_BLOCK_DEFINITION_DIAGRAM ] = "bdd",
      82              :         [ DATA_DIAGRAM_TYPE_SYSML_INTERNAL_BLOCK_DIAGRAM ] = "ibd",
      83              :         [6] = "",
      84              :         [ DATA_DIAGRAM_TYPE_SYSML_PARAMETRIC_DIAGRAM ] = "par",  /* "parametric" */
      85              :         [8] = "",
      86              :         [ DATA_DIAGRAM_TYPE_SYSML_REQUIREMENTS_DIAGRAM ] = "req",  /* "requirements" */
      87              :         [ DATA_DIAGRAM_TYPE_UML_USE_CASE_DIAGRAM ] = "uc",  /* "use case" */
      88              :         [ DATA_DIAGRAM_TYPE_UML_ACTIVITY_DIAGRAM ] = "act",  /* "activity" */
      89              :         [ DATA_DIAGRAM_TYPE_UML_STATE_MACHINE_DIAGRAM ] = "stm",  /* "state machine" */
      90              :         [ DATA_DIAGRAM_TYPE_UML_SEQUENCE_DIAGRAM ] = "sd", /* "interaction" */
      91              :         [ DATA_DIAGRAM_TYPE_UML_COMMUNICATION_DIAGRAM ] = "sd", /* "interaction" */
      92              :         [15] = "",
      93              :         [ DATA_DIAGRAM_TYPE_UML_TIMING_DIAGRAM ] = "sd", /* "interaction" */
      94              :         [ DATA_DIAGRAM_TYPE_INTERACTION_OVERVIEW_DIAGRAM ] = "sd", /* "interaction" */
      95              :         [18] = "",
      96              :         [19] = "",
      97              :         [20] = "",
      98              :         [21] = "",
      99              :         [22] = "",
     100              :         [23] = "",
     101              :         [24] = "",
     102              :         [25] = "",
     103              :         [26] = "",
     104              :         [27] = "",
     105              :         [28] = "",
     106              :         [29] = "",
     107              :         [ DATA_DIAGRAM_TYPE_UML_DEPLOYMENT_DIAGRAM ] = "dep",  /* "deployment" */
     108              :         [ DATA_DIAGRAM_TYPE_UML_COMPONENT_DIAGRAM ] = "cmp",  /* "component" */
     109              :         [ DATA_DIAGRAM_TYPE_UML_COMPOSITE_STRUCTURE_DIAGRAM ] = "composite",
     110              :         [ DATA_DIAGRAM_TYPE_UML_PACKAGE_DIAGRAM ] = "pkg",  /* "package" */
     111              :         [ DATA_DIAGRAM_TYPE_UML_CLASS_DIAGRAM ] = "class",
     112              :         [35] = "",
     113              :         [36] = "",
     114              :         [37] = "",
     115              :         [38] = "",
     116              :         [ DATA_DIAGRAM_TYPE_UML_PROFILE_DIAGRAM ] = "profile",
     117              :     };
     118              : 
     119          302 : const char * data_diagram_type_get_name( data_diagram_type_t this_ )
     120              : {
     121            0 :     const char * result
     122          302 :         = ( this_ == DATA_DIAGRAM_TYPE_VOID ) ? "" : DATA_DIAGRAM_TYPE_NAME_ARRAY[ this_ % DATA_DIAGRAM_TYPE_HASH_MOD ];
     123          302 :     assert( result != NULL );
     124          302 :     return ( result == NULL ) ? "" : result;
     125              : }
     126              : 
     127            1 : const char * data_diagram_type_get_element_kind( data_diagram_type_t this_ )
     128              : {
     129            0 :     const char * result
     130            1 :         = ( this_ == DATA_DIAGRAM_TYPE_VOID ) ? "" : DATA_DIAGRAM_TYPE_ELEMENT_KIND_ARRAY[ this_ % DATA_DIAGRAM_TYPE_HASH_MOD ];
     131            1 :     assert( result != NULL );
     132            1 :     return ( result == NULL ) ? "" : result;
     133              : }
     134              : 
     135              : 
     136              : /*
     137              : Copyright 2021-2026 Andreas Warnke
     138              : 
     139              : Licensed under the Apache License, Version 2.0 (the "License");
     140              : you may not use this file except in compliance with the License.
     141              : You may obtain a copy of the License at
     142              : 
     143              :     http://www.apache.org/licenses/LICENSE-2.0
     144              : 
     145              : Unless required by applicable law or agreed to in writing, software
     146              : distributed under the License is distributed on an "AS IS" BASIS,
     147              : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     148              : See the License for the specific language governing permissions and
     149              : limitations under the License.
     150              : */
        

Generated by: LCOV version 2.0-1