void containment_expander::inject_global_module(intermediate_model& im) { BOOST_LOG_SEV(lg, debug) << "Injecting global module for: " << im.name().id(); const auto gm(create_global_module(im.origin_type())); const auto gmn(gm.name()); const auto i(im.modules().find(gmn.id())); if (i != im.modules().end()) { const auto id(im.name().id()); BOOST_LOG_SEV(lg, error) << model_already_has_global_module << id; BOOST_THROW_EXCEPTION( injection_error(model_already_has_global_module + id)); } im.modules().insert(std::make_pair(gmn.id(), gm)); add_containing_module_to_non_contained_entities(gmn, im.modules()); add_containing_module_to_non_contained_entities(gmn, im.concepts()); add_containing_module_to_non_contained_entities(gmn, im.primitives()); add_containing_module_to_non_contained_entities(gmn, im.enumerations()); add_containing_module_to_non_contained_entities(gmn, im.objects()); add_containing_module_to_non_contained_entities(gmn, im.exceptions()); add_containing_module_to_non_contained_entities(gmn, im.visitors()); BOOST_LOG_SEV(lg, debug) << "Done injecting global module"; }
void injector::inject_global_module(intermediate_model& m) { const auto gm(create_global_module()); const auto gmn(gm.name()); const auto i(m.modules().find(gmn.qualified())); if (i != m.modules().end()) { const auto qn(m.name().qualified()); BOOST_LOG_SEV(lg, error) << model_already_has_global_module << qn; BOOST_THROW_EXCEPTION(injection_error( model_already_has_global_module + qn)); } m.modules().insert(std::make_pair(gmn.qualified(), gm)); add_containing_module_to_non_contained_entities(gmn, m.modules()); add_containing_module_to_non_contained_entities(gmn, m.concepts()); add_containing_module_to_non_contained_entities(gmn, m.primitives()); add_containing_module_to_non_contained_entities(gmn, m.enumerations()); add_containing_module_to_non_contained_entities(gmn, m.objects()); add_containing_module_to_non_contained_entities(gmn, m.exceptions()); add_containing_module_to_non_contained_entities(gmn, m.visitors()); }