package rewards.internal;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
import common.money.MonetaryAmount;
public class MonetaryAmountTypeHandler implements TypeHandler {
@Override
public void setParameter(PreparedStatement ps, int i, Object parameter,
JdbcType jdbcType) throws SQLException {
double amount = ((MonetaryAmount)parameter).asDouble();
ps.setDouble(i, amount);
}
@Override
public Object getResult(ResultSet rs, String columnName)
throws SQLException {
double amount = rs.getDouble(columnName);
return new MonetaryAmount(amount);
}
@Override
public Object getResult(CallableStatement cs, int columnIndex)
throws SQLException {
double amount = cs.getDouble(columnIndex);
return new MonetaryAmount(amount);
}
public Object valueOf(String amount) {
return MonetaryAmount.valueOf(amount);
}
}