#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_object_resolver(std::type_index(typeid(Type))); if (!res) { return std::dynamic_pointer_cast>(res); } return std::dynamic_pointer_cast>(res); } }; class object_resolver_service : public object_resolver_factory, public collection_resolver_factory { public: }; } #endif //MATADOR_OBJECT_RESOLVER_FACTORY_HPP