Class QueryBond

    • Field Detail

      • order

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

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

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

        protected IBond.Stereo stereo
        A descriptor the stereochemical orientation of this query bond.
      • electronCount

        protected Integer electronCount
        Number of electrons in the ElectronContainer.
    • Constructor Detail

      • QueryBond

        public QueryBond​(IAtom beg,
                         IAtom end,
                         Expr expr)
        Constructs an query bond from an expression.
        
         // pi-bond in a ring
         Expr e = new Expr(IS_IN_RING);
         e.and(new Expr(ALIPHATIC_ORDER, 2));
         new QueryBond(beg, end, e);
         
        Parameters:
        expr - the expression
      • QueryBond

        public QueryBond​(IAtom beg,
                         IAtom end,
                         Expr.Type type)
        Constructs an query bond from an expression type.
        
         new QueryBond(beg, end, IS_IN_RING);
         
        Parameters:
        type - the expression type
      • QueryBond

        public QueryBond​(IAtom beg,
                         IAtom end,
                         Expr.Type type,
                         int val)
        Constructs an query bond from an expression type and value.
        
         new QueryBond(beg, end, ALIPHATIC_ORDER, 8);
         
        Parameters:
        type - the expression type
        val - the expression value
      • QueryBond

        public QueryBond​(IChemObjectBuilder builder)
        Constructs an empty query bond.
      • QueryBond

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

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

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

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

        public QueryBond​(IAtom atom1,
                         IAtom atom2,
                         IBond.Order order,
                         IBond.Stereo stereo,
                         IChemObjectBuilder builder)
        Constructs a query bond with a given order and stereo orientation from an array of atoms.
        Parameters:
        atom1 - the first Atom in the query bond
        atom2 - the second Atom in the query bond
        order - the query bond order
        stereo - a descriptor the stereochemical orientation of this query 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 query bond.
        Specified by:
        setAtoms in interface IBond
        Parameters:
        atoms - An array of atoms that forms this query 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 query bond.
        Specified by:
        getAtom in interface IBond
        Parameters:
        position - The position in this query bond where the atom is
        Returns:
        The atom at the specified position, null if there are no atoms in the query 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 query bond.
        Specified by:
        contains in interface IBond
        Parameters:
        atom - The atom to be tested if it participates in this query bond
        Returns:
        true if the atom participates in this query bond
      • setAtom

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

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

        public void setDisplay​(IBond.Display display)
        Not used for query bonds. 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 query bond.
        Specified by:
        get2DCenter in interface IBond
        Returns:
        The geometric 2D center of the query bond
      • get3DCenter

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

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

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

        public String toString()
        Returns a one line string representation of this query bond.
        Specified by:
        toString in interface IChemObject
        Overrides:
        toString in class Object
        Returns:
        The string representation of this query bond
      • 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
      • getExpression

        public Expr getExpression()
        Access the bond expression predicate associated with this query bond.
        Returns:
        the bond expression
      • setExpression

        public void setExpression​(Expr expr)
        Set the bond expression for this query bond.
        Parameters:
        expr - the new bond expression
      • matches

        public boolean matches​(IBond bond)
        Returns true of the given bond matches this IQueryBond.
        Specified by:
        matches in interface IQueryBond
        Parameters:
        bond - IBond to match against
        Returns:
        true, if this IQueryBond matches the given IBond