ResInsight/Fwk/AppFwk/cafProjectDataModel/cafPdmXml/cafPdmDefaultObjectFactory.cpp
2018-02-18 18:05:08 +01:00

52 lines
1.6 KiB
C++

#include "cafPdmDefaultObjectFactory.h"
namespace caf
{
//--------------------------------------------------------------------------------------------------
/// PdmObjectFactory implementations
//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
PdmObjectHandle * PdmDefaultObjectFactory::create(const QString& classNameKeyword)
{
std::map<QString, PdmObjectCreatorBase*>::iterator entryIt;
entryIt = m_factoryMap.find(classNameKeyword);
if (entryIt != m_factoryMap.end())
{
return entryIt->second->create();
}
else
{
return nullptr;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<QString> PdmDefaultObjectFactory::classKeywords() const
{
std::vector<QString> names;
for (const auto& entry : m_factoryMap)
{
names.push_back(entry.first);
}
return names;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
PdmDefaultObjectFactory * PdmDefaultObjectFactory::instance()
{
static PdmDefaultObjectFactory* fact = new PdmDefaultObjectFactory;
return fact;
}
} // End of namespace caf