From: Egon W. <eg...@us...> - 2002-11-26 14:02:00
|
Update of /cvsroot/cdk/cdk/src/org/openscience/cdk/tools In directory sc8-pr-cvs1:/tmp/cvs-serv1928/src/org/openscience/cdk/tools Modified Files: IsotopeFactory.java Log Message: Changed getMajorIsotope methods to also deal with abundancies defined as percentages. Index: IsotopeFactory.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/tools/IsotopeFactory.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** IsotopeFactory.java 26 Nov 2002 12:45:23 -0000 1.8 --- IsotopeFactory.java 26 Nov 2002 14:01:57 -0000 1.9 *************** *** 56,59 **** --- 56,60 ---- private static IsotopeFactory ifac = null; private Vector isotopes = null; + private Hashtable majorIsotopes = null; private org.openscience.cdk.tools.LoggingTool logger; *************** *** 91,97 **** for (int f = 0; f < isotopes.size(); f++) { Isotope isotope = (Isotope)isotopes.elementAt(f); ! logger.debug("Setting up: " + isotope); setup(isotope); } } --- 92,100 ---- for (int f = 0; f < isotopes.size(); f++) { Isotope isotope = (Isotope)isotopes.elementAt(f); ! // logger.debug("Setting up: " + isotope); setup(isotope); } + + majorIsotopes = new Hashtable(); } *************** *** 126,153 **** } - - /** - * Returns the most abundant (major) isotope whose symbol equals element. - * - *@param symbol Description of the Parameter - *@return The Major Isotope value - */ - public Isotope getMajorIsotope(String symbol) - { - for (int f = 0; f < isotopes.size(); f++) - { - if (((Isotope) isotopes.elementAt(f)).getSymbol().equals(symbol)) - { - if ((((Isotope) isotopes.elementAt(f))).getNaturalAbundance() == ((double) 100)) - { - return (Isotope) ((Isotope) isotopes.elementAt(f)).clone(); - } - } - } - logger.error("Could not find major isotope for: " + symbol); - return null; - } - - /** * Get an array of all isotoptes known to the IsotopeFactory for the given --- 129,132 ---- *************** *** 173,196 **** /** ! * Returns the major isotope with a given atomic number ! * ! *@param atomicNumber The atomicNumber for which an isotope is to be returned ! *@return The isotope corresponding to the given atomic number ! */ ! public Isotope getMajorIsotope(int atomicNumber) ! { ! for (int f = 0; f < isotopes.size(); f++) ! { ! if (((Isotope) isotopes.elementAt(f)).getAtomicNumber() == atomicNumber) ! { ! if ((((Isotope) isotopes.elementAt(f))).getNaturalAbundance() == ((double) 100)) ! { ! return (Isotope) ((Isotope) isotopes.elementAt(f)).clone(); ! } ! } ! } ! return null; ! } ! /** --- 152,216 ---- /** ! * Returns the most abundant (major) isotope with a given atomic number. ! * ! * <p>The isotope's abundancy is for atoms with atomic number 60 and smaller ! * defined as a number that is proportional to the 100 of the most abundant ! * isotope. For atoms with higher atomic numbers, the abundancy is defined ! * as a percentage. ! * ! * @param atomicNumber The atomicNumber for which an isotope is to be returned ! * @return The isotope corresponding to the given atomic number ! * ! * @see getMajorIsotope(String symbol) ! */ ! public Isotope getMajorIsotope(int atomicNumber) { ! Isotope major = null; ! for (int f = 0; f < isotopes.size(); f++) { ! Isotope current = (Isotope) isotopes.elementAt(f); ! if (current.getAtomicNumber() == atomicNumber) { ! if (major == null) { ! major = (Isotope)current.clone(); ! } else { ! if (current.getNaturalAbundance() > major.getNaturalAbundance()) { ! major = (Isotope)current.clone(); ! } ! } ! } ! } ! if (major == null) logger.error("Could not find major isotope for: " + atomicNumber); ! return major; ! } ! ! /** ! * Returns the most abundant (major) isotope whose symbol equals element. ! * ! *@param symbol Description of the Parameter ! *@return The Major Isotope value ! */ ! public Isotope getMajorIsotope(String symbol) { ! Isotope major = null; ! if (majorIsotopes.contains(symbol)) { ! major = (Isotope)majorIsotopes.get(symbol); ! } else { ! for (int f = 0; f < isotopes.size(); f++) { ! Isotope current = (Isotope) isotopes.elementAt(f); ! if (current.getSymbol().equals(symbol)) { ! if (major == null) { ! major = (Isotope)current.clone(); ! } else { ! if (current.getNaturalAbundance() > major.getNaturalAbundance()) { ! major = (Isotope)current.clone(); ! } ! } ! } ! } ! if (major == null) { ! logger.error("Could not find major isotope for: " + symbol); ! } else { ! majorIsotopes.put(symbol, major); ! } ! } ! return major; ! } /** |