Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYXMLTools.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
16 /*
17  *
18  */
19 
20 #include "TYXMLTools.h"
21 
22 #include "Tympan/core/logging.h"
23 
24 /*static*/ void TYXMLTools::addElementStringValue(DOM_Element& parentElem, DOMString nodeName,
25  DOMString nodeValue)
26 {
27  // Recupere le noeud Document
28  QDomDocument domDoc = parentElem.ownerDocument();
29 
30  // Cree un nouvel element XML
31  QDomElement childElem = domDoc.createElement(nodeName);
32  // Ajoute le nouvel element au parent
33  parentElem.appendChild(childElem);
34 
35  // Cree une nouvelle valeur Text
36  QDomText dataVal = domDoc.createTextNode(nodeValue);
37  // Associe la valeur au nouvel element
38  childElem.appendChild(dataVal);
39 }
40 
41 #if TY_ARCH_TYPE == TY_ARCHITECTURE_64
42 /*static*/ void TYXMLTools::addElementUIntValue(DOM_Element& parentElem, DOMString nodeName,
43  unsigned int nodeValue)
44 {
45  addElementStringValue(parentElem, nodeName, uintToStr(nodeValue).data());
46 }
47 
48 /*static*/ void TYXMLTools::addElementUIntValue(DOM_Element& parentElem, DOMString nodeName, size_t nodeValue)
49 {
50  addElementStringValue(parentElem, nodeName, uintToStr(nodeValue).data());
51 }
52  #if TY_COMPILER == TY_COMPILER_MSVC
53 /*static*/ void TYXMLTools::addElementUIntValue(DOM_Element& parentElem, DOMString nodeName,
54  unsigned long nodeValue)
55 {
56  addElementStringValue(parentElem, nodeName, uintToStr(nodeValue).data());
57 }
58  #endif
59 #else
60 /*static*/ void TYXMLTools::addElementUIntValue(DOM_Element& parentElem, DOMString nodeName, size_t nodeValue)
61 {
62  addElementStringValue(parentElem, nodeName, uintToStr(nodeValue).data());
63 }
64 
65 /*static*/ void TYXMLTools::addElementUIntValue(DOM_Element& parentElem, DOMString nodeName,
66  unsigned long nodeValue)
67 {
68  addElementStringValue(parentElem, nodeName, uintToStr(nodeValue).data());
69 }
70 #endif
71 
72 /*static*/ void TYXMLTools::addElementIntValue(DOM_Element& parentElem, DOMString nodeName, int nodeValue)
73 {
74  addElementStringValue(parentElem, nodeName, intToStr(nodeValue).data());
75 }
76 
77 /*static*/ void TYXMLTools::addElementBoolValue(DOM_Element& parentElem, DOMString nodeName, bool nodeValue)
78 {
79  addElementStringValue(parentElem, nodeName, intToStr(nodeValue).data());
80 }
81 
82 /*static*/ void TYXMLTools::addElementFloatValue(DOM_Element& parentElem, DOMString nodeName, float nodeValue)
83 {
84  addElementStringValue(parentElem, nodeName, floatToStr(nodeValue).data());
85 }
86 
87 /*static*/ void TYXMLTools::addElementDoubleValue(DOM_Element& parentElem, DOMString nodeName,
88  double nodeValue)
89 {
90  addElementStringValue(parentElem, nodeName, doubleToStr(nodeValue).data());
91 }
92 
93 /*static*/ bool TYXMLTools::getElementStringValue(DOM_Element parentElem, DOMString nodeName,
94  QString& nodeValue)
95 {
96  bool bRet = false;
97  if (parentElem.nodeName() == nodeName)
98  {
99  QDomNode child = parentElem.firstChild();
100 
101  if (!child.isNull())
102  {
103  nodeValue = child.nodeValue();
104  bRet = true;
105  }
106  }
107  return bRet;
108 }
109 
110 /*static*/ void TYXMLTools::getElementStringValue(DOM_Element parentElem, DOMString nodeName,
111  QString& nodeValue, bool& ok)
112 {
113  if (ok)
114  {
115  return;
116  }
117  if (parentElem.nodeName() == nodeName)
118  {
119  DOM_Node child = parentElem.firstChild();
120 
121  if (!child.isNull())
122  {
123  nodeValue = child.nodeValue();
124  ok = true;
125  }
126  }
127 }
128 
129 /*static*/ bool TYXMLTools::getElementIntValue(DOM_Element parentElem, DOMString nodeName, int& nodeValue)
130 {
131  QString nodeValueStr;
132 
133  bool bRet = getElementStringValue(parentElem, nodeName, nodeValueStr);
134 
135  if (bRet)
136  {
137  nodeValue = nodeValueStr.toInt();
138  }
139 
140  return bRet;
141 }
142 
143 /*static*/ void TYXMLTools::getElementIntValue(DOM_Element parentElem, DOMString nodeName, int& nodeValue,
144  bool& ok)
145 {
146  if (ok)
147  {
148  return;
149  }
150 
151  QString nodeValueStr;
152 
153  getElementStringValue(parentElem, nodeName, nodeValueStr, ok);
154 
155  if (ok)
156  {
157  nodeValue = nodeValueStr.toInt();
158  }
159 }
160 
161 /*static*/ void TYXMLTools::getElementUIntValue(DOM_Element parentElem, DOMString nodeName,
162  unsigned int& nodeValue, bool& ok)
163 {
164  if (ok)
165  {
166  return;
167  }
168 
169  QString nodeValueStr;
170 
171  getElementStringValue(parentElem, nodeName, nodeValueStr, ok);
172 
173  if (ok)
174  {
175  nodeValue = nodeValueStr.toUInt();
176  }
177 }
178 
179 /*static*/ bool TYXMLTools::getElementBoolValue(DOM_Element parentElem, DOMString nodeName, bool& nodeValue)
180 {
181  QString nodeValueStr;
182 
183  bool bRet = getElementStringValue(parentElem, nodeName, nodeValueStr);
184 
185  if (bRet)
186  {
187  nodeValue = (nodeValueStr.toInt() == 1) ? true : false;
188  }
189 
190  return bRet;
191 }
192 
193 /*static*/ void TYXMLTools::getElementBoolValue(DOM_Element parentElem, DOMString nodeName, bool& nodeValue,
194  bool& ok)
195 {
196  if (ok)
197  {
198  return;
199  }
200 
201  QString nodeValueStr;
202 
203  getElementStringValue(parentElem, nodeName, nodeValueStr, ok);
204 
205  if (ok)
206  {
207  nodeValue = (nodeValueStr.toInt() == 1) ? true : false;
208  }
209 }
210 
211 /*static*/ bool TYXMLTools::getElementFloatValue(DOM_Element parentElem, DOMString nodeName, float& nodeValue)
212 {
213  QString nodeValueStr;
214 
215  bool bRet = getElementStringValue(parentElem, nodeName, nodeValueStr);
216 
217  if (bRet)
218  {
219  nodeValue = nodeValueStr.toFloat();
220  }
221 
222  return bRet;
223 }
224 
225 /*static*/ void TYXMLTools::getElementFloatValue(DOM_Element parentElem, DOMString nodeName, float& nodeValue,
226  bool& ok)
227 {
228  if (ok)
229  {
230  return;
231  }
232 
233  QString nodeValueStr;
234 
235  getElementStringValue(parentElem, nodeName, nodeValueStr, ok);
236 
237  if (ok)
238  {
239  nodeValue = nodeValueStr.toFloat();
240  }
241 }
242 
243 /*static*/ bool TYXMLTools::getElementDoubleValue(DOM_Element parentElem, DOMString nodeName,
244  double& nodeValue)
245 {
246  QString nodeValueStr;
247 
248  bool bRet = getElementStringValue(parentElem, nodeName, nodeValueStr);
249 
250  if (bRet)
251  {
252  nodeValue = nodeValueStr.toDouble();
253  }
254 
255  return bRet;
256 }
257 
258 /*static*/ void TYXMLTools::getElementDoubleValue(DOM_Element parentElem, DOMString nodeName,
259  double& nodeValue, bool& ok)
260 {
261  if (ok)
262  {
263  return;
264  }
265 
266  QString nodeValueStr;
267 
268  getElementStringValue(parentElem, nodeName, nodeValueStr, ok);
269 
270  if (ok)
271  {
272  nodeValue = nodeValueStr.toDouble();
273  }
274 }
275 
276 /*static*/ QString TYXMLTools::getElementAttributeToString(DOM_Element parentElem, DOMString attName)
277 {
278 
279  QString attValue;
280  if (!parentElem.isNull())
281  {
282  attValue = parentElem.attribute(attName);
283  }
284 
285  return attValue;
286 }
287 
288 /*static*/ double TYXMLTools::getElementAttributeToDouble(DOM_Element parentElem, DOMString attName, bool* ok)
289 {
290  return getElementAttributeToString(parentElem, attName).toDouble(ok);
291 }
292 
293 /*static*/ int TYXMLTools::getElementAttributeToInt(DOM_Element parentElem, DOMString attName, bool* ok)
294 {
295  return getElementAttributeToString(parentElem, attName).toInt(ok);
296 }
297 
298 /*static*/ unsigned TYXMLTools::getElementAttributeToUnsigned(DOM_Element parentElem, DOMString attName,
299  bool* ok)
300 {
301  return getElementAttributeToString(parentElem, attName).toUInt(ok);
302 }
QDomNode DOM_Node
Definition: QT2DOM.h:32
QString DOMString
Definition: QT2DOM.h:31
QDomElement DOM_Element
Definition: QT2DOM.h:30
static int getElementAttributeToInt(DOM_Element parentElem, DOMString attName, bool *ok=NULL)
Definition: TYXMLTools.cpp:293
static void addElementDoubleValue(DOM_Element &parentElem, DOMString nodeName, double nodeValue)
Definition: TYXMLTools.cpp:87
static bool getElementBoolValue(DOM_Element parentElem, DOMString nodeName, bool &nodeValue)
Definition: TYXMLTools.cpp:179
static bool getElementStringValue(DOM_Element parentElem, DOMString nodeName, QString &nodeValue)
Definition: TYXMLTools.cpp:93
static unsigned getElementAttributeToUnsigned(DOM_Element parentElem, DOMString attName, bool *ok=NULL)
Definition: TYXMLTools.cpp:298
static QString getElementAttributeToString(DOM_Element parentElem, DOMString attName)
Definition: TYXMLTools.cpp:276
static void addElementIntValue(DOM_Element &parentElem, DOMString nodeName, int nodeValue)
Definition: TYXMLTools.cpp:72
static bool getElementFloatValue(DOM_Element parentElem, DOMString nodeName, float &nodeValue)
Definition: TYXMLTools.cpp:211
static void getElementUIntValue(DOM_Element parentElem, DOMString nodeName, unsigned int &nodeValue, bool &ok)
Definition: TYXMLTools.cpp:161
static bool getElementIntValue(DOM_Element parentElem, DOMString nodeName, int &nodeValue)
Definition: TYXMLTools.cpp:129
static double getElementAttributeToDouble(DOM_Element parentElem, DOMString attName, bool *ok=NULL)
Definition: TYXMLTools.cpp:288
static bool getElementDoubleValue(DOM_Element parentElem, DOMString nodeName, double &nodeValue)
Definition: TYXMLTools.cpp:243
static void addElementUIntValue(DOM_Element &parentElem, DOMString nodeName, unsigned int nodeValue)
Definition: TYXMLTools.cpp:42
static void addElementBoolValue(DOM_Element &parentElem, DOMString nodeName, bool nodeValue)
Definition: TYXMLTools.cpp:77
static void addElementStringValue(DOM_Element &parentElem, DOMString nodeName, DOMString nodeValue)
Definition: TYXMLTools.cpp:24
static void addElementFloatValue(DOM_Element &parentElem, DOMString nodeName, float nodeValue)
Definition: TYXMLTools.cpp:82
std::string floatToStr(float val)
Definition: macros.h:173
std::string uintToStr(unsigned int val)
Definition: macros.h:86
std::string doubleToStr(double val)
Definition: macros.h:188
std::string intToStr(int val)
Definition: macros.h:158