All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.oiue.service.template.base.TemplateServiceManagerImpl Maven / Gradle / Ivy

package org.oiue.service.template.base;

import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.oiue.service.log.LogService;
import org.oiue.service.log.Logger;
import org.oiue.service.template.TemplateService;
import org.oiue.service.template.TemplateServiceManager;
import org.oiue.tools.StatusResult;
import org.oiue.tools.map.MapUtil;
import org.oiue.tools.string.StringUtil;

@SuppressWarnings({"serial","unchecked"})
public class TemplateServiceManagerImpl implements TemplateServiceManager {
    private Logger logger;
    private String template_type = "templateType";
    private String template_default = "velocity";

    private Map templates = new HashMap<>();
    
    public TemplateServiceManagerImpl(LogService logService) {
        logger = logService.getLogger(getClass());
    }
    public void updated(Dictionary props) {
        String template_type = props.get("templateType") + "";
        if (!StringUtil.isEmptys(template_type)) {
            this.template_type = template_type;
        }
        String template_default = props.get("localTemplate") + "";
        if (!StringUtil.isEmptys(template_default)) {
            this.template_default = template_default;
        }
    }
    @Override
    public StatusResult render(HttpServletRequest request, HttpServletResponse response, Map parameter) {
        String template_name = MapUtil.getString((Map) parameter, template_type);
        if(StringUtil.isEmptys(template_name)){
            template_name= template_default;
        }
        TemplateService template = this.getTemplateService(template_name);
        if(template==null){
            String msg = "the key[" + template_name + "] template service not find!";
            logger.error(msg + ":" + parameter);
            throw new RuntimeException(msg);
        }
        
        return template.render(request,response, parameter);
    }

    @Override
    public boolean registerTemplateService(String name, TemplateService template) {
        if (templates.containsKey(name)) {
            return false;
        } else {
            templates.put(name, template);
        }
        return true;
    }

    @Override
    public boolean unRegisterTemplateService(String name) {
        if (templates.containsKey(name)) {
            templates.remove(name);
            return true;
        } else
            return false;
    }
    @Override
    public TemplateService getTemplateService(String name) {
        return templates.get(name);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy