/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.store.hibernate.type; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import org.hibernate.HibernateException; import com.enonic.cms.core.structure.page.template.PageTemplateType; public class PageTemplateTypeUserType extends AbstractBaseUserType { public PageTemplateTypeUserType() { super( PageTemplateType.class, Types.INTEGER ); } public boolean isMutable() { return false; } public Object nullSafeGet( ResultSet rs, String[] names, Object owner ) throws HibernateException, SQLException { int intValue = rs.getInt( names[0] ); return rs.wasNull() ? null : PageTemplateType.get( intValue ); } public void nullSafeSet( PreparedStatement st, Object value, int index ) throws HibernateException, SQLException { if ( value == null ) { st.setNull( index, getSqlType() ); } else { PageTemplateType pageTemplateType = (PageTemplateType) value; st.setInt( index, pageTemplateType.getKey() ); } } }