1 21 package net.mlw.vlh.adapter.hibernate.util.setter; 22 23 import java.text.ParseException ; 24 25 import net.sf.hibernate.HibernateException; 26 import net.sf.hibernate.Query; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 31 36 public class DoubleSetter extends AbstractSetter 37 { 38 41 private static final Log LOGGER = LogFactory.getLog(DoubleSetter.class); 42 43 46 public void set(Query query, String key, Object value) throws HibernateException, ParseException 47 { 48 if (value instanceof Double ) 49 { 50 if (LOGGER.isInfoEnabled()) 51 { 52 LOGGER.info("The key='" + key + "'s value is instance of a Double, now is converting to double."); 53 } 54 double doubleValue = ((Double ) value).doubleValue(); 55 query.setDouble(key, doubleValue); 56 } 57 else if (value instanceof String ) 58 { 59 if (LOGGER.isInfoEnabled()) 60 { 61 LOGGER.info("The key='" + key + "'s value is instance of a String, now is parsing to double."); 62 } 63 double doubleValue = Double.parseDouble((String ) value); 64 query.setDouble(key, doubleValue); 65 } 66 else if (value == null) 67 { 68 if (LOGGER.isInfoEnabled()) 69 { 70 LOGGER.info("The key='" + key + "'s value is null."); 71 } 72 query.setParameter(key, null); 73 } 74 else 75 { 76 throw new IllegalArgumentException ("Cannot convert value of class " + value.getClass().getName() + " to double (key=" + key + ")"); 77 } 78 } 79 } | Popular Tags |