You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2008/03/23 08:37:02 UTC
svn commit: r640168 - in /ibatis/trunk/java/mapper/mapper2: build/
src/com/ibatis/sqlmap/engine/mapping/parameter/
src/com/ibatis/sqlmap/engine/mapping/result/
src/com/ibatis/sqlmap/engine/type/ test/com/ibatis/sqlmap/maps/
test/scripts/ test/testdomain/
Author: cbegin
Date: Sun Mar 23 00:36:59 2008
New Revision: 640168
URL: http://svn.apache.org/viewvc?rev=640168&view=rev
Log:
Added support for Java 5 enumerations
Added:
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/EnumTypeHandler.java
- copied, changed from r640008, ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/StringTypeHandler.java
ibatis/trunk/java/mapper/mapper2/test/testdomain/DocType.java
Modified:
ibatis/trunk/java/mapper/mapper2/build/version.properties
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/ParameterMap.java
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/TypeHandlerFactory.java
ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml
ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/PrivateBook.xml
ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql
ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java
Modified: ibatis/trunk/java/mapper/mapper2/build/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/build/version.properties?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/build/version.properties (original)
+++ ibatis/trunk/java/mapper/mapper2/build/version.properties Sun Mar 23 00:36:59 2008
@@ -1,5 +1,5 @@
#Build version info
-#Sat Mar 22 23:32:54 MDT 2008
+#Sun Mar 23 00:00:08 MDT 2008
version=2.3.1
-buildDate=2008/03/22 23\:32
-buildNum=708
+buildDate=2008/03/23 00\:00
+buildNum=709
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/ParameterMap.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/ParameterMap.java?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/ParameterMap.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/parameter/ParameterMap.java Sun Mar 23 00:36:59 2008
@@ -120,7 +120,7 @@
if (parameterMappings != null) {
for (int i = 0; i < parameterMappings.length; i++) {
- ParameterMapping mapping = (ParameterMapping) parameterMappings[i];
+ ParameterMapping mapping = parameterMappings[i];
errorContext.setMoreInfo(mapping.getErrorString());
if (mapping.isInputAllowed()) {
setParameter(ps, mapping, parameters, i);
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/ResultMap.java Sun Mar 23 00:36:59 2008
@@ -345,8 +345,7 @@
columnValues[i] = getPrimitiveResultMappingValue(rs, mapping);
if (columnValues[i] == null) {
columnValues[i] = doNullMapping(columnValues[i], mapping);
- }
- else {
+ } else {
foundData = true;
}
}
Copied: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/EnumTypeHandler.java (from r640008, ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/StringTypeHandler.java)
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/EnumTypeHandler.java?p2=ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/EnumTypeHandler.java&p1=ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/StringTypeHandler.java&r1=640008&r2=640168&rev=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/StringTypeHandler.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/EnumTypeHandler.java Sun Mar 23 00:36:59 2008
@@ -23,11 +23,17 @@
/**
* String implementation of TypeHandler
*/
-public class StringTypeHandler extends BaseTypeHandler implements TypeHandler {
+public class EnumTypeHandler extends BaseTypeHandler implements TypeHandler {
+
+ private Class type;
+
+ public EnumTypeHandler(Class type) {
+ this.type = type;
+ }
public void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType)
throws SQLException {
- ps.setString(i, ((String) parameter));
+ ps.setString(i, parameter.toString());
}
public Object getResult(ResultSet rs, String columnName)
@@ -36,7 +42,7 @@
if (rs.wasNull()) {
return null;
} else {
- return s;
+ return Enum.valueOf(type, (String)s);
}
}
@@ -46,7 +52,7 @@
if (rs.wasNull()) {
return null;
} else {
- return s;
+ return Enum.valueOf(type, (String)s);
}
}
@@ -56,12 +62,12 @@
if (cs.wasNull()) {
return null;
} else {
- return s;
+ return Enum.valueOf(type, (String)s);
}
}
public Object valueOf(String s) {
- return s;
+ return Enum.valueOf(type, (String)s);
}
-}
+}
\ No newline at end of file
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/TypeHandlerFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/TypeHandlerFactory.java?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/TypeHandlerFactory.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/type/TypeHandlerFactory.java Sun Mar 23 00:36:59 2008
@@ -140,6 +140,9 @@
handler = (TypeHandler) jdbcHandlerMap.get(null);
}
}
+ if (handler == null && Enum.class.isAssignableFrom(type)) {
+ handler = new EnumTypeHandler(type);
+ }
return handler;
}
@@ -161,7 +164,7 @@
* @return - true if there is a TypeHandler
*/
public boolean hasTypeHandler(Class type) {
- return getTypeHandler(type) != null;
+ return getTypeHandler(type) != null || Enum.class.isAssignableFrom(type);
}
/**
Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/Documents.xml Sun Mar 23 00:36:59 2008
@@ -19,8 +19,8 @@
<result property="title" column="DOCUMENT_TITLE"/>
<result property="type" column="DOCUMENT_TYPE"/>
<discriminator column="DOCUMENT_TYPE" javaType="string" >
- <subMap value="Book" resultMap="book"/>
- <subMap value="Newspaper" resultMap="news"/>
+ <subMap value="BOOK" resultMap="book"/>
+ <subMap value="NEWSPAPER" resultMap="news"/>
</discriminator>
</resultMap>
@@ -30,8 +30,8 @@
<result property="type" column="DOCUMENT_TYPE"/>
<result property="attributes" resultMap="Documents.documentAttributes" />
<discriminator column="DOCUMENT_TYPE" javaType="string" >
- <subMap value="Book" resultMap="bookWithAttributes"/>
- <subMap value="Newspaper" resultMap="newsWithAttributes"/>
+ <subMap value="BOOK" resultMap="bookWithAttributes"/>
+ <subMap value="NEWSPAPER" resultMap="newsWithAttributes"/>
</discriminator>
</resultMap>
Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/PrivateBook.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/PrivateBook.xml?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/PrivateBook.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/PrivateBook.xml Sun Mar 23 00:36:59 2008
@@ -13,7 +13,7 @@
DOCUMENT_TYPE as type,
DOCUMENT_PAGENUMBER as pages
from DOCUMENTS
- where DOCUMENT_TYPE = 'Book'
+ where DOCUMENT_TYPE = 'BOOK'
</select>
</sqlMap>
Modified: ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql (original)
+++ ibatis/trunk/java/mapper/mapper2/test/scripts/docs-init.sql Sun Mar 23 00:36:59 2008
@@ -11,12 +11,12 @@
PRIMARY KEY (DOCUMENT_ID)
);
-INSERT INTO DOCUMENTS VALUES (1, 'The World of Null-A', 'Book', 55, null);
-INSERT INTO DOCUMENTS VALUES (2, 'Le Progres de Lyon', 'Newspaper', null , 'Lyon');
-INSERT INTO DOCUMENTS VALUES (3, 'Lord of the Rings', 'Book', 3587, null);
-INSERT INTO DOCUMENTS VALUES (4, 'Le Canard enchaine', 'Newspaper', null , 'Paris');
-INSERT INTO DOCUMENTS VALUES (5, 'Le Monde', 'Broadsheet', null , 'Paris');
-INSERT INTO DOCUMENTS VALUES (6, 'Foundation', 'Monograph', 557, null);
+INSERT INTO DOCUMENTS VALUES (1, 'The World of Null-A', 'BOOK', 55, null);
+INSERT INTO DOCUMENTS VALUES (2, 'Le Progres de Lyon', 'NEWSPAPER', null , 'Lyon');
+INSERT INTO DOCUMENTS VALUES (3, 'Lord of the Rings', 'BOOK', 3587, null);
+INSERT INTO DOCUMENTS VALUES (4, 'Le Canard enchaine', 'NEWSPAPER', null , 'Paris');
+INSERT INTO DOCUMENTS VALUES (5, 'Le Monde', 'BROADSHEET', null , 'Paris');
+INSERT INTO DOCUMENTS VALUES (6, 'Foundation', 'MONOGRAPH', 557, null);
CREATE TABLE PERSON_DOCUMENTS (
PERSON_ID INTEGER NOT NULL,
Added: ibatis/trunk/java/mapper/mapper2/test/testdomain/DocType.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/testdomain/DocType.java?rev=640168&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/testdomain/DocType.java (added)
+++ ibatis/trunk/java/mapper/mapper2/test/testdomain/DocType.java Sun Mar 23 00:36:59 2008
@@ -0,0 +1,5 @@
+package testdomain;
+
+public enum DocType {
+ BOOK, NEWSPAPER, BROADSHEET, MONOGRAPH
+}
Modified: ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java?rev=640168&r1=640167&r2=640168&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/testdomain/Document.java Sun Mar 23 00:36:59 2008
@@ -6,7 +6,7 @@
private int id;
private String title;
- private String type;
+ private DocType type;
private List attributes;
public int getId() {
@@ -25,11 +25,11 @@
this.title = title;
}
- public String getType() {
+ public DocType getType() {
return type;
}
- public void setType(String type) {
+ public void setType(DocType type) {
this.type = type;
}