1 /***************************************************************************
2 * Copyright (C) 2005, 2006 by Pino Toscano, toscano.pino@tiscali.it *
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. *
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. *
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"
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
;
41 KalziumNumerationType
* KalziumNumerationTypeFactory::build( int id
) const
43 if ( ( id
< 0 ) || ( id
>= m_numerations
.count() ) )
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
);
61 QStringList
KalziumNumerationTypeFactory::numerations() const
64 for ( int i
= 0; i
< m_numerations
.count(); i
++ )
66 l
<< m_numerations
.at( i
)->description();
72 KalziumNumerationType
* KalziumNumerationType::instance()
77 KalziumNumerationType::KalziumNumerationType()
81 KalziumNumerationType::~KalziumNumerationType()
85 QString
KalziumNumerationType::item( const int num
) const
87 if ( ( num
< 0 ) || ( num
>= m_items
.count() ) )
90 return m_items
.at( num
);
93 QStringList
KalziumNumerationType::items() const
99 KalziumNoneNumerationType
* KalziumNoneNumerationType::instance()
101 static KalziumNoneNumerationType knnt
;
105 KalziumNoneNumerationType::KalziumNoneNumerationType()
106 : KalziumNumerationType()
110 QByteArray
KalziumNoneNumerationType::name() const
115 QString
KalziumNoneNumerationType::description() const
117 return i18n( "No Numeration" );
120 QString
KalziumNoneNumerationType::item( const int num
) const
126 QStringList
KalziumNoneNumerationType::items() const
128 return QStringList();
131 KalziumIUPACNumerationType
* KalziumIUPACNumerationType::instance()
133 static KalziumIUPACNumerationType kint
;
137 KalziumIUPACNumerationType::KalziumIUPACNumerationType()
138 : KalziumNumerationType()
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
166 QString
KalziumIUPACNumerationType::description() const
168 return i18n( "IUPAC" );
171 KalziumCASNumerationType
* KalziumCASNumerationType::instance()
173 static KalziumCASNumerationType kcnt
;
177 KalziumCASNumerationType::KalziumCASNumerationType()
178 : KalziumNumerationType()
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
206 QString
KalziumCASNumerationType::description() const
208 return i18n( "CAS" );
211 KalziumOldIUPACNumerationType
* KalziumOldIUPACNumerationType::instance()
213 static KalziumOldIUPACNumerationType koint
;
217 KalziumOldIUPACNumerationType::KalziumOldIUPACNumerationType()
218 : KalziumNumerationType()
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
246 QString
KalziumOldIUPACNumerationType::description() const
248 return i18n( "Old IUPAC" );