package core.framework.test.module; import core.framework.api.search.ElasticSearch; import core.framework.api.search.ElasticSearchType; import core.framework.api.util.ClasspathResources; import core.framework.api.util.Types; import core.framework.impl.module.ModuleContext; import core.framework.impl.search.ElasticSearchTypeImpl; /** * @author neo */ public final class InitSearchConfig { private final ModuleContext context; private final ElasticSearch search; public InitSearchConfig(ModuleContext context) { this.context = context; if (context.config.search().search == null) { throw new Error("search() is not configured"); } search = context.config.search().search; } public void createIndex(String index, String sourcePath) { search.createIndex(index, ClasspathResources.text(sourcePath)); } public void createIndexTemplate(String name, String sourcePath) { search.createIndexTemplate(name, ClasspathResources.text(sourcePath)); } public <T> ElasticSearchTypeImpl<T> type(Class<T> documentClass) { return context.beanFactory.bean(Types.generic(ElasticSearchType.class, documentClass), null); } public void flush(String index) { search.flush(index); } }