From: <sh...@us...> - 2008-06-27 11:03:46
|
Revision: 11449 http://cdk.svn.sourceforge.net/cdk/?rev=11449&view=rev Author: shk3 Date: 2008-06-27 04:03:25 -0700 (Fri, 27 Jun 2008) Log Message: ----------- The cdk source code writer did not care about pseudo atoms and therefore produced broken code Modified Paths: -------------- cdk/branches/cdk-1.0.x/src/org/openscience/cdk/io/CDKSourceCodeWriter.java cdk/branches/cdk-1.0.x/src/org/openscience/cdk/test/io/CDKSourceCodeWriterTest.java Modified: cdk/branches/cdk-1.0.x/src/org/openscience/cdk/io/CDKSourceCodeWriter.java =================================================================== --- cdk/branches/cdk-1.0.x/src/org/openscience/cdk/io/CDKSourceCodeWriter.java 2008-06-27 10:54:46 UTC (rev 11448) +++ cdk/branches/cdk-1.0.x/src/org/openscience/cdk/io/CDKSourceCodeWriter.java 2008-06-27 11:03:25 UTC (rev 11449) @@ -24,23 +24,30 @@ */ package org.openscience.cdk.io; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.util.Iterator; + +import javax.vecmath.Point2d; +import javax.vecmath.Point3d; + import org.openscience.cdk.exception.CDKException; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.interfaces.IBond; import org.openscience.cdk.interfaces.IChemObject; import org.openscience.cdk.interfaces.IMolecule; +import org.openscience.cdk.interfaces.IPseudoAtom; import org.openscience.cdk.io.formats.CDKSourceCodeFormat; import org.openscience.cdk.io.formats.IResourceFormat; import org.openscience.cdk.tools.DataFeatures; import org.openscience.cdk.tools.IDCreator; import org.openscience.cdk.tools.LoggingTool; -import javax.vecmath.Point2d; -import javax.vecmath.Point3d; -import java.io.*; -import java.util.Iterator; - /** * Converts a Molecule into CDK source code that would build the same * molecule. It's typical use is: @@ -185,7 +192,7 @@ } public void writeAtom(IAtom atom) throws Exception { - writer.write(" IAtom " + atom.getID() + " = mol.getBuilder().newAtom(\"" + atom.getSymbol() + + writer.write(" IAtom " + atom.getID() + " = mol.getBuilder().new"+(atom instanceof IPseudoAtom ? "Pseudo" : "")+"Atom(\"" + atom.getSymbol() + "\");\n"); if (atom.getPoint2d() != null) { Point2d p2d = atom.getPoint2d(); Modified: cdk/branches/cdk-1.0.x/src/org/openscience/cdk/test/io/CDKSourceCodeWriterTest.java =================================================================== --- cdk/branches/cdk-1.0.x/src/org/openscience/cdk/test/io/CDKSourceCodeWriterTest.java 2008-06-27 10:54:46 UTC (rev 11448) +++ cdk/branches/cdk-1.0.x/src/org/openscience/cdk/test/io/CDKSourceCodeWriterTest.java 2008-06-27 11:03:25 UTC (rev 11449) @@ -32,6 +32,7 @@ import org.openscience.cdk.Atom; import org.openscience.cdk.AtomContainer; import org.openscience.cdk.Molecule; +import org.openscience.cdk.PseudoAtom; import org.openscience.cdk.io.CDKSourceCodeWriter; import org.openscience.cdk.test.CDKTestCase; @@ -71,4 +72,17 @@ System.out.println(output); assertTrue(output.indexOf("IAtom a1 = mol.getBuilder().newAtom(\"C\")") != -1); } + + public void testPseudoAtom() throws Exception { + StringWriter writer = new StringWriter(); + Molecule molecule = new Molecule(); + Atom atom = new PseudoAtom("R"); + molecule.addAtom(atom); + + CDKSourceCodeWriter sourceWriter = new CDKSourceCodeWriter(writer); + sourceWriter.write(molecule); + String output = writer.toString(); + System.out.println(output); + assertTrue(output.indexOf("IAtom a1 = mol.getBuilder().newPseudoAtom(\"R\")") != -1); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |