Hello Carl, please remember to add fixes to changes.xml so it is easier for RMs to generate release notes :-)
Thank you! Benedikt 2015-04-13 23:19 GMT+02:00 <thecarlh...@apache.org>: > Author: thecarlhall > Date: Mon Apr 13 21:19:22 2015 > New Revision: 1673285 > > URL: http://svn.apache.org/r1673285 > Log: > DBUTILS-82 Applied user-submitted patch and made minor fixes > > Modified: > > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java > > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java > > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/RowProcessor.java > > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanHandler.java > > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanListHandler.java > > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanHandlerTest.java > > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanListHandlerTest.java > > Modified: > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java > (original) > +++ > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java > Mon Apr 13 21:19:22 2015 > @@ -119,7 +119,7 @@ public class BasicRowProcessor implement > * @return the newly created bean > */ > @Override > - public <T> T toBean(ResultSet rs, Class<T> type) throws SQLException { > + public <T> T toBean(ResultSet rs, Class<? extends T> type) throws > SQLException { > return this.convert.toBean(rs, type); > } > > @@ -136,7 +136,7 @@ public class BasicRowProcessor implement > * they were returned by the <code>ResultSet</code>. > */ > @Override > - public <T> List<T> toBeanList(ResultSet rs, Class<T> type) throws > SQLException { > + public <T> List<T> toBeanList(ResultSet rs, Class<? extends T> type) > throws SQLException { > return this.convert.toBeanList(rs, type); > } > > > Modified: > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java > (original) > +++ > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java > Mon Apr 13 21:19:22 2015 > @@ -135,7 +135,7 @@ public class BeanProcessor { > * @throws SQLException if a database access error occurs > * @return the newly created bean > */ > - public <T> T toBean(ResultSet rs, Class<T> type) throws SQLException { > + public <T> T toBean(ResultSet rs, Class<? extends T> type) throws > SQLException { > > PropertyDescriptor[] props = this.propertyDescriptors(type); > > @@ -178,7 +178,7 @@ public class BeanProcessor { > * @throws SQLException if a database access error occurs > * @return the newly created List of beans > */ > - public <T> List<T> toBeanList(ResultSet rs, Class<T> type) throws > SQLException { > + public <T> List<T> toBeanList(ResultSet rs, Class<? extends T> type) > throws SQLException { > List<T> results = new ArrayList<T>(); > > if (!rs.next()) { > > Modified: > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/RowProcessor.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/RowProcessor.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/RowProcessor.java > (original) > +++ > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/RowProcessor.java > Mon Apr 13 21:19:22 2015 > @@ -55,7 +55,7 @@ public interface RowProcessor { > * @throws SQLException if a database access error occurs > * @return the newly created bean > */ > - <T> T toBean(ResultSet rs, Class<T> type) throws SQLException; > + <T> T toBean(ResultSet rs, Class<? extends T> type) throws > SQLException; > > /** > * Create a <code>List</code> of JavaBeans from the column values in > all > @@ -68,7 +68,7 @@ public interface RowProcessor { > * @return A <code>List</code> of beans with the given type in the > order > * they were returned by the <code>ResultSet</code>. > */ > - <T> List<T> toBeanList(ResultSet rs, Class<T> type) throws > SQLException; > + <T> List<T> toBeanList(ResultSet rs, Class<? extends T> type) throws > SQLException; > > /** > * Create a <code>Map</code> from the column values in one > > Modified: > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanHandler.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanHandler.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanHandler.java > (original) > +++ > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanHandler.java > Mon Apr 13 21:19:22 2015 > @@ -34,7 +34,7 @@ public class BeanHandler<T> implements R > /** > * The Class of beans produced by this handler. > */ > - private final Class<T> type; > + private final Class<? extends T> type; > > /** > * The RowProcessor implementation to use when converting rows > @@ -48,7 +48,7 @@ public class BeanHandler<T> implements R > * @param type The Class that objects returned from > <code>handle()</code> > * are created from. > */ > - public BeanHandler(Class<T> type) { > + public BeanHandler(Class<? extends T> type) { > this(type, ArrayHandler.ROW_PROCESSOR); > } > > @@ -60,7 +60,7 @@ public class BeanHandler<T> implements R > * @param convert The <code>RowProcessor</code> implementation > * to use when converting rows into beans. > */ > - public BeanHandler(Class<T> type, RowProcessor convert) { > + public BeanHandler(Class<? extends T> type, RowProcessor convert) { > this.type = type; > this.convert = convert; > } > > Modified: > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanListHandler.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanListHandler.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanListHandler.java > (original) > +++ > commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/BeanListHandler.java > Mon Apr 13 21:19:22 2015 > @@ -36,7 +36,7 @@ public class BeanListHandler<T> implemen > /** > * The Class of beans produced by this handler. > */ > - private final Class<T> type; > + private final Class<? extends T> type; > > /** > * The RowProcessor implementation to use when converting rows > @@ -50,7 +50,7 @@ public class BeanListHandler<T> implemen > * @param type The Class that objects returned from > <code>handle()</code> > * are created from. > */ > - public BeanListHandler(Class<T> type) { > + public BeanListHandler(Class<? extends T> type) { > this(type, ArrayHandler.ROW_PROCESSOR); > } > > @@ -62,7 +62,7 @@ public class BeanListHandler<T> implemen > * @param convert The <code>RowProcessor</code> implementation > * to use when converting rows into beans. > */ > - public BeanListHandler(Class<T> type, RowProcessor convert) { > + public BeanListHandler(Class<? extends T> type, RowProcessor convert) > { > this.type = type; > this.convert = convert; > } > > Modified: > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanHandlerTest.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanHandlerTest.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanHandlerTest.java > (original) > +++ > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanHandlerTest.java > Mon Apr 13 21:19:22 2015 > @@ -45,4 +45,37 @@ public class BeanHandlerTest extends Bas > assertNull(results); > } > > + public void testHandleToSuperClass() throws SQLException { > + ResultSetHandler<TestBean> h = new > BeanHandler<TestBean>(SubTestBean.class); > + TestBean results = h.handle(this.rs); > + > + assertNotNull(results); > + assertEquals("1", results.getOne()); > + assertEquals("2", results.getTwo()); > + assertEquals(TestBean.Ordinal.THREE, results.getThree()); > + assertEquals("not set", results.getDoNotSet()); > + } > + > + public void testHandleToInterface() throws SQLException { > + ResultSetHandler<SubTestBeanInterface> h = new > BeanHandler<SubTestBeanInterface>(SubTestBean.class); > + SubTestBeanInterface results = h.handle(this.rs); > + > + assertNotNull(results); > + assertEquals("1", results.getOne()); > + assertEquals("2", results.getTwo()); > + assertEquals(TestBean.Ordinal.THREE, results.getThree()); > + assertEquals("not set", results.getDoNotSet()); > + } > + > + public static interface SubTestBeanInterface { > + public String getOne(); > + > + public TestBean.Ordinal getThree(); > + > + public String getTwo(); > + > + public String getDoNotSet(); > + } > + > + public static class SubTestBean extends TestBean implements > SubTestBeanInterface { } > } > > Modified: > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanListHandlerTest.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanListHandlerTest.java?rev=1673285&r1=1673284&r2=1673285&view=diff > > ============================================================================== > --- > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanListHandlerTest.java > (original) > +++ > commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/BeanListHandlerTest.java > Mon Apr 13 21:19:22 2015 > @@ -64,4 +64,75 @@ public class BeanListHandlerTest extends > assertTrue(results.isEmpty()); > } > > + public void testHandleToSuperClass() throws SQLException { > + ResultSetHandler<List<TestBean>> h = new > BeanListHandler<TestBean>(SubTestBean.class); > + List<TestBean> results = h.handle(this.rs); > + > + assertNotNull(results); > + assertEquals(ROWS, results.size()); > + > + Iterator<TestBean> iter = results.iterator(); > + TestBean row = null; > + assertTrue(iter.hasNext()); > + row = iter.next(); > + assertSame(SubTestBean.class, row.getClass()); > + > + assertEquals("1", row.getOne()); > + assertEquals("2", row.getTwo()); > + assertEquals(TestBean.Ordinal.THREE, row.getThree()); > + assertEquals("not set", row.getDoNotSet()); > + > + assertTrue(iter.hasNext()); > + row = iter.next(); > + assertSame(SubTestBean.class, row.getClass()); > + > + assertEquals("4", row.getOne()); > + assertEquals("5", row.getTwo()); > + assertEquals(TestBean.Ordinal.SIX, row.getThree()); > + assertEquals("not set", row.getDoNotSet()); > + > + assertFalse(iter.hasNext()); > + } > + > + public void testHandleToInterface() throws SQLException { > + ResultSetHandler<List<SubTestBeanInterface>> h = new > BeanListHandler<SubTestBeanInterface>(SubTestBean.class); > + List<SubTestBeanInterface> results = h.handle(this.rs); > + > + assertNotNull(results); > + assertEquals(ROWS, results.size()); > + > + Iterator<SubTestBeanInterface> iter = results.iterator(); > + SubTestBeanInterface row = null; > + assertTrue(iter.hasNext()); > + row = iter.next(); > + assertSame(SubTestBean.class, row.getClass()); > + > + assertEquals("1", row.getOne()); > + assertEquals("2", row.getTwo()); > + assertEquals(TestBean.Ordinal.THREE, row.getThree()); > + assertEquals("not set", row.getDoNotSet()); > + > + assertTrue(iter.hasNext()); > + row = iter.next(); > + assertSame(SubTestBean.class, row.getClass()); > + > + assertEquals("4", row.getOne()); > + assertEquals("5", row.getTwo()); > + assertEquals(TestBean.Ordinal.SIX, row.getThree()); > + assertEquals("not set", row.getDoNotSet()); > + > + assertFalse(iter.hasNext()); > + } > + > + public static interface SubTestBeanInterface { > + public String getOne(); > + > + public TestBean.Ordinal getThree(); > + > + public String getTwo(); > + > + public String getDoNotSet(); > + } > + > + public static class SubTestBean extends TestBean implements > SubTestBeanInterface { } > } > > > -- http://people.apache.org/~britter/ http://www.systemoutprintln.de/ http://twitter.com/BenediktRitter http://github.com/britter