MolecularFormulaManipulator { public static List<IIsotope> putInOrder(String[] orderElements, IMolecularFormula formula) { List<IIsotope> isotopesList = new ArrayList<IIsotope>(); for (String orderElement : orderElements) { IElement element = formula.getBuilder().newInstance(IElement.class, orderElement); if (containsElement(formula, element)) { List<IIsotope> isotopes = getIsotopes(formula, element); Collections.sort(isotopes, new Comparator<IIsotope>() { @Override public int compare(IIsotope a, IIsotope b) { Integer aMass = a.getMassNumber(); Integer bMass = b.getMassNumber(); if (aMass == null) return -1; if (bMass == null) return +1; return aMass.compareTo(bMass); } }); isotopesList.addAll(isotopes); } } return isotopesList; }  static int getAtomCount(IMolecularFormula formula); static int getElementCount(IMolecularFormula formula, IElement element); static int getElementCount(IMolecularFormula formula, IIsotope isotope); static int getElementCount(IMolecularFormula formula, String symbol); static List<IIsotope> getIsotopes(IMolecularFormula formula, IElement element); static List<IElement> elements(IMolecularFormula formula); static boolean containsElement(IMolecularFormula formula, IElement element); static IMolecularFormula removeElement(IMolecularFormula formula, IElement element); static String getString(IMolecularFormula formula, String[] orderElements,
                                   boolean setOne); static String getString(IMolecularFormula formula, String[] orderElements,
                                   boolean setOne, boolean setMassNumber); static String getString(IMolecularFormula formula); static String getString(IMolecularFormula formula, boolean setOne); static String getString(IMolecularFormula formula, boolean setOne, boolean setMassNumber); static List<IIsotope> putInOrder(String[] orderElements, IMolecularFormula formula); @Deprecated static String getHillString(IMolecularFormula formula); static String getHTML(IMolecularFormula formula); static String getHTML(IMolecularFormula formula, boolean chargeB, boolean isotopeB); static String getHTML(IMolecularFormula formula, String[] orderElements, boolean showCharge, boolean showIsotopes); static IMolecularFormula getMolecularFormula(String stringMF, IChemObjectBuilder builder); static IMolecularFormula getMajorIsotopeMolecularFormula(String stringMF, IChemObjectBuilder builder); static IMolecularFormula getMolecularFormula(String stringMF, IMolecularFormula formula); @Deprecated static double getTotalExactMass(IMolecularFormula formula); static double getTotalMassNumber(IMolecularFormula formula); static double getMass(IMolecularFormula mf, int flav); static double getMass(IMolecularFormula mf); @Deprecated static double getNaturalExactMass(IMolecularFormula formula); @Deprecated static double getMajorIsotopeMass(IMolecularFormula formula); static double getTotalNaturalAbundance(IMolecularFormula formula); static double getDBE(IMolecularFormula formula); static IMolecularFormula getMolecularFormula(IAtomContainer atomContainer); static IMolecularFormula getMolecularFormula(IAtomContainer atomContainer, IMolecularFormula formula); static IAtomContainer getAtomContainer(IMolecularFormula formula); static IAtomContainer getAtomContainer(IMolecularFormula formula, IAtomContainer atomContainer); static IAtomContainer getAtomContainer(String formulaString, IChemObjectBuilder builder); static String[] generateOrderEle(); static boolean compare(IMolecularFormula formula1, IMolecularFormula formula2); static List<IElement> getHeavyElements(IMolecularFormula formula); static String simplifyMolecularFormula(String formula); static boolean adjustProtonation(IMolecularFormula mf, int hcnt); static IMolecularFormula getMostAbundant(IMolecularFormula mf); static IMolecularFormula getMostAbundant(IAtomContainer mol); static final int MolWeight; static final int MolWeightIgnoreSpecified; static final int MonoIsotopic; static final int MostAbundant; static final Comparator<IIsotope> NAT_ABUN_COMP; }
@Test public void testPutInOrder_arrayString_IMolecularFormula() { IMolecularFormula formula = new MolecularFormula(); formula.addIsotope(builder.newInstance(IIsotope.class, "C"), 2); formula.addIsotope(builder.newInstance(IIsotope.class, "H"), 2); String[] newOrder = new String[2]; newOrder[0] = "H"; newOrder[1] = "C"; List<IIsotope> list = MolecularFormulaManipulator.putInOrder(newOrder, formula); Assert.assertEquals("H", list.get(0).getSymbol()); Assert.assertEquals("C", list.get(1).getSymbol()); newOrder = new String[2]; newOrder[0] = "C"; newOrder[1] = "H"; list = MolecularFormulaManipulator.putInOrder(newOrder, formula); Assert.assertEquals("C", list.get(0).getSymbol()); Assert.assertEquals("H", list.get(1).getSymbol()); }