/* $Revision$ $Author$ $Date$ * * Copyright (C) 2006-2007 Egon Willighagen <egonw@users.sf.net> * * Contact: cdk-devel@lists.sourceforge.net * * 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.interfaces; /** * The base class for atom types. Atom types are typically used to describe the * behaviour of an atom of a particular element in different environment like * sp<sup>3</sup> hybridized carbon C3, etc., in some molecular modelling * applications. * * @cdk.module interfaces * @cdk.githash * * @author egonw * @cdk.created 2005-08-24 * * @cdk.keyword atom, type */ public interface IAtomType extends IIsotope { public enum Hybridization { S, SP1, // linear SP2, // trigonal planar (single pi-electron in pz) SP3, // tetrahedral PLANAR3, // trigonal planar (lone pair in pz) SP3D1, // trigonal planar SP3D2, // octahedral SP3D3, // pentagonal bipyramid SP3D4, // square antiprim?? SP3D5 // tricapped trigonal prism } /** * Sets the if attribute of the AtomType object. * * @param identifier The new AtomTypeID value. Null if unset. * @see #getAtomTypeName */ public void setAtomTypeName(String identifier); /** * Sets the MaxBondOrder attribute of the AtomType object. * * @param maxBondOrder The new MaxBondOrder value * @see #getMaxBondOrder */ public void setMaxBondOrder(IBond.Order maxBondOrder); /** * Sets the the exact bond order sum attribute of the AtomType object. * * @param bondOrderSum The new bondOrderSum value * @see #getBondOrderSum */ public void setBondOrderSum(Double bondOrderSum); /** * Gets the id attribute of the AtomType object. * * @return The id value * @see #setAtomTypeName */ public String getAtomTypeName(); /** * Gets the MaxBondOrder attribute of the AtomType object. * * @return The MaxBondOrder value * @see #setMaxBondOrder */ public IBond.Order getMaxBondOrder(); /** * Gets the bondOrderSum attribute of the AtomType object. * * @return The bondOrderSum value * @see #setBondOrderSum */ public Double getBondOrderSum(); /** * Sets the formal charge of this atom. * * @param charge The formal charge * @see #getFormalCharge */ public void setFormalCharge(Integer charge); /** * Returns the formal charge of this atom. * * @return the formal charge of this atom * @see #setFormalCharge */ public Integer getFormalCharge(); /** * Sets the formal neighbour count of this atom. * * @param count The neighbour count * @see #getFormalNeighbourCount */ public void setFormalNeighbourCount(Integer count); /** * Returns the formal neighbour count of this atom. * * @return the formal neighbour count of this atom * @see #setFormalNeighbourCount */ public Integer getFormalNeighbourCount(); /** * Sets the hybridization of this atom. * * @param hybridization The hybridization * @see #getHybridization */ public void setHybridization(Hybridization hybridization); /** * Returns the hybridization of this atom. * * @return the hybridization of this atom * @see #setHybridization */ public Hybridization getHybridization(); /** * Sets the covalent radius for this AtomType. * * @param radius The covalent radius for this AtomType * @see #getCovalentRadius */ public void setCovalentRadius(Double radius); /** * Returns the covalent radius for this AtomType. * * @return The covalent radius for this AtomType * @see #setCovalentRadius */ public Double getCovalentRadius(); /** * Sets the the exact electron valency of the AtomType object. * * @param valency The new valency value * @see #getValency() */ public void setValency(Integer valency); /** * Gets the the exact electron valency of the AtomType object. * * @return The valency value * @see #setValency(Integer) */ public Integer getValency(); }