LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
configurationStructure.cpp
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
15#include "common/LimaCommon.h"
18
19#include <iostream>
20
21using namespace std;
22
23namespace Lima
24{
25namespace Common
26{
27namespace XMLConfigurationFiles
28{
29
32
37
39{
40 std::map< std::string, ModuleConfigurationStructure >::operator=(config);
41 return *this;
42}
43
46
48 const string &value, const string &moduleName, const string & group)
49{
51 iterator itC = find(moduleName);
52 if (itC == end())
53 {
54 LERROR << "Error adding param '" << moduleName.c_str() << "': no such module !" ;
55 throw NoSuchModule(moduleName+"["+ group+"]");
56 }
57 ModuleConfigurationStructure& moduleGroups = (*itC).second;
58 moduleGroups.addParamValuePairForGroup(param, value, group);
59// erase(moduleName);
60// insert(make_pair(moduleName, moduleGroups));
61}
62
63void ConfigurationStructure::addParamValuePairForModuleAndGroup(const QString& param, const QString& value,
64 const QString& moduleName, const QString& group)
65{
66 addParamValuePairForModuleAndGroup(param.toStdString(), value.toStdString(),
67 moduleName.toStdString(), group.toStdString());
68}
69
71 const string &moduleName, const string & groupName)
72
73{
75 iterator itC = find(moduleName);
76 if (itC == end())
77 {
78 LERROR << "Error adding param '" << moduleName.c_str() << "': no such module !" ;
79 throw NoSuchModule(moduleName+"["+ groupName+"]");
80 }
81 ModuleConfigurationStructure& moduleGroups = (*itC).second;
82 moduleGroups.addListNamedForGroup(listName, groupName);
83// erase(moduleName);
84// insert(make_pair(moduleName, moduleGroups));
85}
86
87void ConfigurationStructure::addListNamedForModuleAndGroup(const QString& listName, const QString& moduleName,
88 const QString& groupName)
89
90{
91 addListNamedForModuleAndGroup(listName.toStdString(), moduleName.toStdString(), groupName.toStdString());
92}
93
95 const string &listName, const string &moduleName, const string & groupName)
96{
98 iterator itC = find(moduleName);
99 if (itC == end())
100 {
101 LERROR << "Error adding param '" << moduleName.c_str() << "': no such module !" ;
102 throw NoSuchModule(moduleName+"["+ groupName+"]["+listName+"]");
103 }
104 ModuleConfigurationStructure& moduleGroups = (*itC).second;
105 moduleGroups.addItemInListNamedForGroup(item, listName, groupName);
106// erase(moduleName);
107// insert(make_pair(moduleName, moduleGroups));
108}
109
110void ConfigurationStructure::addItemInListNamedForModuleAndGroup(const QString& item, const QString& listName,
111 const QString& moduleName, const QString& groupName)
112{
113 addItemInListNamedForModuleAndGroup(item.toStdString(), listName.toStdString(),
114 moduleName.toStdString(), groupName.toStdString());
115}
116
118 const string& moduleName)
119{
121 iterator itC = find(moduleName);
122 if (itC == end())
123 {
124 LERROR << "Error adding group '" << groupName.c_str() << "': no such module '" << moduleName.c_str() << "' !" ;
125 throw NoSuchModule(moduleName);
126 }
127 ModuleConfigurationStructure& moduleGroups = (*itC).second;
128 moduleGroups.addGroupNamed(groupName);
129// erase(moduleName);
130// insert(make_pair(moduleName, moduleGroups));
131}
132
133void ConfigurationStructure::addGroupNamedForModuleNamed(const QString& groupName, const QString& moduleName)
134{
135 addGroupNamedForModuleNamed(groupName.toStdString(), moduleName.toStdString());
136}
137
138void ConfigurationStructure::addMapNamedForModuleAndGroup(const std::string &mapName, const std::string& moduleName, const std::string& groupName)
139{
141 iterator itC = find(moduleName);
142 if (itC == end())
143 {
144 LERROR << "Error adding map '" << mapName.c_str() << "' in group '" << groupName.c_str() << "': no such module '" << moduleName.c_str() << "' !" ;
145 throw NoSuchModule(moduleName+"["+ groupName+"]");
146 }
147 itC->second.addMapInGroup(mapName,groupName);
148}
149
150void ConfigurationStructure::addMapNamedForModuleAndGroup(const QString& mapName, const QString& moduleName,
151 const QString& groupName)
152{
153 addMapNamedForModuleAndGroup(mapName.toStdString(), moduleName.toStdString(), groupName.toStdString());
154}
155
156void ConfigurationStructure::addEntryInMapNamedForModuleAndGroup(const std::string& entryKey,const std::string& entryValue,const std::string& mapName,const std::string& moduleName,const std::string& groupName)
157{
159 iterator itC = find(moduleName);
160 if (itC == end())
161 {
162 LERROR << "Error adding mapEntry in '" << mapName.c_str() << "' in group '" << groupName.c_str() << "': no such module '" << moduleName.c_str() << "' !" ;
163 throw NoSuchModule(moduleName+"["+ groupName+"]["+mapName+"]");
164 }
165 itC->second.addEntryInMapInGroup(entryKey,entryValue,mapName,groupName);
166}
167
168void ConfigurationStructure::addEntryInMapNamedForModuleAndGroup(const QString& entryKey, const QString& entryValue,
169 const QString& mapName, const QString& moduleName,
170 const QString& groupName)
171{
172 addEntryInMapNamedForModuleAndGroup(entryKey.toStdString(), entryValue.toStdString(),
173 mapName.toStdString(), moduleName.toStdString(),
174 groupName.toStdString());
175}
176
177void ConfigurationStructure::addAttributeForGroupInModule(const std::string& attKey,const std::string& attValue,const std::string& groupName,const std::string& moduleName)
178{
180 iterator itC = find(moduleName);
181 if (itC == end())
182 {
183 LERROR << "Error adding mapattribute in group '" << groupName.c_str() << "': no such module '" << moduleName.c_str() << "' !" ;
184 throw NoSuchModule(moduleName+"["+ groupName+"]");
185 }
186#ifdef DEBUG_CD
187 LDEBUG << "add attribute: module='"<<moduleName.c_str()<<"' group='"<<groupName.c_str()<<"' attribute='"<<attKey.c_str()<<"' value='"<<attValue.c_str()<<"'" ;
188#endif
189 itC->second.addAttributeInGroup(attKey,attValue,groupName);
190}
191
192void ConfigurationStructure::addAttributeForGroupInModule(const QString& attKey, const QString& attValue,
193 const QString& groupName,const QString& moduleName)
194{
195 addAttributeForGroupInModule(attKey.toStdString(), attValue.toStdString(),
196 groupName.toStdString(), moduleName.toStdString());
197}
198
199GroupConfigurationStructure& ConfigurationStructure::
200getGroupConf(const std::string& moduleName,
201 const std::string& group)
202{
203 iterator itC = find(moduleName);
204 if (itC == end())
205 {
207 LERROR << "'No such module '" << moduleName.c_str() << "'" ;
208 throw NoSuchModule(moduleName+"["+ group +"]");
209 }
210 return (*itC).second.getGroupNamed(group) ;
211}
212
213std::ostream& operator<<(std::ostream &os, const ConfigurationStructure& conf)
214{
215 for (ConfigurationStructure::const_iterator it = conf.begin(); it != conf.end(); it++)
216 {
217 const ModuleConfigurationStructure& dmcs((*it).second);
218 os << (*it).first << std::endl << dmcs;
219 }
220 return os;
221}
222
223} //closing namespace XMLConfigurationFiles
224} //closing namespace Common
225} //closing namespace Lima
#define XMLCFGLOGINIT
Definition LimaCommon.h:217
#define LDEBUG
Definition LimaCommon.h:157
#define LERROR
Definition LimaCommon.h:161
The instances of this class hold configuration informations of the modules Its design is currently ve...
void addAttributeForGroupInModule(const std::string &attKey, const std::string &attValue, const std::string &groupName, const std::string &moduleName)
void addListNamedForModuleAndGroup(const std::string &listName, const std::string &moduleName, const std::string &group)
void addEntryInMapNamedForModuleAndGroup(const std::string &entryKey, const std::string &entryValue, const std::string &mapName, const std::string &moduleName, const std::string &groupName)
void addMapNamedForModuleAndGroup(const std::string &mapName, const std::string &moduleName, const std::string &group)
ConfigurationStructure & operator=(const ConfigurationStructure &config)
void addGroupNamedForModuleNamed(const std::string &groupName, const std::string &moduleName)
void addItemInListNamedForModuleAndGroup(const std::string &item, const std::string &listName, const std::string &moduleName, const std::string &group)
void addParamValuePairForModuleAndGroup(const std::string &param, const std::string &value, const std::string &module, const std::string &group)
void addItemInListNamedForGroup(const std::string &item, const std::string &listName, const std::string &group)
void addParamValuePairForGroup(const std::string &param, const std::string &value, const std::string &group)
void addListNamedForGroup(const std::string &listName, const std::string &group)
return a message when a 'module' is not found
originally detectConfigurationStructure.h in detectlibraries
std::ostream & operator<<(std::ostream &os, const ConfigurationStructure &conf)
NAUTITIA.
STL namespace.
launch exception related to the configuration file parsing