package io.cattle.platform.configitem.server.template.impl; import io.cattle.platform.configitem.server.resource.Resource; import io.cattle.platform.configitem.server.template.Template; import io.cattle.platform.configitem.server.template.TemplateFactory; import io.cattle.platform.configitem.server.template.TemplateLoader; import java.io.IOException; import java.util.List; import javax.inject.Inject; public class TemplateFactoryImpl implements TemplateFactory { List<TemplateLoader> templateLoaders; @Override public Template loadTemplate(Resource resource) throws IOException { int bestMatch = TemplateLoader.NO_PRIORITY; TemplateLoader bestLoader = null; for (TemplateLoader loader : templateLoaders) { int result = loader.canHandle(resource); if (result < bestMatch) { bestMatch = result; bestLoader = loader; } } return bestLoader == null ? null : bestLoader.loadTemplate(resource); } public List<TemplateLoader> getTemplateLoaders() { return templateLoaders; } @Inject public void setTemplateLoaders(List<TemplateLoader> templateLoaders) { this.templateLoaders = templateLoaders; } }