File indexing completed on 2024-05-05 03:42:12
0001 /* 0002 SPDX-FileCopyrightText: 2005, 2006 Carsten Niehaus <cniehaus@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "chemicaldataobject.h" 0008 #include "element.h" 0009 #include "elementparser.h" 0010 #include <QDebug> 0011 #include <iostream> 0012 0013 int main(int argc, char *argv[]) 0014 { 0015 if (argc < 2 || argc > 2) { 0016 std::cout << "Usage: elements <XML_FILE>\n"; 0017 return 1; 0018 } 0019 0020 auto parser = new ElementSaxParser(); 0021 QFile xmlFile(argv[1]); 0022 0023 QXmlInputSource source(&xmlFile); 0024 QXmlSimpleReader reader; 0025 0026 reader.setContentHandler(parser); 0027 reader.parse(source); 0028 0029 const QList<Element *> v = parser->getElements(); 0030 0031 std::cout << "Found " << v.count() << " elements." << std::endl; 0032 0033 for (Element *e : v) { 0034 if (e) { 0035 const QList<ChemicalDataObject> list = e->data(); 0036 0037 // Test: give me all data available 0038 for (const ChemicalDataObject &o : list) { 0039 QString unit = o.unitAsString(); 0040 if (unit == QLatin1String("bo:noUnit")) { 0041 unit = QLatin1String(""); 0042 } 0043 qDebug() << "Name: " << o.type() << " " << o.valueAsString() << " " << unit; 0044 } 0045 } 0046 } 0047 0048 delete parser; 0049 qDeleteAll(v); 0050 0051 return 0; 0052 } 0053 0054 // QString dictRef( int type ) const 0055 // { 0056 // QString botype; 0057 // switch (type) { 0058 // case atomicNumber: 0059 // botype = "atomicNumber"; 0060 // break; 0061 // case symbol: 0062 // botype = "symbol"; 0063 // break; 0064 // case name: 0065 // botype = "name"; 0066 // break; 0067 // case mass: 0068 // botype = "mass"; 0069 // break; 0070 // case exactMass: 0071 // botype = "exactMass"; 0072 // break; 0073 // case spin: 0074 // botype = "spin"; 0075 // break; 0076 // case magneticMoment: 0077 // botype = "magneticMoment"; 0078 // break; 0079 // case halfLife: 0080 // botype = "halfLife"; 0081 // break; 0082 // case alphaDecay: 0083 // botype = "alphaDecay"; 0084 // break; 0085 // case alphaDecayLikeliness: 0086 // botype = "alphaDecayLikeliness"; 0087 // break; 0088 // case betaminusDecayLikeliness: 0089 // botype = "betaminusDecayLikeliness"; 0090 // break; 0091 // case betaminusDecay: 0092 // botype = "betaminusDecay"; 0093 // break; 0094 // case betaplusDecayLikeliness: 0095 // botype = "betaplusDecayLikeliness"; 0096 // break; 0097 // case betaplusDecay: 0098 // botype = "betaplusDecay"; 0099 // break; 0100 // case ecDecayLikeliness: 0101 // botype = "ecDecayLikeliness"; 0102 // break; 0103 // case ecDecay: 0104 // botype = "ecDecay"; 0105 // break; 0106 // case ionization: 0107 // botype = "ionization"; 0108 // break; 0109 // case electronAffinity: 0110 // botype = "electronAffinity"; 0111 // break; 0112 // case electronegativityPauling: 0113 // botype = "electronegativityPauling"; 0114 // break; 0115 // case radiusCovalent: 0116 // botype = "radiusCovalent"; 0117 // break; 0118 // case radiusVDW: 0119 // botype = "radiusVDW"; 0120 // break; 0121 // case meltingpoint: 0122 // botype = "meltingpoint"; 0123 // break; 0124 // case boilingpoint: 0125 // botype = "boilingpoint"; 0126 // break; 0127 // case periodTableBlock: 0128 // botype = "periodTableBlock"; 0129 // break; 0130 // case nameOrigin: 0131 // botype = "nameOrigin"; 0132 // break; 0133 // case orbit: 0134 // botype = "orbit"; 0135 // break; 0136 // case date: 0137 // botype = "date"; 0138 // break; 0139 // case discoverers: 0140 // botype = "discoverers"; 0141 // break; 0142 // case period: 0143 // botype = "period"; 0144 // break; 0145 // case relativeAbundance: 0146 // botype = "relativeAbundance"; 0147 // break; 0148 // case family: 0149 // botype ="family"; 0150 // break; 0151 // case group: 0152 // botype ="group"; 0153 // break; 0154 // case acidicbehaviour: 0155 // botype ="acidicbehaviour"; 0156 // break; 0157 // case electronicConfiguration: 0158 // botype ="electronicConfiguration"; 0159 // break; 0160 // case crystalstructure: 0161 // botype ="crystalstructure"; 0162 // break; 0163 // case dangerSymbol: 0164 // botype ="dangerSymbol"; 0165 // break; 0166 // case RPhrase: 0167 // botype ="RPhrase"; 0168 // break; 0169 // case SPhrase: 0170 // botype ="SPhrase"; 0171 // break; 0172 // case discoveryCountry: 0173 // botype ="discoveryCountry"; 0174 // break; 0175 // } 0176 // 0177 // botype = botype.prepend( QLatin1String("bo:") ); 0178 // 0179 // return botype; 0180 // }