Clover Coverage Report - itracker
Coverage timestamp: Tue May 1 2012 16:42:12 CEST
9   63   8   1.29
4   38   0.89   7
7     1.14  
1    
 
 
  EnumNameUserType       Line # 19 9 8 0% 0.0
 
No Tests
 
1    package org.itracker.persistence.dao;
2   
3    import java.sql.PreparedStatement;
4    import java.sql.ResultSet;
5    import java.sql.SQLException;
6    import java.sql.Types;
7   
8    import org.hibernate.HibernateException;
9   
10    /**
11    * Custom Hibernate UserType to persist a Java 5 enum constant as a VARCHAR
12    * using its name.
13    *
14    * <p>Based on the original class by Gavin King
15    * (http://www.hibernate.org/272.html). </p>
16    *
17    * @author johnny
18    */
 
19    public class EnumNameUserType extends AbstractEnumUserType {
20   
21    private static final int[] SQL_TYPES = { Types.VARCHAR };
22   
23    /**
24    * Default constructor, required by Hibernate.
25    */
 
26  0 toggle public EnumNameUserType() {
27    }
28   
 
29  0 toggle @SuppressWarnings("unchecked")
30    public Object nullSafeGet(ResultSet rs, String[] names, Object owner)
31    throws HibernateException, SQLException {
32  0 final String name = rs.getString(names[0]);
33   
34  0 return rs.wasNull() ? null : Enum.valueOf(this.enumClass, name);
35    }
36   
 
37  0 toggle public void nullSafeSet(PreparedStatement st, Object value, int index)
38    throws HibernateException, SQLException {
39  0 if (value == null) {
40  0 st.setNull(index, Types.VARCHAR);
41    } else {
42  0 st.setString(index, ((Enum<?>) value).name());
43    }
44    }
45   
 
46  0 toggle public int[] sqlTypes() {
47  0 return SQL_TYPES;
48    }
49   
 
50  0 toggle public String objectToSQLString(Object value) {
51  0 return '\'' + ((Enum<?>) value).name() + '\'';
52    }
53   
 
54  0 toggle public String toXMLString(Object value) {
55  0 return ((Enum<?>) value).name();
56    }
57   
 
58  0 toggle @SuppressWarnings("unchecked")
59    public Object fromXMLString(String xmlValue) {
60  0 return Enum.valueOf(this.enumClass, xmlValue);
61    }
62   
63    }