#ifndef MATADOR_OBJECT_RESOLVER_FACTORY_HPP #define MATADOR_OBJECT_RESOLVER_FACTORY_HPP #include "matador/object/abstract_type_resolver_factory.hpp" #include "matador/object/object_resolver.hpp" #include "matador/object/collection_resolver_factory.hpp" namespace matador::object { class object_resolver_factory : public abstract_type_resolver_factory { public: template std::shared_ptr> resolver() { const auto res = acquire_resolver(std::type_index(typeid(Type))); if (!res) { return std::dynamic_pointer_cast>(res); } return std::dynamic_pointer_cast>(res); } // // template // std::shared_ptr> collection_resolver(const std::string &name) { // const auto res = acquire_collection_resolver(std::type_index(typeid(Type)), name); // if (!res) { // return std::dynamic_pointer_cast>(res); // } // // return std::dynamic_pointer_cast>(res); // } }; } #endif //MATADOR_OBJECT_RESOLVER_FACTORY_HPP