/** * Validate the occurrence of this IMolecularFormula. * * @param formula Parameter is the IMolecularFormula * @return An ArrayList containing 9 elements in the order described above */ @Override public double validate(IMolecularFormula formula) throws CDKException { logger.info("Start validation of ", formula); ensureDefaultOccurElements(formula.getBuilder()); double isValid = 1.0; Iterator<IElement> itElem = MolecularFormulaManipulator.elements(formula).iterator(); while (itElem.hasNext()) { IElement element = itElem.next(); int occur = MolecularFormulaManipulator.getElementCount(formula, element); IIsotope elemIsotope = formula.getBuilder().newInstance(IIsotope.class, element.getSymbol()); if ((occur < mfRange.getIsotopeCountMin(elemIsotope)) || (occur > mfRange.getIsotopeCountMax(elemIsotope))) { isValid = 0.0; break; } } return isValid; }