1 /* Copyright (C) 2006-2007 Egon Willighagen <egonw@users.sf.net> 2 * 3 * Contact: cdk-devel@lists.sourceforge.net 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public License 7 * as published by the Free Software Foundation; either version 2.1 8 * of the License, or (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 */ 19 package org.openscience.cdk.interfaces; 20 21 /** 22 * The base class for atom types. 23 * 24 * Atom types are typically used to describe the 25 * behaviour of an atom of a particular element in different environment like 26 * sp<sup>3</sup> hybridized carbon C3, etc., in some molecular modelling 27 * applications. 28 * 29 * @cdk.module interfaces 30 * @cdk.githash 31 * 32 * @author egonw 33 * @cdk.created 2005-08-24 34 * 35 * @cdk.keyword atom, type 36 */ 37 public interface IAtomType extends IIsotope { 38 39 /** 40 * 41 * An enum for the different hybridization states. 42 * 43 */ 44 public enum Hybridization { 45 S, SP1, // linear 46 SP2, // trigonal planar (single pi-electron in pz) 47 SP3, // tetrahedral 48 PLANAR3, // trigonal planar (lone pair in pz) 49 SP3D1, // trigonal planar 50 SP3D2, // octahedral 51 SP3D3, // pentagonal bipyramid 52 SP3D4, // square antiprim?? 53 SP3D5 // tricapped trigonal prism 54 } 55 56 /** 57 * Sets the if attribute of the AtomType object. 58 * 59 * @param identifier The new AtomTypeID value. Null if unset. 60 * @see #getAtomTypeName 61 */ setAtomTypeName(String identifier)62 public void setAtomTypeName(String identifier); 63 64 /** 65 * Sets the MaxBondOrder attribute of the AtomType object. 66 * 67 * @param maxBondOrder The new MaxBondOrder value 68 * @see #getMaxBondOrder 69 */ setMaxBondOrder(IBond.Order maxBondOrder)70 public void setMaxBondOrder(IBond.Order maxBondOrder); 71 72 /** 73 * Sets the the exact bond order sum attribute of the AtomType object. 74 * 75 * @param bondOrderSum The new bondOrderSum value 76 * @see #getBondOrderSum 77 */ setBondOrderSum(Double bondOrderSum)78 public void setBondOrderSum(Double bondOrderSum); 79 80 /** 81 * Gets the id attribute of the AtomType object. 82 * 83 * @return The id value 84 * @see #setAtomTypeName 85 */ getAtomTypeName()86 public String getAtomTypeName(); 87 88 /** 89 * Gets the MaxBondOrder attribute of the AtomType object. 90 * 91 * @return The MaxBondOrder value 92 * @see #setMaxBondOrder 93 */ getMaxBondOrder()94 public IBond.Order getMaxBondOrder(); 95 96 /** 97 * Gets the bondOrderSum attribute of the AtomType object. 98 * 99 * @return The bondOrderSum value 100 * @see #setBondOrderSum 101 */ getBondOrderSum()102 public Double getBondOrderSum(); 103 104 /** 105 * Sets the formal charge of this atom. 106 * 107 * @param charge The formal charge 108 * @see #getFormalCharge 109 */ setFormalCharge(Integer charge)110 public void setFormalCharge(Integer charge); 111 112 /** 113 * Returns the formal charge of this atom. 114 * 115 * @return the formal charge of this atom 116 * @see #setFormalCharge 117 */ getFormalCharge()118 public Integer getFormalCharge(); 119 120 /** 121 * Sets the formal neighbour count of this atom. 122 * 123 * @param count The neighbour count 124 * @see #getFormalNeighbourCount 125 */ setFormalNeighbourCount(Integer count)126 public void setFormalNeighbourCount(Integer count); 127 128 /** 129 * Returns the formal neighbour count of this atom. 130 * 131 * @return the formal neighbour count of this atom 132 * @see #setFormalNeighbourCount 133 */ getFormalNeighbourCount()134 public Integer getFormalNeighbourCount(); 135 136 /** 137 * Sets the hybridization of this atom. 138 * 139 * @param hybridization The hybridization 140 * @see #getHybridization 141 */ setHybridization(Hybridization hybridization)142 public void setHybridization(Hybridization hybridization); 143 144 /** 145 * Returns the hybridization of this atom. 146 * 147 * @return the hybridization of this atom 148 * @see #setHybridization 149 */ getHybridization()150 public Hybridization getHybridization(); 151 152 /** 153 * Sets the covalent radius for this AtomType. 154 * 155 * @param radius The covalent radius for this AtomType 156 * @see #getCovalentRadius 157 */ setCovalentRadius(Double radius)158 public void setCovalentRadius(Double radius); 159 160 /** 161 * Returns the covalent radius for this AtomType. 162 * 163 * @return The covalent radius for this AtomType 164 * @see #setCovalentRadius 165 */ getCovalentRadius()166 public Double getCovalentRadius(); 167 168 /** 169 * Sets the the exact electron valency of the AtomType object. 170 * 171 * @param valency The new valency value 172 * @see #getValency() 173 */ setValency(Integer valency)174 public void setValency(Integer valency); 175 176 /** 177 * Gets the the exact electron valency of the AtomType object. 178 * 179 * @return The valency value 180 * @see #setValency(Integer) 181 */ getValency()182 public Integer getValency(); 183 184 } 185