1 /* Copyright (C) 2006-2007,2011  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  * An object containing multiple MoleculeSet and
23  * the other lower level concepts like rings, sequences,
24  * fragments, etc.
25  *
26  * @cdk.module interfaces
27  * @cdk.githash
28  */
29 public interface IChemModel extends IChemObject {
30 
31     /**
32      * Returns the IAtomContainerSet of this ChemModel.
33      *
34      * @return   The {@link IAtomContainerSet} of this ChemModel
35      * @see      #setMoleculeSet
36      */
getMoleculeSet()37     public IAtomContainerSet getMoleculeSet();
38 
39     /**
40      * Sets the IAtomContainerSet of this ChemModel.
41      *
42      * @param   setOfMolecules  the content of this model
43      * @see      #getMoleculeSet
44      */
setMoleculeSet(IAtomContainerSet setOfMolecules)45     public void setMoleculeSet(IAtomContainerSet setOfMolecules);
46 
47     /**
48      * Returns the RingSet of this ChemModel.
49      *
50      * @return the ringset of this model
51      * @see      #setRingSet
52      */
getRingSet()53     public IRingSet getRingSet();
54 
55     /**
56      * Sets the RingSet of this ChemModel.
57      *
58      * @param   ringSet         the content of this model
59      * @see      #getRingSet
60      */
setRingSet(IRingSet ringSet)61     public void setRingSet(IRingSet ringSet);
62 
63     /**
64      * Gets the Crystal contained in this ChemModel.
65      *
66      * @return The crystal in this model
67      * @see      #setCrystal
68      */
getCrystal()69     public ICrystal getCrystal();
70 
71     /**
72      * Sets the Crystal contained in this ChemModel.
73      *
74      * @param   crystal  the Crystal to store in this model
75      * @see      #getCrystal
76      */
setCrystal(ICrystal crystal)77     public void setCrystal(ICrystal crystal);
78 
79     /**
80      * Gets the ReactionSet contained in this ChemModel.
81      *
82      * @return The ReactionSet in this model
83      * @see      #setReactionSet
84      */
getReactionSet()85     public IReactionSet getReactionSet();
86 
87     /**
88      * Sets the ReactionSet contained in this ChemModel.
89      *
90      * @param sor the ReactionSet to store in this model
91      * @see       #getReactionSet
92      */
setReactionSet(IReactionSet sor)93     public void setReactionSet(IReactionSet sor);
94 
95     /**
96      * Returns true if this ChemModel is empty.
97      *
98      * @return a boolean indicating if this model has no content
99      */
isEmpty()100     public boolean isEmpty();
101 
102 }
103