00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _CACCESSORCOLLECTION
00025 #define _CACCESSORCOLLECTION
00026 #include "libMRML/include/uses-declarations.h"
00027 #include <map>
00028 #include "libMRML/include/CAccessorAdmin.h"
00029
00030 class CXMLElement;
00031
00037 class CAccessorAdminCollection{
00041 CXMLElement* mCollectionInConstruction;
00042
00043
00044 public:
00047 class CContent:public map<string,CAccessorAdmin*>{
00048 public:
00050 ~CContent();
00051 };
00053 CContent mIDToProxy;
00055 CAccessorAdmin* mCurrentProxy;
00056
00057 public:
00059 typedef CContent::const_iterator const_iterator;
00060 protected:
00063 CSelfDestroyPointer<CAccessorFactoryContainer> mFactory;
00064 public:
00066 CContent::const_iterator begin()const;
00068 CContent::const_iterator end()const;
00074 CAccessorAdminCollection(string inFileName);
00078 void addCollection(CXMLElement* inCollectionElement);
00082 const CXMLElement* getCollectionElement(string inID)const;
00086 const CXMLElement* getQueryParadimList(string inID)const;
00089 CAccessorAdmin& getCurrentProxy();
00094 CAccessorAdmin& getProxy(const string& inID);
00096 string getDefaultAccessorID()const;
00098 string toXML(bool isPrivate=false)const;
00100 CXMLElement* toXMLElement()const;
00104 CXMLElement* getCollectionInConstruction();
00108 void startCollectionConstruction(CXMLElement* inRoot);
00109 };
00110
00111 #endif