/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.publication.freemarker.directive.out;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Assert;
import com.ewcms.common.lang.EmptyUtil;
import com.ewcms.publication.freemarker.FreemarkerUtil;
import freemarker.core.Environment;
import freemarker.template.TemplateException;
/**
* 标签输出格式化日期
*
* @author wangwei
*/
public class DateDirectiveOut implements DirectiveOutable{
private static final Logger logger = LoggerFactory.getLogger(DateDirectiveOut.class);
private static final String FORMAT_PARAM_NAME = "format";
private static final DateFormat DEFAULT_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
private String formatParam = FORMAT_PARAM_NAME;
@SuppressWarnings("rawtypes")
@Override
public String constructOut(Object value,Environment env,Map params)throws TemplateException {
Assert.notNull(value);
DateFormat dateFormat = getDateFormat(params);
return dateFormat.format(value);
}
@SuppressWarnings("rawtypes")
private DateFormat getDateFormat(Map params) throws TemplateException {
String format = FreemarkerUtil.getString(params, formatParam);
logger.debug("DateFormate is {}:",format);
if (EmptyUtil.isNull(format)) {
return DEFAULT_FORMAT;
}else{
return new SimpleDateFormat(format);
}
}
@SuppressWarnings("rawtypes")
@Override
public Object loopValue(Object value, Environment env, Map params)throws TemplateException {
Assert.notNull(value);
return value;
}
/**
* 设置日期格式参数
*
* @param param 日期格式参数
*/
public void setFormatParam (String param){
formatParam = param;
}
}