Class Bond

  • All Implemented Interfaces:
    Serializable, Cloneable, IBond, ICDKObject, IChemObject, IElectronContainer

    public class Bond
    extends ElectronContainer
    implements IBond, Serializable, Cloneable
    Implements the concept of a covalent bond between two or more atoms. A bond is considered to be a number of electrons connecting two or more of atoms. It should be noted that the majority of applications will consider 2-center bonds, especially since the bond orders currently supported are really only valid for 2-center bonds. However the code does support multi-center bonds, though the orders may not make sense at this point. In general code that assumes bonds are 2-centered can use this class seamlessly, as the semantics are identical to the older versions. Care shoud be exercised when using multi-center bonds using this class as the orders may not make sense.
    Author:
    steinbeck
    See Also:
    Serialized Form
    Source code:
    main
    Belongs to CDK module:
    silent
    Keywords:
    bond, atom, electron
    Created on:
    2003-10-02
    • Field Detail

      • order

        protected IBond.Order order
        The bond order of this bond.
      • atomCount

        protected int atomCount
        Number of atoms contained by this object.
      • atoms

        protected IAtom[] atoms
        A list of atoms participating in this bond.
      • stereo

        protected IBond.Stereo stereo
        A descriptor the stereochemical orientation of this bond.
    • Constructor Detail

      • Bond

        public Bond()
        Constructs an empty bond.
      • Bond

        public Bond​(IAtom atom1,
                    IAtom atom2)
        Constructs a bond with a single bond order..
        Parameters:
        atom1 - the first Atom in the bond
        atom2 - the second Atom in the bond
      • Bond

        public Bond​(IAtom atom1,
                    IAtom atom2,
                    IBond.Order order)
        Constructs a bond with a given order.
        Parameters:
        atom1 - the first Atom in the bond
        atom2 - the second Atom in the bond
        order - the bond order
      • Bond

        public Bond​(IAtom[] atoms)
        Constructs a multi-center bond, with undefined order and no stereo information.
        Parameters:
        atoms - An array of IAtom containing the atoms constituting the bond
      • Bond

        public Bond​(IAtom[] atoms,
                    IBond.Order order)
        Constructs a multi-center bond, with a specified order and no stereo information.
        Parameters:
        atoms - An array of IAtom containing the atoms constituting the bond
        order - The order of the bond
      • Bond

        public Bond​(IAtom beg,
                    IAtom end,
                    IBond.Order order,
                    IBond.Stereo stereo)
        Constructs a bond with a given order and stereo orientation from an array of atoms.
        Parameters:
        beg - the first Atom in the bond
        end - the second Atom in the bond
        order - the bond order
        stereo - a descriptor the stereochemical orientation of this bond
    • Method Detail

      • getIndex

        public int getIndex()
        Specified by:
        getIndex in interface IBond
      • setAtoms

        public void setAtoms​(IAtom[] atoms)
        Sets the array of atoms making up this bond.
        Specified by:
        setAtoms in interface IBond
        Parameters:
        atoms - An array of atoms that forms this bond
        See Also:
        atoms
      • getAtomCount

        public int getAtomCount()
        Returns the number of Atoms in this Bond.
        Specified by:
        getAtomCount in interface IBond
        Returns:
        The number of Atoms in this Bond
      • getAtom

        public IAtom getAtom​(int position)
        Returns an Atom from this bond.
        Specified by:
        getAtom in interface IBond
        Parameters:
        position - The position in this bond where the atom is
        Returns:
        The atom at the specified position, null if there are no atoms in the bond
        See Also:
        setAtom(org.openscience.cdk.interfaces.IAtom, int)
      • getBegin

        public IAtom getBegin()
        Access the begin (or first) atom of the bond.
        Specified by:
        getBegin in interface IBond
        Returns:
        the begin atom
      • getEnd

        public IAtom getEnd()
        Access the end (or second) atom of the bond.
        Specified by:
        getEnd in interface IBond
        Returns:
        the end atom
      • getOther

        public IAtom getOther​(IAtom atom)
        Returns the other atom in the bond, the atom is connected to the given atom.This method is only correct for two-centre bonds, for n-centre bonds the behaviour is undefined and the more correct IBond.getConnectedAtoms(IAtom) should be used.

        
         IAtom beg = bond.getBegin();
         IAtom end = bond.getEnd();
         // bond.getOther(beg) == end
         // bond.getOther(end) == beg
         
        Specified by:
        getOther in interface IBond
        Parameters:
        atom - The atom the bond partner is searched of
        Returns:
        the connected atom or null if the given atom is not part of the bond
      • getConnectedAtom

        public IAtom getConnectedAtom​(IAtom atom)
        Returns the other atom in the bond, the atom is connected to the given atom. This method is only correct for two-centre bonds, for n-centre bonds the behaviour is undefined and the more correct IBond.getConnectedAtoms(IAtom) should be used.

        
         IAtom beg = bond.getBegin();
         IAtom end = bond.getEnd();
         // bond.getConnectedAtom(beg) == end
         // bond.getConnectedAtom(end) == beg
         
        Specified by:
        getConnectedAtom in interface IBond
        Parameters:
        atom - The atom the bond partner is searched of
        Returns:
        the connected atom or null if the given atom is not part of the bond
      • getConnectedAtoms

        public IAtom[] getConnectedAtoms​(IAtom atom)
        Returns all the atoms in the bond connected to the given atom.
        Specified by:
        getConnectedAtoms in interface IBond
        Parameters:
        atom - The atoms the bond partner is searched of
        Returns:
        the connected atoms or null if the given atom is not part of the bond
      • contains

        public boolean contains​(IAtom atom)
        Returns true if the given atom participates in this bond.
        Specified by:
        contains in interface IBond
        Parameters:
        atom - The atom to be tested if it participates in this bond
        Returns:
        true if the atom participates in this bond
      • setAtom

        public void setAtom​(IAtom atom,
                            int position)
        Sets an Atom in this bond.
        Specified by:
        setAtom in interface IBond
        Parameters:
        atom - The atom to be set
        position - The position in this bond where the atom is to be inserted
        See Also:
        getAtom(int)
      • getDisplay

        public IBond.Display getDisplay()
        Access the bond display style.
        Specified by:
        getDisplay in interface IBond
        Returns:
        the bond display
      • setDisplay

        public void setDisplay​(IBond.Display display)
        Set the bond display style.
        Specified by:
        setDisplay in interface IBond
        Parameters:
        display - the display
      • get2DCenter

        public javax.vecmath.Point2d get2DCenter()
        Returns the geometric 2D center of the bond.
        Specified by:
        get2DCenter in interface IBond
        Returns:
        The geometric 2D center of the bond
      • get3DCenter

        public javax.vecmath.Point3d get3DCenter()
        Returns the geometric 3D center of the bond.
        Specified by:
        get3DCenter in interface IBond
        Returns:
        The geometric 3D center of the bond
      • compare

        public boolean compare​(Object object)
        Compares a bond with this bond.
        Specified by:
        compare in interface IBond
        Overrides:
        compare in class ChemObject
        Parameters:
        object - Object of type Bond
        Returns:
        true if the bond is equal to this bond
      • isConnectedTo

        public boolean isConnectedTo​(IBond bond)
        Checks whether a bond is connected to another one. This can only be true if the bonds have an Atom in common.
        Specified by:
        isConnectedTo in interface IBond
        Parameters:
        bond - The bond which is checked to be connect with this one
        Returns:
        true if the bonds share an atom, otherwise false
      • isAromatic

        public boolean isAromatic()
        Access whether this bond has been marked as aromatic. The default value is false and you must explicitly perceive aromaticity with one of the available models.
        Specified by:
        isAromatic in interface IBond
        Returns:
        aromatic status
        See Also:
        IChemObject.getFlag(int), Aromaticity
      • isInRing

        public boolean isInRing()
        Access whether this bond has been flagged as in a ring. The default value is false and you must explicitly find rings first.
        Specified by:
        isInRing in interface IBond
        Returns:
        ring status
        See Also:
        IChemObject.getFlag(int), RingSearch
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • toString

        public String toString()
        Returns a one line string representation of this Container. This method is conform RFC #9.
        Specified by:
        toString in interface IChemObject
        Overrides:
        toString in class ElectronContainer
        Returns:
        The string representation of this Container