Package org.openscience.cdk.silent
Class Reaction
- java.lang.Object
-
- org.openscience.cdk.silent.ChemObject
-
- org.openscience.cdk.silent.Reaction
-
- All Implemented Interfaces:
Serializable
,Cloneable
,ICDKObject
,IChemObject
,IReaction
public class Reaction extends ChemObject implements Serializable, IReaction, Cloneable
Represents the idea of a chemical reaction. The reaction consists of a set of reactants and a set of products.The class mostly represents abstract reactions, such as 2D diagrams, and is not intended to represent reaction trajectories. Such can better be represented with a ChemSequence.
- Author:
- Egon Willighagen <elw38@cam.ac.uk>
- See Also:
- Serialized Form
- Source code:
- main
- Belongs to CDK module:
- silent
- Keywords:
- reaction
- Created on:
- 2003-02-13
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.openscience.cdk.interfaces.IReaction
IReaction.Direction
-
-
Field Summary
Fields Modifier and Type Field Description protected IAtomContainerSet
agents
These are the used solvent, catalysts etc that normally appear above the reaction arrowprotected int
growArraySize
protected IMapping[]
map
protected int
mappingCount
protected IAtomContainerSet
products
protected IAtomContainerSet
reactants
-
Constructor Summary
Constructors Constructor Description Reaction()
Constructs an empty, forward reaction.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAgent(IAtomContainer agent)
Adds an agent to this reaction.void
addMapping(IMapping mapping)
Adds a mapping between the reactant and product side to this Reaction.void
addProduct(IAtomContainer product)
Adds a product to this reaction.void
addProduct(IAtomContainer product, Double coefficient)
Adds a product to this reaction.void
addReactant(IAtomContainer reactant)
Adds a reactant to this reaction.void
addReactant(IAtomContainer reactant, Double coefficient)
Adds a reactant to this reaction with a stoichiometry coefficient.Object
clone()
Clones thisReaction
and its content.IAtomContainerSet
getAgents()
Returns a MoleculeSet containing the agents in this reaction.IReaction.Direction
getDirection()
Returns the direction of the reaction.IMapping
getMapping(int pos)
Retrieves a mapping between the reactant and product side to this Reaction.int
getMappingCount()
Get the number of mappings between the reactant and product side to this Reaction.Double
getProductCoefficient(IAtomContainer product)
Returns the stoichiometry coefficient of the given product.Double[]
getProductCoefficients()
Returns an array of double with the stoichiometric coefficients of the products.int
getProductCount()
Returns the number of products in this reaction.IAtomContainerSet
getProducts()
Returns a MoleculeSet containing the products of this reaction.Double
getReactantCoefficient(IAtomContainer reactant)
Returns the stoichiometry coefficient of the given reactant.Double[]
getReactantCoefficients()
Returns an array of double with the stoichiometric coefficients of the reactants.int
getReactantCount()
Returns the number of reactants in this reaction.IAtomContainerSet
getReactants()
Returns a MoleculeSet containing the reactants in this reaction.Iterable<IMapping>
mappings()
Returns the mappings between the reactant and the product side.void
removeMapping(int pos)
Removes a mapping between the reactant and product side to this Reaction.void
setDirection(IReaction.Direction direction)
Sets the direction of the reaction.boolean
setProductCoefficient(IAtomContainer product, Double coefficient)
Sets the coefficient of a a product to a given value.boolean
setProductCoefficients(Double[] coefficients)
Sets the coefficient of the products.void
setProducts(IAtomContainerSet setOfMolecules)
Assigns a MoleculeSet to the products of this reaction.boolean
setReactantCoefficient(IAtomContainer reactant, Double coefficient)
Sets the coefficient of a a reactant to a given value.boolean
setReactantCoefficients(Double[] coefficients)
Sets the coefficients of the reactants.void
setReactants(IAtomContainerSet setOfMolecules)
Assigns a MoleculeSet to the reactants in this reaction.String
toString()
Returns a one line string representation of this Atom.-
Methods inherited from class org.openscience.cdk.silent.ChemObject
addListener, addProperties, compare, getBuilder, getFlag, getFlags, getFlagValue, getID, getListenerCount, getNotification, getProperties, getProperty, getProperty, notifyChanged, notifyChanged, removeListener, removeProperty, setFlag, setFlags, setID, setNotification, setProperties, setProperty, shallowCopy
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.openscience.cdk.interfaces.ICDKObject
getBuilder
-
Methods inherited from interface org.openscience.cdk.interfaces.IChemObject
addListener, addProperties, getFlag, getFlags, getFlagValue, getID, getListenerCount, getNotification, getProperties, getProperty, getProperty, notifyChanged, notifyChanged, removeListener, removeProperty, setFlag, setFlags, setID, setNotification, setProperties, setProperty
-
-
-
-
Field Detail
-
growArraySize
protected final int growArraySize
- See Also:
- Constant Field Values
-
reactants
protected IAtomContainerSet reactants
-
products
protected IAtomContainerSet products
-
agents
protected IAtomContainerSet agents
These are the used solvent, catalysts etc that normally appear above the reaction arrow
-
map
protected IMapping[] map
-
mappingCount
protected int mappingCount
-
-
Method Detail
-
getReactantCount
public int getReactantCount()
Returns the number of reactants in this reaction.- Specified by:
getReactantCount
in interfaceIReaction
- Returns:
- The number of reactants in this reaction
-
getProductCount
public int getProductCount()
Returns the number of products in this reaction.- Specified by:
getProductCount
in interfaceIReaction
- Returns:
- The number of products in this reaction
-
getReactants
public IAtomContainerSet getReactants()
Returns a MoleculeSet containing the reactants in this reaction.- Specified by:
getReactants
in interfaceIReaction
- Returns:
- A MoleculeSet containing the reactants in this reaction
- See Also:
IReaction.setReactants(org.openscience.cdk.interfaces.IAtomContainerSet)
-
setReactants
public void setReactants(IAtomContainerSet setOfMolecules)
Assigns a MoleculeSet to the reactants in this reaction.- Specified by:
setReactants
in interfaceIReaction
- Parameters:
setOfMolecules
- The new set of reactants- See Also:
getReactants()
-
getProducts
public IAtomContainerSet getProducts()
Returns a MoleculeSet containing the products of this reaction.- Specified by:
getProducts
in interfaceIReaction
- Returns:
- A MoleculeSet containing the products in this reaction
- See Also:
IReaction.setProducts(org.openscience.cdk.interfaces.IAtomContainerSet)
-
setProducts
public void setProducts(IAtomContainerSet setOfMolecules)
Assigns a MoleculeSet to the products of this reaction.- Specified by:
setProducts
in interfaceIReaction
- Parameters:
setOfMolecules
- The new set of products- See Also:
getProducts()
-
getAgents
public IAtomContainerSet getAgents()
Returns a MoleculeSet containing the agents in this reaction.- Specified by:
getAgents
in interfaceIReaction
- Returns:
- A MoleculeSet containing the agents in this reaction
- See Also:
addAgent(org.openscience.cdk.interfaces.IAtomContainer)
-
mappings
public Iterable<IMapping> mappings()
Returns the mappings between the reactant and the product side.- Specified by:
mappings
in interfaceIReaction
- Returns:
- An Iterator to the Mappings.
- See Also:
addMapping(org.openscience.cdk.interfaces.IMapping)
-
addReactant
public void addReactant(IAtomContainer reactant)
Adds a reactant to this reaction.- Specified by:
addReactant
in interfaceIReaction
- Parameters:
reactant
- Molecule added as reactant to this reaction- See Also:
getReactants()
-
addAgent
public void addAgent(IAtomContainer agent)
Adds an agent to this reaction.- Specified by:
addAgent
in interfaceIReaction
- Parameters:
agent
- Molecule added as agent to this reaction- See Also:
getAgents()
-
addReactant
public void addReactant(IAtomContainer reactant, Double coefficient)
Adds a reactant to this reaction with a stoichiometry coefficient.- Specified by:
addReactant
in interfaceIReaction
- Parameters:
reactant
- Molecule added as reactant to this reactioncoefficient
- Stoichiometry coefficient for this molecule- See Also:
getReactants()
-
addProduct
public void addProduct(IAtomContainer product)
Adds a product to this reaction.- Specified by:
addProduct
in interfaceIReaction
- Parameters:
product
- Molecule added as product to this reaction- See Also:
getProducts()
-
addProduct
public void addProduct(IAtomContainer product, Double coefficient)
Adds a product to this reaction.- Specified by:
addProduct
in interfaceIReaction
- Parameters:
product
- Molecule added as product to this reactioncoefficient
- Stoichiometry coefficient for this molecule- See Also:
getProducts()
-
getReactantCoefficient
public Double getReactantCoefficient(IAtomContainer reactant)
Returns the stoichiometry coefficient of the given reactant.- Specified by:
getReactantCoefficient
in interfaceIReaction
- Parameters:
reactant
- Reactant for which the coefficient is returned.- Returns:
- -1, if the given molecule is not a product in this Reaction
- See Also:
setReactantCoefficient(org.openscience.cdk.interfaces.IAtomContainer, java.lang.Double)
-
getProductCoefficient
public Double getProductCoefficient(IAtomContainer product)
Returns the stoichiometry coefficient of the given product.- Specified by:
getProductCoefficient
in interfaceIReaction
- Parameters:
product
- Product for which the coefficient is returned.- Returns:
- -1, if the given molecule is not a product in this Reaction
- See Also:
setProductCoefficient(org.openscience.cdk.interfaces.IAtomContainer, java.lang.Double)
-
setReactantCoefficient
public boolean setReactantCoefficient(IAtomContainer reactant, Double coefficient)
Sets the coefficient of a a reactant to a given value.- Specified by:
setReactantCoefficient
in interfaceIReaction
- Parameters:
reactant
- Reactant for which the coefficient is setcoefficient
- The new coefficient for the given reactant- Returns:
- true if Molecule has been found and stoichiometry has been set.
- See Also:
getReactantCoefficient(org.openscience.cdk.interfaces.IAtomContainer)
-
setProductCoefficient
public boolean setProductCoefficient(IAtomContainer product, Double coefficient)
Sets the coefficient of a a product to a given value.- Specified by:
setProductCoefficient
in interfaceIReaction
- Parameters:
product
- Product for which the coefficient is setcoefficient
- The new coefficient for the given product- Returns:
- true if Molecule has been found and stoichiometry has been set.
- See Also:
getProductCoefficient(org.openscience.cdk.interfaces.IAtomContainer)
-
getReactantCoefficients
public Double[] getReactantCoefficients()
Returns an array of double with the stoichiometric coefficients of the reactants.- Specified by:
getReactantCoefficients
in interfaceIReaction
- Returns:
- An array of double's containing the coefficients of the reactants
- See Also:
setReactantCoefficients(java.lang.Double[])
-
getProductCoefficients
public Double[] getProductCoefficients()
Returns an array of double with the stoichiometric coefficients of the products.- Specified by:
getProductCoefficients
in interfaceIReaction
- Returns:
- An array of double's containing the coefficients of the products
- See Also:
setProductCoefficients(java.lang.Double[])
-
setReactantCoefficients
public boolean setReactantCoefficients(Double[] coefficients)
Sets the coefficients of the reactants.- Specified by:
setReactantCoefficients
in interfaceIReaction
- Parameters:
coefficients
- An array of double's containing the coefficients of the reactants- Returns:
- true if coefficients have been set.
- See Also:
getReactantCoefficients()
-
setProductCoefficients
public boolean setProductCoefficients(Double[] coefficients)
Sets the coefficient of the products.- Specified by:
setProductCoefficients
in interfaceIReaction
- Parameters:
coefficients
- An array of double's containing the coefficients of the products- Returns:
- true if coefficients have been set.
- See Also:
getProductCoefficients()
-
setDirection
public void setDirection(IReaction.Direction direction)
Sets the direction of the reaction.- Specified by:
setDirection
in interfaceIReaction
- Parameters:
direction
- The new reaction direction- See Also:
getDirection()
-
getDirection
public IReaction.Direction getDirection()
Returns the direction of the reaction.- Specified by:
getDirection
in interfaceIReaction
- Returns:
- The direction of this reaction (FORWARD, BACKWARD or BIDIRECTIONAL).
- See Also:
IReaction.Direction
,setDirection(org.openscience.cdk.interfaces.IReaction.Direction)
-
addMapping
public void addMapping(IMapping mapping)
Adds a mapping between the reactant and product side to this Reaction.- Specified by:
addMapping
in interfaceIReaction
- Parameters:
mapping
- Mapping to add.- See Also:
mappings()
-
removeMapping
public void removeMapping(int pos)
Removes a mapping between the reactant and product side to this Reaction.- Specified by:
removeMapping
in interfaceIReaction
- Parameters:
pos
- Position of the Mapping to remove.- See Also:
mappings()
-
getMapping
public IMapping getMapping(int pos)
Retrieves a mapping between the reactant and product side to this Reaction.- Specified by:
getMapping
in interfaceIReaction
- Parameters:
pos
- Position of Mapping to get.- Returns:
- the mapping identified by the specified position
-
getMappingCount
public int getMappingCount()
Get the number of mappings between the reactant and product side to this Reaction.- Specified by:
getMappingCount
in interfaceIReaction
- Returns:
- Number of stored Mappings.
-
toString
public String toString()
Returns a one line string representation of this Atom. Methods is conform RFC #9.- Specified by:
toString
in interfaceIChemObject
- Overrides:
toString
in classObject
- Returns:
- The string representation of this Atom
-
clone
public Object clone() throws CloneNotSupportedException
Clones thisReaction
and its content.- Specified by:
clone
in interfaceIChemObject
- Overrides:
clone
in classChemObject
- Returns:
- The cloned object
- Throws:
CloneNotSupportedException
- if the IChemObject cannot be cloned
-
-