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  * A sequence of ChemModels, which can, for example, be used to
23  * store the course of a reaction. Each state of the reaction would be
24  * stored in one ChemModel.
25  *
26  * @cdk.module  interfaces
27  * @cdk.githash
28  *
29  * @cdk.keyword animation
30  * @cdk.keyword reaction
31  */
32 public interface IChemSequence extends IChemObject {
33 
34     /**
35      * Adds an chemModel to this container.
36      *
37      * @param  chemModel The chemModel to be added to this container
38      * @see              #getChemModel
39      */
addChemModel(IChemModel chemModel)40     public void addChemModel(IChemModel chemModel);
41 
42     /**
43      * Remove a ChemModel from this ChemSequence.
44      *
45      * @param  pos  The position of the ChemModel to be removed.
46      */
removeChemModel(int pos)47     public void removeChemModel(int pos);
48 
49     /**
50      * Returns an Iterable to ChemModels in this container.
51      *
52      * @return    The Iterable to ChemModels in this container
53      * @see       #addChemModel
54      */
chemModels()55     public Iterable<IChemModel> chemModels();
56 
57     /**
58      * Returns the ChemModel at position <code>number</code> in the
59      * container.
60      *
61      * @param  number  The position of the ChemModel to be returned.
62      * @return         The ChemModel at position <code>number</code>.
63      * @see            #addChemModel
64      */
getChemModel(int number)65     public IChemModel getChemModel(int number);
66 
67     /**
68      * Returns the number of ChemModels in this Container.
69      *
70      * @return    The number of ChemModels in this Container
71      */
getChemModelCount()72     public int getChemModelCount();
73 
74 }
75