package org.quickbundle.project.serializer; import java.math.BigDecimal; import java.sql.Date; import java.sql.Timestamp; import org.quickbundle.itf.IPopulateParser; import org.quickbundle.tools.helper.RmDateHelper; import org.quickbundle.tools.helper.math.RmNumberHelper; public class RmPopulateParser implements IPopulateParser { public Object parse(Class clazz, Object value) { if(value == null) { return null; } Object result = value; if(clazz.equals(value.getClass())) { return result; } if (Timestamp.class.equals(clazz)) { //时间戳创建对象 result = RmDateHelper.getTimestamp(value.toString()); } else if (Date.class.equals(clazz)) { //SQL日期创建对象 result = RmDateHelper.getSqlDate(value.toString()); } else if (BigDecimal.class.equals(clazz)) { //BigDecimal //将千分位的","全部替换为"" result = RmNumberHelper.formatFromThousandth(value.toString()); } else if (String.class.equals(clazz)) { //字符串 result = value.toString(); } else if(long.class.equals(clazz) && value.toString().matches("^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}:\\d{2})?(\\.\\d+)?$")) { result = RmDateHelper.getTimestamp(value.toString()).getTime(); } else if (short.class.equals(clazz) || int.class.equals(clazz) || long.class.equals(clazz) || float.class.equals(clazz) || double.class.equals(clazz)) { //如果空字符串-->基本类型,忽略 if(value.toString().length() == 0) { result = null; } } return result; } }