00001 #ifndef REACTANTCONTAINER_HH_ 00002 #define REACTANTCONTAINER_HH_ 00003 00004 00005 00006 00007 #include "../NFreactions.hh" 00008 00009 namespace NFcore 00010 { 00011 //Forward Declarations 00012 class TransformationSet; 00013 class MappingSet; 00014 class ReactantContainer; 00015 00016 00018 00022 class ReactantContainer { 00023 00024 00025 public: 00026 ReactantContainer() { hasClonedMappings=false; }; 00027 virtual ~ReactantContainer() {}; 00028 00031 virtual int size() const = 0; 00032 00035 virtual MappingSet * pushNextAvailableMappingSet() = 0;; 00036 00039 virtual void popLastMappingSet() = 0;; 00040 00043 virtual void removeMappingSet(unsigned int mappingSetId) = 0;; 00044 00045 00048 virtual MappingSet * getMappingSet(unsigned int mappingSetId) const = 0;; 00049 00052 virtual void printDetails() const = 0;; 00053 00056 void notifyPresenceOfClonedMappings() { hasClonedMappings=true; }; 00057 00060 bool getHasClonedMappings() const { return hasClonedMappings; }; 00061 00062 00063 00064 protected: 00065 bool hasClonedMappings; 00066 00067 00068 }; 00069 } 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 #endif /* REACTANTTREE_HH_ */