11 #ifndef smtk_operation_NamingGroup_h
12 #define smtk_operation_NamingGroup_h
14 #include "smtk/CoreExports.h"
18 #include "smtk/operation/Manager.h"
19 #include "smtk/operation/Operation.h"
21 #include "smtk/operation/groups/ResourceIOGroup.h"
40 static constexpr
const char*
const type_name =
"naming";
42 NamingGroup(std::shared_ptr<smtk::operation::Manager> manager)
43 :
Group(type_name, manager)
47 template<
typename ResourceType,
typename OperationType>
48 bool registerOperation();
56 template<
typename ResourceType,
typename OperationType>
57 bool NamingGroup::registerOperation()
59 auto manager = m_manager.lock();
60 if (manager ==
nullptr)
66 manager->metadata().get<IndexTag>().find(std::type_index(
typeid(OperationType)).hash_code());
67 if (metadata == manager->metadata().get<IndexTag>().end())
72 Operation::Specification spec =
specification(metadata->typeName());
80 parameters ==
nullptr || parameters->findString(
"name") ==
nullptr ||
81 parameters->associations() ==
nullptr ||
82 parameters->associations()->numberOfRequiredValues() != 1)
87 std::type_index(
typeid(OperationType)).hash_code(), { smtk::common::typeName<ResourceType>() });
92 #endif // smtk_operation_NamingGroup_h