Skip to content

Commit

Permalink
Typed the iterator, removing the need for casting when used
Browse files Browse the repository at this point in the history
Signed-off-by: Rajarshi  Guha <rajarshi.guha@gmail.com>
  • Loading branch information
egonw committed Dec 11, 2011
1 parent 1142dc6 commit 44b7e76
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 17 deletions.
Expand Up @@ -24,9 +24,9 @@

import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.io.IChemObjectReader;
import org.openscience.cdk.io.IChemObjectReader.Mode;
import org.openscience.cdk.io.IChemObjectReaderErrorHandler;
import org.openscience.cdk.io.ISimpleChemObjectReader;
import org.openscience.cdk.io.IChemObjectReader.Mode;
import org.openscience.cdk.io.listener.IChemObjectIOListener;
import org.openscience.cdk.io.setting.IOSetting;

Expand All @@ -37,7 +37,7 @@
* @cdk.module io
* @cdk.githash
*/
public abstract class DefaultIteratingChemObjectReader implements IIteratingChemObjectReader {
public abstract class DefaultIteratingChemObjectReader {

protected IChemObjectReader.Mode mode = IChemObjectReader.Mode.RELAXED;
protected IChemObjectReaderErrorHandler errorHandler = null;
Expand Down
Expand Up @@ -29,6 +29,7 @@

import java.util.Iterator;

import org.openscience.cdk.interfaces.IChemObject;
import org.openscience.cdk.io.IChemObjectReader;

/**
Expand All @@ -44,8 +45,8 @@
* @author Egon Willighagen <egonw@sci.kun.nl>
* @cdk.created 2003-10-19
*/
public interface IIteratingChemObjectReader
extends IChemObjectReader, Iterator {
public interface IIteratingChemObjectReader<T extends IChemObject>
extends IChemObjectReader, Iterator<T> {

}

Expand Up @@ -34,7 +34,6 @@

import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.interfaces.IChemObject;
import org.openscience.cdk.interfaces.IMolecule;
import org.openscience.cdk.interfaces.IChemObjectBuilder;
import org.openscience.cdk.io.ISimpleChemObjectReader;
Expand Down Expand Up @@ -82,7 +81,8 @@
* @cdk.keyword file format, MDL molfile
* @cdk.keyword file format, SDF
*/
public class IteratingMDLReader extends DefaultIteratingChemObjectReader implements IChemObjectIOListener {
public class IteratingMDLReader extends DefaultIteratingChemObjectReader
implements IChemObjectIOListener, IIteratingChemObjectReader<IAtomContainer> {

private BufferedReader input;
private static ILoggingTool logger =
Expand Down Expand Up @@ -242,7 +242,7 @@ private String extractFieldName(String fieldName, String str) {
/**
* Returns the next IMolecule.
*/
public IChemObject next() {
public IAtomContainer next() {
if (!nextAvailableIsKnown) {
hasNext();
}
Expand Down
Expand Up @@ -59,7 +59,8 @@
* @cdk.keyword file format, ASN
* @cdk.keyword PubChem
*/
public class IteratingPCCompoundASNReader extends DefaultIteratingChemObjectReader {
public class IteratingPCCompoundASNReader extends DefaultIteratingChemObjectReader
implements IIteratingChemObjectReader<IAtomContainer> {

private BufferedReader input;
private static ILoggingTool logger =
Expand Down Expand Up @@ -173,7 +174,7 @@ private int countBrackets(String currentLine) {
return bracketsOpen - bracketsClose;
}

public IChemObject next() {
public IAtomContainer next() {
if (!nextAvailableIsKnown) {
hasNext();
}
Expand Down
Expand Up @@ -32,7 +32,6 @@

import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.interfaces.IChemObject;
import org.openscience.cdk.interfaces.IMolecule;
import org.openscience.cdk.interfaces.IChemObjectBuilder;
import org.openscience.cdk.io.formats.IResourceFormat;
Expand All @@ -56,7 +55,8 @@
* @cdk.keyword file format, ASN
* @cdk.keyword PubChem
*/
public class IteratingPCCompoundXMLReader extends DefaultIteratingChemObjectReader {
public class IteratingPCCompoundXMLReader extends DefaultIteratingChemObjectReader
implements IIteratingChemObjectReader<IAtomContainer> {

private Reader primarySource;
private XmlPullParser parser;
Expand Down Expand Up @@ -140,7 +140,7 @@ public boolean hasNext() {
return hasNext;
}

public IChemObject next() {
public IAtomContainer next() {
if (!nextAvailableIsKnown) {
hasNext();
}
Expand Down
Expand Up @@ -34,7 +34,6 @@
import org.openscience.cdk.config.IsotopeFactory;
import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.interfaces.IChemModel;
import org.openscience.cdk.interfaces.IChemObject;
import org.openscience.cdk.interfaces.IChemObjectBuilder;
import org.openscience.cdk.io.formats.IResourceFormat;
import org.openscience.cdk.io.formats.PubChemSubstancesXMLFormat;
Expand All @@ -55,7 +54,8 @@
* @cdk.keyword file format, ASN
* @cdk.keyword PubChem
*/
public class IteratingPCSubstancesXMLReader extends DefaultIteratingChemObjectReader {
public class IteratingPCSubstancesXMLReader extends DefaultIteratingChemObjectReader
implements IIteratingChemObjectReader<IChemModel> {

private Reader primarySource;
private XmlPullParser parser;
Expand Down Expand Up @@ -139,7 +139,7 @@ public boolean hasNext() {
return hasNext;
}

public IChemObject next() {
public IChemModel next() {
if (!nextAvailableIsKnown) {
hasNext();
}
Expand Down
Expand Up @@ -66,7 +66,8 @@
* @cdk.keyword file format, SMILES
*/
@TestClass("org.openscience.cdk.io.iterator.IteratingSMILESReaderTest")
public class IteratingSMILESReader extends DefaultIteratingChemObjectReader {
public class IteratingSMILESReader extends DefaultIteratingChemObjectReader
implements IIteratingChemObjectReader<IAtomContainer> {

private BufferedReader input;
private static ILoggingTool logger =
Expand Down Expand Up @@ -184,7 +185,7 @@ public boolean hasNext() {
* @return The next molecule
*/
@TestMethod("testSMILESFileWithNames,testSMILESFileWithSpacesAndTabs,testSMILESTitles,testSMILESFile")
public IChemObject next() {
public IAtomContainer next() {
if (!nextAvailableIsKnown) {
hasNext();
}
Expand Down

0 comments on commit 44b7e76

Please sign in to comment.