From: <mig...@us...> - 2006-07-07 14:04:35
|
Revision: 6623 Author: miguelrojasch Date: 2006-07-07 07:04:23 -0700 (Fri, 07 Jul 2006) ViewCVS: http://svn.sourceforge.net/cdk/?rev=6623&view=rev Log Message: ----------- added new Query for atomContainer which checks the Symbol, charge and ID. Modified Paths: -------------- trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/QueryAtomContainerCreator.java Added Paths: ----------- trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/SymbolChargeIDQueryAtom.java Modified: trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/QueryAtomContainerCreator.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/QueryAtomContainerCreator.java 2006-07-07 13:26:46 UTC (rev 6622) +++ trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/QueryAtomContainerCreator.java 2006-07-07 14:04:23 UTC (rev 6623) @@ -99,6 +99,28 @@ return queryContainer; } + public static QueryAtomContainer createSymbolChargeIDQueryContainer(IAtomContainer container) { + QueryAtomContainer queryContainer = new QueryAtomContainer(); + IAtom[] atoms = container.getAtoms(); + for (int i = 0; i < atoms.length; i++) { + queryContainer.addAtom(new SymbolChargeIDQueryAtom(atoms[i])); + } + IBond[] bonds = container.getBonds(); + for (int i = 0; i < bonds.length; i++) { + int index1 = container.getAtomNumber(bonds[i].getAtomAt(0)); + int index2 = container.getAtomNumber(bonds[i].getAtomAt(1)); + if (bonds[i].getFlag(CDKConstants.ISAROMATIC)) { + queryContainer.addBond(new AromaticQueryBond((IQueryAtom) queryContainer.getAtomAt(index1), + (IQueryAtom) queryContainer.getAtomAt(index2), + 1.5)); + } else { + queryContainer.addBond(new OrderQueryBond((IQueryAtom) queryContainer.getAtomAt(index1), + (IQueryAtom) queryContainer.getAtomAt(index2), + bonds[i].getOrder())); + } + } + return queryContainer; + } /** * Creates a QueryAtomContainer with AnyAtoms / Aromatic Atoms and OrderQueryBonds / AromaticQueryBonds. Added: trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/SymbolChargeIDQueryAtom.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/SymbolChargeIDQueryAtom.java (rev 0) +++ trunk/cdk/src/org/openscience/cdk/isomorphism/matchers/SymbolChargeIDQueryAtom.java 2006-07-07 14:04:23 UTC (rev 6623) @@ -0,0 +1,59 @@ +/* $RCSfile$ + * $Author: kaihartmann $ + * $Date: 2006-06-07 11:41:42 +0200 (Wed, 07 Jun 2006) $ + * $Revision: 6349 $ + * + * Copyright (C) 2004-2006 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.cdk.isomorphism.matchers; + +import org.openscience.cdk.interfaces.IAtom; + +/** + * @cdk.module extra + */ +public class SymbolChargeIDQueryAtom extends org.openscience.cdk.Atom implements IQueryAtom { + + private static final long serialVersionUID = 3328313175614956150L; + + public SymbolChargeIDQueryAtom() {} + + public SymbolChargeIDQueryAtom(IAtom atom) { + super(atom.getSymbol()); + setFormalCharge(atom.getFormalCharge()); + setID(atom.getID()); + } + + public boolean matches(IAtom atom) { + return this.getSymbol().equals(atom.getSymbol())&& + this.getFormalCharge()==atom.getFormalCharge() && + this.getID().equals(atom.getID()); + }; + + public String toString() { + StringBuffer s = new StringBuffer(); + s.append("SymbolAndChargeQueryAtom("); + s.append(this.hashCode() + ", "); + s.append(getID() + ", "); + s.append(getSymbol() + ", "); + s.append(getFormalCharge()); + s.append(")"); + return s.toString(); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |