00001 package org.openmobileis.bundle.osgi.services; 00002 00003 import org.openmobileis.common.intl.IntlResourceManager; 00004 import org.openmobileis.embedded.webserver.templates.Freemarkerv1JarTemplateCache; 00005 import org.openmobileis.embedded.webserver.templates.TemplateRetrieverService; 00006 00007 import freemarker.template.FileTemplateCache; 00008 import freemarker.template.Template; 00009 00010 public final class TemplateRetrieverServiceImpl implements TemplateRetrieverService { 00011 private String moduleName; 00012 private FileTemplateCache templateCache = null; 00013 00014 public TemplateRetrieverServiceImpl(String name, String rootTemplatePath) { 00015 moduleName = name; 00016 templateCache = new Freemarkerv1JarTemplateCache(rootTemplatePath); 00017 templateCache.setFilenameSuffix("htm"); 00018 } 00019 public String getModuleName() { 00020 return moduleName; 00021 } 00022 00023 public Template getServiceTemplate(String relatifPath) { 00024 IntlResourceManager resourceManager = IntlResourceManager.getManager(); 00025 String newrelatifPath = resourceManager.getLocalizedFileName(relatifPath, false); 00026 try { 00027 newrelatifPath = relatifPath.replace('\\', '/'); 00028 return (Template)templateCache.getItem(newrelatifPath); 00029 } catch (Throwable ex) { 00030 newrelatifPath = relatifPath; 00031 newrelatifPath = newrelatifPath.replace('\\', '/'); 00032 return (Template)templateCache.getItem(newrelatifPath); 00033 } 00034 } 00035 00036 public boolean isTemplateExist(String relatifPath) { 00037 return this.getServiceTemplate(relatifPath) != null; 00038 } 00039 00040 }