00001 #ifndef ROOTFOLDER_H 00002 #define ROOTFOLDER_H 00003 00004 #include "Any.h" 00005 #include "PartRep.h" 00006 #include "FCO.h" 00007 #include "ConstraintFuncRep.h" 00008 #include "FolderRep.h" 00009 #include "ModelRep.h" 00010 #include "AtomRep.h" 00011 #include "ConnectionRep.h" 00012 #include "SetRep.h" 00013 #include "ReferenceRep.h" 00014 #include "FcoRep.h" 00015 00016 #include "list" 00017 #include "vector" 00018 00019 class RootFolder 00020 { 00021 public: // types 00022 typedef std::vector<FCO*>::iterator FCO_Iterator; 00023 typedef std::vector<FCO*>::const_iterator FCO_ConstIterator; 00024 typedef std::vector<FolderRep*>::const_iterator SubFolder_ConstIterator; 00025 00026 public: 00027 RootFolder() 00028 { 00029 m_subFolderList.clear(); 00030 m_fcoList.clear(); 00031 } 00032 00033 ~RootFolder() 00034 { 00035 m_subFolderList.clear(); 00036 m_fcoList.clear(); 00037 } 00038 00039 void addRootElement( FCO * ptr); 00040 bool isInRoot( FCO * ptr) const; 00041 bool isEmpty() const; 00042 00043 void addSubFolder( FolderRep * ptr); 00044 00045 std::string headDump(); 00046 std::string tailDump(); 00047 00048 00049 protected: 00050 std::vector<FCO *> m_fcoList; 00051 std::vector<FolderRep*> m_subFolderList; 00052 00053 private: // forbiding copy 00054 RootFolder( const RootFolder&); 00055 void operator=( const RootFolder&); 00056 00057 }; 00058 #endif //ROOTFOLDER_H