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 // }