// XmlElementsFactory.h: interface for the CXmlElementsFactory class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(_XMLELEMENTSFACTORY_H_)
#define _XMLELEMENTSFACTORY_H_

#include "cmString.h"
#include "enums.h"

class CXmlBaseElement;

class CXmlElementsFactory  
{
public:
	
	static CXmlBaseElement* CreateXmlElement(enDataType dataType);
	static void DestroyXmlElement(CXmlBaseElement* xmlElement);
	static void UpdateIdCounter(const cmString& newId);
	static void ResetIdCounter();

protected:
	static cmString GetElementId(enDataType dataType, int idCounter);
	static cmString GetNewElementName(enDataType dataType, int idCounter);
	static int idCounter_;
};

#endif // !defined(_XMLELEMENTSFACTORY_H_)
