package org.sql2o; import java.sql.ResultSet; import java.sql.SQLException; /** * User: dimzon * Date: 4/7/14 * Time: 11:06 PM */ public class DelegatingResultSetHandler<E> implements ResultSetHandler<E> { private volatile ResultSetHandler<E> inner = null; private final ResultSetHandlerFactory<E> factory; public DelegatingResultSetHandler(ResultSetHandlerFactory<E> factory) { this.factory = factory; } public E handle(ResultSet resultSet) throws SQLException { if(inner==null) inner = factory.newResultSetHandler(resultSet.getMetaData()); return inner.handle(resultSet); } }