2015-07-29 14:19:43 +02:00
|
|
|
#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
|
|
|
|
|
{
|
2018-02-18 18:05:08 +01:00
|
|
|
return nullptr;
|
2015-07-29 14:19:43 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-15 17:00:36 +01:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
std::vector<QString> PdmDefaultObjectFactory::classKeywords() const
|
|
|
|
|
{
|
|
|
|
|
std::vector<QString> names;
|
|
|
|
|
|
|
|
|
|
for (const auto& entry : m_factoryMap)
|
|
|
|
|
{
|
|
|
|
|
names.push_back(entry.first);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return names;
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-29 14:19:43 +02:00
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
///
|
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
|
|
|
PdmDefaultObjectFactory * PdmDefaultObjectFactory::instance()
|
|
|
|
|
{
|
|
|
|
|
static PdmDefaultObjectFactory* fact = new PdmDefaultObjectFactory;
|
|
|
|
|
return fact;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // End of namespace caf
|