Skip to content

Commit

Permalink
More use of interfaces rather than implementations for the smiles module
Browse files Browse the repository at this point in the history
Signed-off-by: Rajarshi Guha <rajarshi.guha@gmail.com>
  • Loading branch information
egonw authored and rajarshi committed Nov 2, 2011
1 parent 3eaeaa7 commit c3040e8
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 18 deletions.
24 changes: 10 additions & 14 deletions src/main/org/openscience/cdk/smiles/DeduceBondSystemTool.java
Expand Up @@ -31,11 +31,7 @@
import java.util.Iterator;
import java.util.List;

import org.openscience.cdk.Atom;
import org.openscience.cdk.CDKConstants;
import org.openscience.cdk.Molecule;
import org.openscience.cdk.Ring;
import org.openscience.cdk.RingSet;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.aromaticity.CDKHueckelAromaticityDetector;
Expand Down Expand Up @@ -343,7 +339,7 @@ private void sixMemberedRingPossibilities(IMolecule m, IRing r, List MasterList)
// 6 possibilities for placing 2 double bonds
// 6 possibilities for placing 1 double bonds

IAtom [] ringatoms = new Atom [6];
IAtom [] ringatoms = new IAtom [6];

ringatoms[0] = r.getAtom(0);

Expand Down Expand Up @@ -449,7 +445,7 @@ private void sixMemberedRingPossibilities(IMolecule m, IRing r, List MasterList)
private void sevenMemberedRingPossibilities(IMolecule m, IRing r, List MasterList) {
// for now only consider case where have 3 double bonds

IAtom[] ringatoms = new Atom[7];
IAtom[] ringatoms = new IAtom[7];

ringatoms[0] = r.getAtom(0);

Expand Down Expand Up @@ -561,7 +557,7 @@ private int getBadCount(IMolecule molecule, IRingSet ringSet) {

private boolean inRingSet(IAtom atom, IRingSet ringSet) {
for (int i = 0; i < ringSet.getAtomContainerCount(); i++) {
Ring ring = (Ring) ringSet.getAtomContainer(i);
IRing ring = (IRing) ringSet.getAtomContainer(i);
if (ring.contains(atom)) return true;
}
return false;
Expand Down Expand Up @@ -598,7 +594,7 @@ private IMolecule loop(long starttime, IMolecule molecule, int index,

IMolecule mnew = null;
try {
mnew = (Molecule) molecule.clone();
mnew = (IMolecule) molecule.clone();
} catch (Exception e) {
logger.error("Failed to clone molecule: ", e.getMessage());
logger.debug(e);
Expand Down Expand Up @@ -666,13 +662,13 @@ private boolean isStructureOK(IMolecule molecule) {
molecule.getAtom(i).setFlag(CDKConstants.ISAROMATIC, false);
}
for (int i = 0; i <= ringSet.getAtomContainerCount() - 1; i++) {
Ring r = (Ring) ringSet.getAtomContainer(i);
IRing r = (IRing) ringSet.getAtomContainer(i);
r.setFlag(CDKConstants.ISAROMATIC, false);
}
// now, detect aromaticity from cratch, and mark rings as aromatic too (if ...)
CDKHueckelAromaticityDetector.detectAromaticity(molecule);
for (int i = 0; i <= ringSet.getAtomContainerCount() - 1; i++) {
Ring ring = (Ring) ringSet.getAtomContainer(i);
IRing ring = (IRing) ringSet.getAtomContainer(i);
RingManipulator.markAromaticRings(ring);
}

Expand All @@ -684,7 +680,7 @@ private boolean isStructureOK(IMolecule molecule) {
// }

for (int i = 0; i <= ringSet.getAtomContainerCount() - 1; i++) {
Ring ring = (Ring) ringSet.getAtomContainer(i);
IRing ring = (IRing) ringSet.getAtomContainer(i);

//logger.debug(k+"\t"+r.getAtomCount()+"\t"+r.getFlag(CDKConstants.ISAROMATIC));
if (Check[i]) {
Expand Down Expand Up @@ -731,7 +727,7 @@ private IRingSet removeExtraRings(IMolecule m) {
iloop:
for (int i = 0; i <= rs.getAtomContainerCount() - 1; i++) {

IRing r = (Ring) rs.getAtomContainer(i);
IRing r = (IRing) rs.getAtomContainer(i);


if (r.getAtomCount() > 7 || r.getAtomCount() < 5) {
Expand Down Expand Up @@ -771,7 +767,7 @@ private IRingSet removeExtraRings(IMolecule m) {
return rs;

} catch (Exception e) {
return new RingSet();
return m.getBuilder().newInstance(IRingSet.class);
}
}

Expand All @@ -787,7 +783,7 @@ private boolean[] findRingsToCheck(IRingSet rs) {

for (int i = 0; i <= rs.getAtomContainerCount() - 1; i++) {

IRing r = (Ring) rs.getAtomContainer(i);
IRing r = (IRing) rs.getAtomContainer(i);

if (r.getAtomCount() > 7) {
Check[i] = false;
Expand Down
3 changes: 1 addition & 2 deletions src/main/org/openscience/cdk/smiles/SmilesGenerator.java
Expand Up @@ -25,7 +25,6 @@
package org.openscience.cdk.smiles;

import org.openscience.cdk.CDKConstants;
import org.openscience.cdk.PseudoAtom;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.aromaticity.CDKHueckelAromaticityDetector;
Expand Down Expand Up @@ -1622,7 +1621,7 @@ private void parseBond(StringBuffer line, IAtom a1, IAtom a2, IAtomContainer ato
private void parseAtom(IAtom a, StringBuffer buffer, IAtomContainer container, boolean chiral, boolean[] doubleBondConfiguration, IAtom parent, List atomsInOrderOfSmiles, List currentChain, boolean useAromaticity)
{
String symbol = a.getSymbol();
if (a instanceof PseudoAtom) symbol = "*";
if (a instanceof IPseudoAtom) symbol = "*";

boolean stereo = false;
if(chiral)
Expand Down
3 changes: 1 addition & 2 deletions src/main/org/openscience/cdk/smiles/SmilesParser.java
Expand Up @@ -46,7 +46,6 @@
import org.openscience.cdk.interfaces.IReaction;
import org.openscience.cdk.interfaces.ITetrahedralChirality;
import org.openscience.cdk.interfaces.ITetrahedralChirality.Stereo;
import org.openscience.cdk.stereo.TetrahedralChirality;
import org.openscience.cdk.tools.CDKHydrogenAdder;
import org.openscience.cdk.tools.ILoggingTool;
import org.openscience.cdk.tools.LoggingToolFactory;
Expand Down Expand Up @@ -243,7 +242,7 @@ public IMolecule parseSmiles(String smiles) throws InvalidSmilesException {
TemporaryChiralityStorage chirality = chiralityInfo.get(atom);
logger.debug("Chiral atom found: ", atom);
IAtom[] atoms = chirality.atoms;
ITetrahedralChirality l4Chiral = new TetrahedralChirality(
ITetrahedralChirality l4Chiral = builder.newInstance(ITetrahedralChirality.class,
atom,
new IAtom[]{
atoms[0], atoms[1], atoms[2], atoms[3]
Expand Down

0 comments on commit c3040e8

Please sign in to comment.