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 IntegerSetter extends AbstractSetter 37 { 38 41 private static final Log LOGGER = LogFactory.getLog(IntegerSetter.class); 42 43 46 public void set(Query query, String key, Object value) throws HibernateException, ParseException 47 { 48 if (value instanceof Integer ) 49 { 50 if (LOGGER.isInfoEnabled()) 51 { 52 LOGGER.info("The key='" + key + "'s value is instance of a Integer, now is parsing to int."); 53 } 54 int intValue = ((Integer ) value).intValue(); 55 query.setInteger(key, intValue); 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 int."); 62 } 63 int intValue = Integer.parseInt((String ) value); 64 query.setInteger(key, intValue); 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 int (key=" + key + ")"); 77 } 78 } 79 } | Popular Tags |