| 1124 | } |
| 1125 | |
| 1126 | std::map<std::string, std::string> createGuidelineMapping(ReportType reportType) { |
| 1127 | std::map<std::string, std::string> guidelineMapping; |
| 1128 | const std::vector<checkers::IdMapping> *idMapping1 = nullptr; |
| 1129 | const std::vector<checkers::IdMapping> *idMapping2 = nullptr; |
| 1130 | std::string ext1, ext2; |
| 1131 | |
| 1132 | switch (reportType) { |
| 1133 | case ReportType::autosar: |
| 1134 | idMapping1 = &checkers::idMappingAutosar; |
| 1135 | break; |
| 1136 | case ReportType::certCpp: |
| 1137 | idMapping2 = &checkers::idMappingCertCpp; |
| 1138 | ext2 = "-CPP"; |
| 1139 | FALLTHROUGH; |
| 1140 | case ReportType::certC: |
| 1141 | idMapping1 = &checkers::idMappingCertC; |
| 1142 | ext1 = "-C"; |
| 1143 | break; |
| 1144 | case ReportType::misraC2012: |
| 1145 | case ReportType::misraC2023: |
| 1146 | case ReportType::misraC2025: |
| 1147 | idMapping1 = &checkers::idMappingMisraC; |
| 1148 | break; |
| 1149 | case ReportType::misraCpp2008: |
| 1150 | idMapping1 = &checkers::idMappingMisraCpp2008; |
| 1151 | break; |
| 1152 | case ReportType::misraCpp2023: |
| 1153 | idMapping1 = &checkers::idMappingMisraCpp2023; |
| 1154 | break; |
| 1155 | default: |
| 1156 | break; |
| 1157 | } |
| 1158 | |
| 1159 | if (idMapping1) { |
| 1160 | for (const auto &i : *idMapping1) |
| 1161 | for (const std::string &cppcheckId : splitString(i.cppcheckId, ',')) |
| 1162 | guidelineMapping[cppcheckId] = i.guideline + ext1; |
| 1163 | } |
| 1164 | |
| 1165 | if (idMapping2) { |
| 1166 | for (const auto &i : *idMapping2) |
| 1167 | for (const std::string &cppcheckId : splitString(i.cppcheckId, ',')) |
| 1168 | guidelineMapping[cppcheckId] = i.guideline + ext2; |
| 1169 | } |
| 1170 | |
| 1171 | return guidelineMapping; |
| 1172 | } |