You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by br...@apache.org on 2014/05/08 11:22:42 UTC

svn commit: r1593217 - in /commons/proper/dbutils/trunk/src: changes/ main/java/org/apache/commons/dbutils/ test/java/org/apache/commons/dbutils/ test/java/org/apache/commons/dbutils/handlers/

Author: britter
Date: Thu May  8 09:22:41 2014
New Revision: 1593217

URL: http://svn.apache.org/r1593217
Log:
DBUTILS-113: Add support for conversion of ResultSet strings to enums in the BeanProcessor. Thanks to Graylin Kim and Michael Osipov.

Modified:
    commons/proper/dbutils/trunk/src/changes/changes.xml
    commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BeanProcessorTest.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/ResultSetIteratorTest.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayListHandlerTest.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
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/KeyedHandlerTest.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapHandlerTest.java
    commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapListHandlerTest.java

Modified: commons/proper/dbutils/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/changes/changes.xml?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/changes/changes.xml (original)
+++ commons/proper/dbutils/trunk/src/changes/changes.xml Thu May  8 09:22:41 2014
@@ -44,6 +44,9 @@ The <action> type attribute can be add,u
   </properties>
   <body>
     <release version="1.6" date="TBA" description="Bugfixes and addition of insert methods">
+      <action dev="britter" type="add" issue="DBUTILS-113" due-to="Graylin Kim, Michael Osipov">
+        Add support for conversion of ResultSet strings to enums in the BeanProcessor
+      </action>
       <action dev="sebb" type="update" issue="DBUTILS-85">
         In BeanProcessor#isCompatibleType, can Integer.class.isInstance(value) be replaced by value instanceof Integer (etc)?
         Simplified code by using instanceof.

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=1593217&r1=1593216&r2=1593217&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 Thu May  8 09:22:41 2014
@@ -264,6 +264,9 @@ public class BeanProcessor {
                 if ("java.sql.Timestamp".equals(targetType)) {
                     value = new java.sql.Timestamp(((java.util.Date) value).getTime());
                 }
+            } else
+            if (value instanceof String && params[0].isEnum()) {
+                value = Enum.valueOf(params[0].asSubclass(Enum.class), (String) value);
             }
 
             // Don't call setter if the value object isn't the right type

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java Thu May  8 09:22:41 2014
@@ -54,7 +54,7 @@ public class BaseTestCase extends TestCa
         new Object[] {
             "1",
             "2",
-            "3",
+            "THREE",
             "  notInBean  ",
             Integer.valueOf(1),
             Integer.valueOf(2),
@@ -67,7 +67,7 @@ public class BaseTestCase extends TestCa
         new Object[] {
             "4",
             "5",
-            "6",
+            "SIX",
             "  notInBean  ",
             Integer.valueOf(3),
             Integer.valueOf(4),

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java Thu May  8 09:22:41 2014
@@ -46,7 +46,7 @@ public class BasicRowProcessorTest exten
         assertEquals(COLS, a.length);
         assertEquals("1", a[0]);
         assertEquals("2", a[1]);
-        assertEquals("3", a[2]);
+        assertEquals("THREE", a[2]);
 
         assertTrue(this.rs.next());
         a = processor.toArray(this.rs);
@@ -54,7 +54,7 @@ public class BasicRowProcessorTest exten
 
         assertEquals("4", a[0]);
         assertEquals("5", a[1]);
-        assertEquals("6", a[2]);
+        assertEquals("SIX", a[2]);
 
         assertFalse(this.rs.next());
     }
@@ -66,7 +66,7 @@ public class BasicRowProcessorTest exten
         row = processor.toBean(this.rs, TestBean.class);
         assertEquals("1", row.getOne());
         assertEquals("2", row.getTwo());
-        assertEquals("3", row.getThree());
+        assertEquals(TestBean.Ordinal.THREE, row.getThree());
         assertEquals("not set", row.getDoNotSet());
 
         assertTrue(this.rs.next());
@@ -74,7 +74,7 @@ public class BasicRowProcessorTest exten
 
         assertEquals("4", row.getOne());
         assertEquals("5", row.getTwo());
-        assertEquals("6", row.getThree());
+        assertEquals(TestBean.Ordinal.SIX, row.getThree());
         assertEquals("not set", row.getDoNotSet());
         assertEquals(3, row.getIntTest());
         assertEquals(Integer.valueOf(4), row.getIntegerTest());
@@ -98,13 +98,13 @@ public class BasicRowProcessorTest exten
         TestBean b = list.get(0);
         assertEquals("1", b.getOne());
         assertEquals("2", b.getTwo());
-        assertEquals("3", b.getThree());
+        assertEquals(TestBean.Ordinal.THREE, b.getThree());
         assertEquals("not set", b.getDoNotSet());
 
         b = list.get(1);
         assertEquals("4", b.getOne());
         assertEquals("5", b.getTwo());
-        assertEquals("6", b.getThree());
+        assertEquals(TestBean.Ordinal.SIX, b.getThree());
         assertEquals("not set", b.getDoNotSet());
         assertEquals(3, b.getIntTest());
         assertEquals(Integer.valueOf(4), b.getIntegerTest());
@@ -123,7 +123,7 @@ public class BasicRowProcessorTest exten
         assertEquals(COLS, m.keySet().size());
         assertEquals("1", m.get("one"));
         assertEquals("2", m.get("TWO"));
-        assertEquals("3", m.get("Three"));
+        assertEquals("THREE", m.get("Three"));
 
         assertTrue(this.rs.next());
         m = processor.toMap(this.rs);
@@ -131,7 +131,7 @@ public class BasicRowProcessorTest exten
 
         assertEquals("4", m.get("One")); // case shouldn't matter
         assertEquals("5", m.get("two"));
-        assertEquals("6", m.get("THREE"));
+        assertEquals("SIX", m.get("THREE"));
 
         assertFalse(this.rs.next());
     }

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BeanProcessorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BeanProcessorTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BeanProcessorTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BeanProcessorTest.java Thu May  8 09:22:41 2014
@@ -32,10 +32,12 @@ public class BeanProcessorTest extends B
         assertTrue(this.rs.next());
         b = beanProc.toBean(this.rs, TestBean.class);
         assertEquals(13.0, b.getColumnProcessorDoubleTest(), 0);
