package net.codjo.control.server.handler; import java.math.BigDecimal; import java.sql.Timestamp; import net.codjo.control.common.util.FilterConstants; import net.codjo.mad.server.handler.XMLUtils; /** * */ public class FilterValueConverter { private FilterValueConverter() { } public static <T> T convertFromStringValue(Class<T> propertyClass, String value) { if (isNumeric(propertyClass) && FilterConstants.ALL.equals(value)) { value = "-1"; } if (isDate(propertyClass) && FilterConstants.ALL.equals(value)) { value = "9999-12-31"; } if (propertyClass == Timestamp.class && FilterConstants.ALL.equals(value)) { value = "9999-12-31 00:00:00"; } return XMLUtils.convertFromStringValue(propertyClass, value); } private static <T> boolean isDate(Class<T> propertyClass) { return propertyClass == java.sql.Date.class || propertyClass == java.util.Date.class; } private static <T> boolean isNumeric(Class<T> propertyClass) { return propertyClass == Integer.class || propertyClass == int.class || propertyClass == Double.class || propertyClass == double.class || propertyClass == BigDecimal.class; } }