#ifndef __XMLIO_GROUP_TEMPLATE__ #define __XMLIO_GROUP_TEMPLATE__ namespace XMLIOSERVER { template class GroupTemplate : public ObjectTemplate >, public U { public: GroupTemplate(void) : ObjectTemplate >(), U(), childList(), groupList() {/* Ne rien faire de plus */} GroupTemplate(const string& _id) : ObjectTemplate >(_id), U(), childList(), groupList() {/* Ne rien faire de plus */} virtual const char* getName(void) const {return ("GroupTemplate"); } /// Pour les groupes d'objets enfants /// GroupTemplate& createGroup(const string _id) throw (XMLIOUndefinedValueException) { GroupTemplate::CreateObject(_id); // groupList.addPtrObject(&obj);// Foireux return (GroupTemplate::GetObject(_id)); } GroupTemplate& createGroup(void) { GroupTemplate& obj = GroupTemplate::CreateObject(); //groupList.addPtrObject(&obj); // Foireux return (obj); } GroupTemplate& getGroup(const string _id) throw (XMLIOUndefinedValueException) { return (*groupList[_id]); } bool hasGroup(const string _id) { return (groupList.hasMappedValue(_id)); } const StrHashMap* >& getGroupList(void) { return (groupList); } size_t getNbGroup() const {return (groupList.getVectorSize()); } /// Pour les objets enfants /// T& createChild(const string _id) throw (XMLIOUndefinedValueException) { T& obj = ObjectTemplate::CreateObject(_id); childList.addPtrObject(&obj); return (obj); } T& createChild(void) { T& obj = ObjectTemplate::CreateObject(); childList.addPtrObject(&obj); return (obj); } T& getChild(const string _id) throw (XMLIOUndefinedValueException) { return (*childList[_id]); } bool hasChild(const string _id) { return (childList.hasMappedValue(_id)); } const StrHashMap& getCurrentListChild(void) { return (childList); } size_t getNbChild() const {return (childList.getVectorSize()); } ~GroupTemplate() {/* Ne rien faire de plus pour le moment */ } protected: private: StrHashMap childList; StrHashMap* > groupList; }; // class GroupTemplate }// namespace XMLIOSERVER #endif // __XMLIO_GROUP_TEMPLATE__