From: Egon W. <eg...@us...> - 2002-12-21 20:55:19
|
Update of /cvsroot/cdk/cdk/src/org/openscience/cdk In directory sc8-pr-cvs1:/tmp/cvs-serv27153/src/org/openscience/cdk Modified Files: AtomContainer.java Ring.java RingSet.java Added Files: LonePair.java Log Message: Big step in implementing RFC #5. Not fully checked for complete implementation. --- NEW FILE: LonePair.java --- /* $RCSfile: LonePair.java,v $ * $Author: egonw $ * $Date: 2002/12/21 20:54:46 $ * $Revision: 1.1 $ * * Copyright (C) 1997-2002 The Chemistry Development Kit (CDK) project * * Contact: ste...@ic..., gez...@ma..., eg...@sc... * * 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; /** * Base class for entities containing electrons, like bonds, orbitals, lone-pairs. * * @keyword orbital * @keyword lone-pair * @keyword bond */ public class LonePair extends ElectronContainer { /** Number of electrons in the lone pair. */ protected final int electronCount = 2; /** The atom with which this lone pair is associated. */ protected Atom atom; /** * Constructs an unconnected lone pair. * */ public LonePair() { atom = null; } /** * Constructs an lone pair on an Atom. * */ public LonePair(Atom a) { this.atom = a; } /** * Returns the number of electrons in this electron container. * * @return The number of electrons in this electron container. * * @see #setElectronCount */ public int getElectronCount() { return this.electronCount; } /** * Returns the associated Atom. * * @return the associated Atom. * * @see #setAtom */ public Atom getAtom() { return this.atom; } /** * Sets the associated Atom. * * @param atom the Atom this lone pair will be associated with * * @see #getAtom */ public void setAtom(Atom a) { this.atom = a; } /** * Returns true if the given atom participates in this lone pair. * * @param atom The atom to be tested if it participates in this bond * @return true if this lone pair is associated with the atom */ public boolean contains(Atom atom) { return (atom == atom) ? true : false; } } Index: AtomContainer.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/AtomContainer.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -r1.22 -r1.23 *** AtomContainer.java 22 Oct 2002 14:25:34 -0000 1.22 --- AtomContainer.java 21 Dec 2002 20:54:46 -0000 1.23 *************** *** 29,33 **** /** ! * Base class for all chemical objects that maintain a list of Atoms and Bonds. * * @author steinbeck --- 29,41 ---- /** ! * Base class for all chemical objects that maintain a list of Atoms and ElectronContainers. ! * [...1239 lines suppressed...] ! bonds = newbonds; ! } --- 1170,1184 ---- ! /** ! * Grows the ElectronContainer array by a given size. ! * ! * @see #growArraySize ! */ ! protected void growElectronContainerArray() { ! growArraySize = electronContainers.length; ! ElectronContainer[] newelectronContainers = new ElectronContainer[electronContainers.length + growArraySize]; ! System.arraycopy(electronContainers, 0, newelectronContainers, 0, electronContainers.length); ! electronContainers = newelectronContainers; ! } Index: Ring.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/Ring.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** Ring.java 2 Oct 2002 13:17:50 -0000 1.7 --- Ring.java 21 Dec 2002 20:54:46 -0000 1.8 *************** *** 64,70 **** { atoms[i] = new Atom(elementSymbol); ! super.bonds[i - 1] = new Bond(atoms[i - 1], atoms[i], 1); } ! super.bonds[ringSize - 1] = new Bond(atoms[ringSize - 1], atoms[0], 1); super.atoms = atoms; } --- 64,70 ---- { atoms[i] = new Atom(elementSymbol); ! super.addElectronContainer(new Bond(atoms[i - 1], atoms[i], 1)); } ! super.addElectronContainer(new Bond(atoms[ringSize - 1], atoms[0], 1)); super.atoms = atoms; } *************** *** 107,117 **** { Bond tempBond; ! for (int f = 0; f < getBondCount(); f++) ! { ! tempBond = getBondAt(f); ! if (tempBond.contains(atom) && bond != tempBond) ! { ! return tempBond; ! } } return null; --- 107,118 ---- { Bond tempBond; ! for (int f = 0; f < getElectronContainerCount(); f++) { ! ElectronContainer ec = getElectronContainerAt(f); ! if (ec instanceof Bond) { ! tempBond = (Bond)ec; ! if (tempBond.contains(atom) && bond != tempBond) { ! return tempBond; ! } ! } } return null; *************** *** 127,134 **** int orderSum = 0; Bond tempBond; ! for (int i = 0; i < getBondCount(); i++) ! { ! tempBond = getBondAt(i); ! orderSum += tempBond.getOrder(); } return orderSum; --- 128,137 ---- int orderSum = 0; Bond tempBond; ! for (int i = 0; i < getElectronContainerCount(); i++) { ! ElectronContainer ec = getElectronContainerAt(i); ! if (ec instanceof Bond) { ! tempBond = (Bond)ec; ! orderSum += tempBond.getOrder(); ! } } return orderSum; Index: RingSet.java =================================================================== RCS file: /cvsroot/cdk/cdk/src/org/openscience/cdk/RingSet.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** RingSet.java 26 Sep 2002 14:56:11 -0000 1.5 --- RingSet.java 21 Dec 2002 20:54:46 -0000 1.6 *************** *** 62,65 **** --- 62,66 ---- Ring ring; Bond[] bonds; + Bond[] newBonds; Bond bond; int equalCount; *************** *** 71,83 **** ring = (Ring)this.elementAt(f); bonds = ring.getBonds(); ! if (bonds.length == newRing.getBonds().length) ! { ! for (int i = 0; i < bonds.length; i++) ! { ! bond = newRing.getBondAt(i); ! for (int n = 0; n < bonds.length; n++) ! { ! if (bond == bonds[n]) ! { equals = true; equalCount++; --- 72,81 ---- ring = (Ring)this.elementAt(f); bonds = ring.getBonds(); ! newBonds = newRing.getBonds(); ! if (bonds.length == newBonds.length) { ! for (int i = 0; i < bonds.length; i++) { ! bond = newBonds[i]; ! for (int n = 0; n < bonds.length; n++) { ! if (bond == bonds[n]) { equals = true; equalCount++; *************** *** 88,93 **** } } ! if (equalCount == bonds.length) ! { return true; } --- 86,90 ---- } } ! if (equalCount == bonds.length) { return true; } |