package org.springframework.jdbc.core.simple;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.SingleColumnRowMapper;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;

/**
 * 
 */
public class ParameterizedSingleColumnRowMapper<T> implements
		ParameterizedRowMapper<T> {

	private SingleColumnRowMapper decorated;

	private ParameterizedSingleColumnRowMapper(Class<T> mappedClass) {
		this.decorated = new SingleColumnRowMapper(mappedClass);
	}

	public static <T> ParameterizedSingleColumnRowMapper<T> newInstance(
			Class<T> mappedClass) {
		ParameterizedSingleColumnRowMapper<T> newInstance = new ParameterizedSingleColumnRowMapper<T>(
				mappedClass);
		return newInstance;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.springframework.jdbc.core.simple.ParameterizedRowMapper#mapRow(java.sql.ResultSet,
	 *      int)
	 */
	@SuppressWarnings("unchecked")
	public T mapRow(ResultSet rs, int rowNum) throws SQLException {
		return (T) decorated.mapRow(rs, rowNum);
	}

}

