package org.molgenis.data.platform.bootstrap; import org.molgenis.data.i18n.SystemEntityTypeI18nInitializer; import org.molgenis.data.meta.system.SystemEntityTypeInitializer; import org.molgenis.data.meta.system.SystemEntityTypePersister; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; import static java.util.Objects.requireNonNull; @Component public class SystemEntityTypeBootstrapper { private static final Logger LOG = LoggerFactory.getLogger(SystemEntityTypeBootstrapper.class); private final SystemEntityTypeInitializer systemEntityTypeInitializer; private final SystemEntityTypeI18nInitializer systemEntityTypeI18nInitializer; private final SystemEntityTypePersister systemEntityTypePersister; @Autowired SystemEntityTypeBootstrapper(SystemEntityTypeInitializer systemEntityTypeInitializer, SystemEntityTypeI18nInitializer systemEntityTypeI18nInitializer, SystemEntityTypePersister systemEntityTypePersister) { this.systemEntityTypeInitializer = requireNonNull(systemEntityTypeInitializer); this.systemEntityTypeI18nInitializer = systemEntityTypeI18nInitializer; this.systemEntityTypePersister = requireNonNull(systemEntityTypePersister); } public void bootstrap(ContextRefreshedEvent event) { LOG.trace("Initializing system entity meta data ..."); systemEntityTypeInitializer.initialize(event); LOG.trace("Initialized system entity meta data"); LOG.trace("Internationalizing system entity meta data ..."); systemEntityTypeI18nInitializer.initialize(event); LOG.trace("Internationalized system entity meta data"); LOG.trace("Persisting system entity meta data ..."); systemEntityTypePersister.persist(event); LOG.trace("Persisted system entity meta data"); } }