/*
* Copyright LGPL3
* YES Technology Association
* http://yestech.org
*
* http://www.opensource.org/licenses/lgpl-3.0.html
*/
package org.yestech.lib.ibatis;
import com.ibatis.sqlmap.client.extensions.ParameterSetter;
import com.ibatis.sqlmap.client.extensions.ResultGetter;
import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback;
import java.sql.SQLException;
import java.sql.Types;
/*
*
* Author: Artie Copeland
* Last Modified Date: $DateTime: $
*/
public abstract class EnumTypeHandler<E extends Enum> implements TypeHandlerCallback
{
private Class<E> enumClass_;
public EnumTypeHandler(Class<E> enumClass)
{
enumClass_ = enumClass;
}
@SuppressWarnings("unchecked")
public void setParameter(ParameterSetter setter, Object parameter)
throws SQLException
{
setter.setString(((E) parameter).name());
}
public Object getResult(ResultGetter getter) throws SQLException
{
return valueOf(getter.getString());
}
@SuppressWarnings("unchecked")
public Object valueOf(String s)
{
return Enum.valueOf(enumClass_, s);
}
}