Test change - can I push OK?
[kdeedu-porting.git] / kalzium / src / kalziumnumerationtype.cpp
bloba26b56814b41754e14554967081a29289425d93e
1 /***************************************************************************
2 * Copyright (C) 2005, 2006 by Pino Toscano, toscano.pino@tiscali.it *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18 ***************************************************************************/
20 #include "kalziumnumerationtype.h"
22 #include "kalziumdataobject.h"
23 #include "kalziumtabletype.h"
25 #include <klocale.h>
27 KalziumNumerationTypeFactory::KalziumNumerationTypeFactory()
29 m_numerations << KalziumNoneNumerationType::instance();
30 m_numerations << KalziumIUPACNumerationType::instance();
31 m_numerations << KalziumCASNumerationType::instance();
32 m_numerations << KalziumOldIUPACNumerationType::instance();
35 KalziumNumerationTypeFactory* KalziumNumerationTypeFactory::instance()
37 static KalziumNumerationTypeFactory kntf;
38 return &kntf;
41 KalziumNumerationType* KalziumNumerationTypeFactory::build( int id ) const
43 if ( ( id < 0 ) || ( id >= m_numerations.count() ) )
44 return 0;
46 return m_numerations.at( id );
49 KalziumNumerationType* KalziumNumerationTypeFactory::build( const QByteArray& id ) const
51 for ( int i = 0; i < m_numerations.count(); i++ )
53 if ( m_numerations.at( i )->name() == id )
54 return m_numerations.at( i );
57 // not found
58 return 0;
61 QStringList KalziumNumerationTypeFactory::numerations() const
63 QStringList l;
64 for ( int i = 0; i < m_numerations.count(); i++ )
66 l << m_numerations.at( i )->description();
68 return l;
72 KalziumNumerationType* KalziumNumerationType::instance()
74 return 0;
77 KalziumNumerationType::KalziumNumerationType()
81 KalziumNumerationType::~KalziumNumerationType()
85 QString KalziumNumerationType::item( const int num ) const
87 if ( ( num < 0 ) || ( num >= m_items.count() ) )
88 return QString();
90 return m_items.at( num );
93 QStringList KalziumNumerationType::items() const
95 return m_items;
99 KalziumNoneNumerationType* KalziumNoneNumerationType::instance()
101 static KalziumNoneNumerationType knnt;
102 return &knnt;
105 KalziumNoneNumerationType::KalziumNoneNumerationType()
106 : KalziumNumerationType()
110 QByteArray KalziumNoneNumerationType::name() const
112 return "None";
115 QString KalziumNoneNumerationType::description() const
117 return i18n( "No Numeration" );
120 QString KalziumNoneNumerationType::item( const int num ) const
122 Q_UNUSED( num );
123 return QString();
126 QStringList KalziumNoneNumerationType::items() const
128 return QStringList();
131 KalziumIUPACNumerationType* KalziumIUPACNumerationType::instance()
133 static KalziumIUPACNumerationType kint;
134 return &kint;
137 KalziumIUPACNumerationType::KalziumIUPACNumerationType()
138 : KalziumNumerationType()
140 // cache them
141 m_items << QString( "1" );
142 m_items << QString( "2" );
143 m_items << QString( "3" );
144 m_items << QString( "4" );
145 m_items << QString( "5" );
146 m_items << QString( "6" );
147 m_items << QString( "7" );
148 m_items << QString( "8" );
149 m_items << QString( "9" );
150 m_items << QString( "10" );
151 m_items << QString( "11" );
152 m_items << QString( "12" );
153 m_items << QString( "13" );
154 m_items << QString( "14" );
155 m_items << QString( "15" );
156 m_items << QString( "16" );
157 m_items << QString( "17" );
158 m_items << QString( "18" );
161 QByteArray KalziumIUPACNumerationType::name() const
163 return "IUPAC";
166 QString KalziumIUPACNumerationType::description() const
168 return i18n( "IUPAC" );
171 KalziumCASNumerationType* KalziumCASNumerationType::instance()
173 static KalziumCASNumerationType kcnt;
174 return &kcnt;
177 KalziumCASNumerationType::KalziumCASNumerationType()
178 : KalziumNumerationType()
180 // cache them
181 m_items << QString( "IA" );
182 m_items << QString( "IIA" );
183 m_items << QString( "IIIB" );
184 m_items << QString( "IVB" );
185 m_items << QString( "VB" );
186 m_items << QString( "VIB" );
187 m_items << QString( "VIIB" );
188 m_items << QString( "VIII" );
189 m_items << QString( "VIII" );
190 m_items << QString( "VIII" );
191 m_items << QString( "IB" );
192 m_items << QString( "IIB" );
193 m_items << QString( "IIIA" );
194 m_items << QString( "IVA" );
195 m_items << QString( "VA" );
196 m_items << QString( "VIA" );
197 m_items << QString( "VIIA" );
198 m_items << QString( "VIIIA" );
201 QByteArray KalziumCASNumerationType::name() const
203 return "CAS";
206 QString KalziumCASNumerationType::description() const
208 return i18n( "CAS" );
211 KalziumOldIUPACNumerationType* KalziumOldIUPACNumerationType::instance()
213 static KalziumOldIUPACNumerationType koint;
214 return &koint;
217 KalziumOldIUPACNumerationType::KalziumOldIUPACNumerationType()
218 : KalziumNumerationType()
220 // cache them
221 m_items << QString( "1A" );
222 m_items << QString( "2A" );
223 m_items << QString( "3A" );
224 m_items << QString( "4A" );
225 m_items << QString( "5A" );
226 m_items << QString( "6A" );
227 m_items << QString( "7A" );
228 m_items << QString( "8" );
229 m_items << QString( "8" );
230 m_items << QString( "8" );
231 m_items << QString( "1B" );
232 m_items << QString( "2B" );
233 m_items << QString( "3B" );
234 m_items << QString( "4B" );
235 m_items << QString( "5B" );
236 m_items << QString( "6B" );
237 m_items << QString( "7B" );
238 m_items << QString( "0" );
241 QByteArray KalziumOldIUPACNumerationType::name() const
243 return "OldIUPAC";
246 QString KalziumOldIUPACNumerationType::description() const
248 return i18n( "Old IUPAC" );