Update of /cvsroot/cdk/cdk/src/org/openscience/cdk/isomorphism/matchers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16609 Modified Files: QueryAtom.java Added Files: OrderQueryBond.java QueryAtomContainer.java QueryBond.java SymbolQueryAtom.java Log Message: Finished proposed new API for matching atoms/bonds in UniversalIsomorphismTester --- NEW FILE: OrderQueryBond.java --- /* $RCSfile: OrderQueryBond.java,v $ * $Author: egonw $ * $Date: 2004/03/03 10:36:47 $ * $Revision: 1.1 $ * * Copyright (C) 2004 The Chemistry Development Kit (CDK) project * * Contact: cdk...@li... * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.openscience.cdk.isomorphism.matchers; import org.openscience.cdk.Bond; /** * @cdk.module extra */ public class OrderQueryBond extends Bond { public OrderQueryBond(QueryAtom atom1, QueryAtom atom2, double order) { super(atom1, atom2, order); } public boolean matches(Bond bond) { throw new AbstractMethodError("The QueryBond class did not implement this method"); }; } --- NEW FILE: QueryAtomContainer.java --- /* $RCSfile: QueryAtomContainer.java,v $ * $Author: egonw $ * $Date: 2004/03/03 10:36:48 $ * $Revision: 1.1 $ * * Copyright (C) 2004 The Chemistry Development Kit (CDK) project * * Contact: cdk...@li... * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.openscience.cdk.isomorphism.matchers; import org.openscience.cdk.Atom; import org.openscience.cdk.AtomContainer; import org.openscience.cdk.Bond; /** * @cdk.module extra */ public abstract class QueryAtomContainer extends AtomContainer { public QueryAtomContainer() { throw new InstantiationError("An abstract QueryAtomContainer should not be used directly"); }; public boolean matches(AtomContainer container) { throw new AbstractMethodError("The QueryBond class did not implement this method"); }; public void add(AtomContainer container) { if (container instanceof QueryAtomContainer) { super.add(container); } else { throw new IllegalArgumentException("AtomContainer is not of type QueryAtomContainer"); } } public void addAtom(Atom atom) { if (atom instanceof QueryAtom) { super.addAtom(atom); } else { throw new IllegalArgumentException("Atom is not of type QueryAtom"); } } public void addBond(Bond bond) { if (bond instanceof QueryBond) { super.addBond(bond); } else { throw new IllegalArgumentException("Bond is not of type QueryBond"); } } } --- NEW FILE: QueryBond.java --- /* $RCSfile: QueryBond.java,v $ * $Author: egonw $ * $Date: 2004/03/03 10:36:48 $ * $Revision: 1.1 $ * * Copyright (C) 2004 The Chemistry Development Kit (CDK) project * * Contact: cdk...@li... * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.openscience.cdk.isomorphism.matchers; import org.openscience.cdk.Atom; import org.openscience.cdk.Bond; /** * @cdk.module extra */ public abstract class QueryBond extends Bond { public QueryBond() { throw new InstantiationError("An abstract QueryBond should not be used directly"); }; public boolean matches(Bond bond) { throw new AbstractMethodError("The QueryBond class did not implement this method"); }; public void setAtoms(Atom[] atoms) { if (atoms.length > 0 && atoms[0] instanceof QueryAtom) { super.setAtoms(atoms); } else { throw new IllegalArgumentException("Array is not of type QueryAtom[]"); } } public void setAtomAt(Atom atom, int position) { if (atom instanceof QueryAtom) { super.setAtomAt(atom, position); } else { throw new IllegalArgumentException("Atom is not of type QueryAtom"); } } } --- NEW FILE: SymbolQueryAtom.java --- /* $RCSfile: SymbolQueryAtom.java,v $ * $Author: egonw $ * $Date: 2004/03/03 10:36:48 $ * $Revision: 1.1 $ * * Copyright (C) 2004 The Chemistry Development Kit (CDK) project * * Contact: cdk...@li... * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.openscience.cdk.isomorphism.matchers; import org.openscience.cdk.Atom; /** * @cdk.module extra */ public class SymbolQueryAtom extends Atom { public SymbolQueryAtom(String elementSymbol) { super(elementSymbol); } public boolean matches(Atom atom) { return this.getSymbol().equals(atom.getSymbol()); }; } Index: QueryAtom.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/isomorphism/matchers/QueryAtom.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- QueryAtom.java 3 Mar 2004 08:45:22 -0000 1.2 +++ QueryAtom.java 3 Mar 2004 10:36:48 -0000 1.3 @@ -4,15 +4,8 @@ * $Revision$ * * Copyright (C) 2004 The Chemistry Development Kit (CDK) project - * - * This code has been kindly provided by Stephane Werner - * and Thierry Hanser from IXELIS ma...@ix... - * - * IXELIS sarl - Semantic Information Systems - * 17 rue des C???res 67200 Strasbourg, France - * Tel/Fax : +33(0)3 88 27 81 39 Email: ma...@ix... - * - * CDK Contact: cdk...@li... + * + * Contact: cdk...@li... * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -33,9 +26,16 @@ import org.openscience.cdk.Atom; /** - * @cdk.module dontcompile + * @cdk.module extra */ -public abstract class QueryAtom extends Atom{ - public boolean matches(Atom atom) {}; +public abstract class QueryAtom extends Atom { + + public QueryAtom() { + throw new InstantiationError("An abstract QueryAtom should not be used directly"); + }; + + public boolean matches(Atom atom) { + throw new AbstractMethodError("The QueryBond class did not implement this method"); + }; } |