+        assertEquals(b.getThree(), TestBean.Ordinal.THREE);
 
         assertTrue(this.rs.next());
         b = beanProc.toBean(this.rs, TestBean.class);
         assertEquals(13.0, b.getColumnProcessorDoubleTest(), 0);
+        assertEquals(b.getThree(), TestBean.Ordinal.SIX);
 
         assertFalse(this.rs.next());
     }

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/ResultSetIteratorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/ResultSetIteratorTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/ResultSetIteratorTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/ResultSetIteratorTest.java Thu May  8 09:22:41 2014
@@ -33,7 +33,7 @@ public class ResultSetIteratorTest exten
         assertEquals(COLS, row.length);
         assertEquals("1", row[0]);
         assertEquals("2", row[1]);
-        assertEquals("3", row[2]);
+        assertEquals("THREE", row[2]);
 
         assertTrue(iter.hasNext());
         row = iter.next();
@@ -41,7 +41,7 @@ public class ResultSetIteratorTest exten
 
         assertEquals("4", row[0]);
         assertEquals("5", row[1]);
-        assertEquals("6", row[2]);
+        assertEquals("SIX", row[2]);
 
         assertFalse(iter.hasNext());
     }

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java Thu May  8 09:22:41 2014
@@ -21,11 +21,17 @@ package org.apache.commons.dbutils;
  */
 public class TestBean {
 
+    public enum Ordinal {
+
+        THREE, SIX;
+
+    };
+
     private String one = null;
 
     private String two = null;
 
-    private String three = null;
+    private Ordinal three = null;
 
     private int intTest = 0;
 
@@ -69,7 +75,7 @@ public class TestBean {
         return one;
     }
 
-    public String getThree() {
+    public Ordinal getThree() {
         return three;
     }
 
@@ -81,8 +87,8 @@ public class TestBean {
         one = string;
     }
 
-    public void setThree(String string) {
-        three = string;
+    public void setThree(Ordinal ordinal) {
+        three = ordinal;
     }
 
     public void setTwo(String string) {

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java Thu May  8 09:22:41 2014
@@ -34,7 +34,7 @@ public class ArrayHandlerTest extends Ba
         assertEquals(COLS, results.length);
         assertEquals("1", results[0]);
         assertEquals("2", results[1]);
-        assertEquals("3", results[2]);
+        assertEquals("THREE", results[2]);
     }
 
     public void testEmptyResultSetHandle() throws SQLException {

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayListHandlerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayListHandlerTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayListHandlerTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayListHandlerTest.java Thu May  8 09:22:41 2014
@@ -42,7 +42,7 @@ public class ArrayListHandlerTest extend
         assertEquals(COLS, row.length);
         assertEquals("1", row[0]);
         assertEquals("2", row[1]);
-        assertEquals("3", row[2]);
+        assertEquals("THREE", row[2]);
 
         assertTrue(iter.hasNext());
         row = iter.next();
@@ -50,7 +50,7 @@ public class ArrayListHandlerTest extend
 
         assertEquals("4", row[0]);
         assertEquals("5", row[1]);
-        assertEquals("6", row[2]);
+        assertEquals("SIX", row[2]);
 
         assertFalse(iter.hasNext());
     }

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=1593217&r1=1593216&r2=1593217&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 Thu May  8 09:22:41 2014
@@ -34,7 +34,7 @@ public class BeanHandlerTest extends Bas
         assertNotNull(results);
         assertEquals("1", results.getOne());
         assertEquals("2", results.getTwo());
-        assertEquals("3", results.getThree());
+        assertEquals(TestBean.Ordinal.THREE, results.getThree());
         assertEquals("not set", results.getDoNotSet());
     }
 

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=1593217&r1=1593216&r2=1593217&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 Thu May  8 09:22:41 2014
@@ -42,7 +42,7 @@ public class BeanListHandlerTest extends
         row = iter.next();
         assertEquals("1", row.getOne());
         assertEquals("2", row.getTwo());
-        assertEquals("3", row.getThree());
+        assertEquals(TestBean.Ordinal.THREE, row.getThree());
         assertEquals("not set", row.getDoNotSet());
 
         assertTrue(iter.hasNext());
@@ -50,7 +50,7 @@ public class BeanListHandlerTest extends
 
         assertEquals("4", row.getOne());
         assertEquals("5", row.getTwo());
-        assertEquals("6", row.getThree());
+        assertEquals(TestBean.Ordinal.SIX, row.getThree());
         assertEquals("not set", row.getDoNotSet());
 
         assertFalse(iter.hasNext());

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/KeyedHandlerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/KeyedHandlerTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/KeyedHandlerTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/KeyedHandlerTest.java Thu May  8 09:22:41 2014
@@ -45,7 +45,7 @@ public class KeyedHandlerTest extends Ba
         row = results.get("1");
         assertEquals("1", row.get("one"));
         assertEquals("2", row.get("TWO"));
-        assertEquals("3", row.get("Three"));
+        assertEquals("THREE", row.get("Three"));
     }
 
     public void testColumnIndexHandle() throws SQLException {
@@ -67,7 +67,7 @@ public class KeyedHandlerTest extends Ba
         row = results.get("5");
         assertEquals("4", row.get("one"));
         assertEquals("5", row.get("TWO"));
-        assertEquals("6", row.get("Three"));
+        assertEquals("SIX", row.get("Three"));
     }
 
     public void testColumnNameHandle() throws SQLException {
@@ -89,7 +89,7 @@ public class KeyedHandlerTest extends Ba
         row = results.get(Integer.valueOf(3));
         assertEquals("4", row.get("one"));
         assertEquals("5", row.get("TWO"));
-        assertEquals("6", row.get("Three"));
+        assertEquals("SIX", row.get("Three"));
     }
 
     public void testEmptyResultSetHandle() throws SQLException {

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapHandlerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapHandlerTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapHandlerTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapHandlerTest.java Thu May  8 09:22:41 2014
@@ -35,7 +35,7 @@ public class MapHandlerTest extends Base
         assertEquals(COLS, results.keySet().size());
         assertEquals("1", results.get("ONE"));
         assertEquals("2", results.get("two"));
-        assertEquals("3", results.get("Three"));
+        assertEquals("THREE", results.get("Three"));
     }
 
     public void testEmptyResultSetHandle() throws SQLException {

Modified: commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapListHandlerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapListHandlerTest.java?rev=1593217&r1=1593216&r2=1593217&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapListHandlerTest.java (original)
+++ commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/MapListHandlerTest.java Thu May  8 09:22:41 2014
@@ -43,7 +43,7 @@ public class MapListHandlerTest extends 
         assertEquals(COLS, row.keySet().size());
         assertEquals("1", row.get("one"));
         assertEquals("2", row.get("TWO"));
-        assertEquals("3", row.get("Three"));
+        assertEquals("THREE", row.get("Three"));
 
         assertTrue(iter.hasNext());
         row = iter.next();
@@ -51,7 +51,7 @@ public class MapListHandlerTest extends 
 
         assertEquals("4", row.get("one"));
         assertEquals("5", row.get("TWO"));
-        assertEquals("6", row.get("Three"));
+        assertEquals("SIX", row.get("Three"));
 
         assertFalse(iter.hasNext());
     }