/* * Copyright LGPL3 * YES Technology Association * http://yestech.org * * http://www.opensource.org/licenses/lgpl-3.0.html */ /* * * Author: Artie Copeland * Last Modified Date: $DateTime: $ */ package org.yestech.lib.ibatis; import com.ibatis.sqlmap.client.extensions.TypeHandlerCallback; import com.ibatis.sqlmap.client.extensions.ResultGetter; import com.ibatis.sqlmap.client.extensions.ParameterSetter; import java.sql.SQLException; import java.sql.Types; import java.math.BigDecimal; import java.math.BigInteger; /** * @author Artie Copeland * @version $Revision: $ */ public class BigIntegerTypeHandler implements TypeHandlerCallback { public Object getResult(ResultGetter getter) throws SQLException { Object o = getter.getObject(); if (o instanceof BigDecimal) { BigDecimal bd = (BigDecimal) o; return bd.toBigInteger(); } else if (o instanceof String) { return new BigInteger((String) o); } else { return o; } } public void setParameter(ParameterSetter setter, Object parameter) throws SQLException { if (parameter != null && parameter instanceof BigInteger) { BigInteger i = (BigInteger) parameter; setter.setBigDecimal(new BigDecimal(i)); } else { setter.setNull(Types.BIGINT); } } public Object valueOf(String s) { return s; } }