private void processAtomsBlock(int lineCount, IAtomContainer container) throws IOException { for (int i = 0; i < lineCount; i++) { String line = input.readLine(); int atomicNumber = Integer.parseInt(line.substring(7, 10).trim()); IAtom atom = container.getBuilder().newAtom(); atom.setAtomicNumber(atomicNumber); atom.setSymbol(Symbols.byAtomicNumber[atomicNumber]); container.addAtom(atom); } }
private void processBondsBlock(int lineCount, IAtomContainer container) throws IOException { for (int i = 0; i < lineCount; i++) { String line = input.readLine(); int atom1 = Integer.parseInt(line.substring(10, 13).trim()) - 1; int atom2 = Integer.parseInt(line.substring(16, 19).trim()) - 1; if (container.getBond(container.getAtom(atom1), container.getAtom(atom2)) == null) { IBond bond = container.getBuilder().newBond(container.getAtom(atom1), container.getAtom(atom2)); int order = Integer.parseInt(line.substring(23).trim()); bond.setOrder(BondManipulator.createBondOrder((double) order)); container.addBond(bond); } // else: bond already present; CTX store the bonds twice } }