/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.component.support.web.webwork;
import java.util.Date;
import java.util.Map;
import ognl.DefaultTypeConverter;
import com.jinhe.tss.core.util.DateUtil;
/**
* <p> DateConverter.java </p>
*
* 日期转换 现在默认的日期格式为:yyyy-MM-dd
*
*/
public class DateConverter extends DefaultTypeConverter {
@SuppressWarnings("unchecked")
public Object convertValue(Map ognlContext, Object value, Class toType) {
Object result = null;
if (toType == Date.class) {
result = doConvertToDate(value);
}
if (toType == String.class) {
if (value instanceof Date) {
result = DateUtil.format((Date)value);
}
}
return result;
}
private Date doConvertToDate(Object value) {
Date result = null;
if (value instanceof String) {
return DateUtil.parse((String)value);
}
else if (value instanceof Object[]) {
// let's try to convert the first element only
Object[] array = (Object[]) value;
if ((array != null) && (array.length >= 1)) {
value = array[0];
result = doConvertToDate(value);
}
} else if (Date.class.isAssignableFrom(value.getClass())) {
result = (Date) value;
}
return result;
}
}