Author: doogie
Date: Fri Jul 30 03:28:15 2010
New Revision: 980643
URL: http://svn.apache.org/viewvc?rev=980643&view=rev
Log:
Generify JdbcValueHandler.
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/JdbcValueHandler.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SQLProcessor.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SqlJdbcUtil.java
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/JdbcValueHandler.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/JdbcValueHandler.java?rev=980643&r1=980642&r2=980643&view=diff
==============================================================================
---
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/JdbcValueHandler.java
(original)
+++
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/JdbcValueHandler.java
Fri Jul 30 03:28:15 2010
@@ -44,18 +44,18 @@ import org.ofbiz.base.util.Debug;
* <code>PreparedStatement</code> and <code>ResultSet</code> objects.
*
*/
-public abstract class JdbcValueHandler {
+public abstract class JdbcValueHandler<T> {
public static final String module = JdbcValueHandler.class.getName();
- private static final Map<String, JdbcValueHandler> JdbcValueHandlerMap =
createJdbcValueHandlerMap();
+ private static final Map<String, JdbcValueHandler<?>> JdbcValueHandlerMap
= createJdbcValueHandlerMap();
private static final Map<String, Integer> SqlTypeMap = createSqlTypeMap();
- private static Map<String, JdbcValueHandler> createJdbcValueHandlerMap() {
+ private static Map<String, JdbcValueHandler<?>>
createJdbcValueHandlerMap() {
/*
This Map is used to select the correct JdbcValueHandler
for the specified Java type. The JdbcValueHandler instances are
initialized with the SQL type recommended by Sun/Oracle.
*/
- Map<String, JdbcValueHandler> result = FastMap.newInstance();
+ Map<String, JdbcValueHandler<?>> result = FastMap.newInstance();
// JDBC 1
result.put("byte[]", new
ByteArrayJdbcValueHandler(Types.LONGVARBINARY));
result.put("java.lang.Boolean", new
BooleanJdbcValueHandler(Types.BOOLEAN));
@@ -146,8 +146,8 @@ public abstract class JdbcValueHandler {
* @param sqlType The SQL type specified in fieldtype*.xml
* @return A <code>JdbcValueHandler</code> instance
*/
- public static JdbcValueHandler getInstance(String javaType, String
sqlType) {
- JdbcValueHandler handler = JdbcValueHandlerMap.get(javaType);
+ public static JdbcValueHandler<?> getInstance(String javaType, String
sqlType) {
+ JdbcValueHandler<?> handler = JdbcValueHandlerMap.get(javaType);
if (handler != null) {
String key = parseSqlType(sqlType);
Integer sqlTypeInt = SqlTypeMap.get(key);
@@ -230,9 +230,9 @@ public abstract class JdbcValueHandler {
* @param obj
* @throws SQLException
*/
- protected abstract void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException;
+ protected abstract void castAndSetValue(PreparedStatement ps, int
parameterIndex, T obj) throws SQLException;
- protected JdbcValueHandler create(int sqlType) {
+ protected JdbcValueHandler<T> create(int sqlType) {
if (sqlType == this.getSqlType()) {
return this;
}
@@ -257,7 +257,7 @@ public abstract class JdbcValueHandler {
* @return
* @throws SQLException
*/
- public abstract Object getValue(ResultSet rs, int columnIndex) throws
SQLException;
+ public abstract T getValue(ResultSet rs, int columnIndex) throws
SQLException;
/**
* Returns a new instance of the object - initialized with
@@ -265,7 +265,9 @@ public abstract class JdbcValueHandler {
* @param sqlType
* @return
*/
- protected abstract JdbcValueHandler newInstance(int sqlType);
+ protected abstract JdbcValueHandler<T> newInstance(int sqlType);
+
+ public abstract Class<T> getJavaClass();
/** Sets a value in a <code>PreparedStatement</code>. The
* <code>obj</code> argument is converted to the correct data
@@ -276,7 +278,7 @@ public abstract class JdbcValueHandler {
* @param obj
* @throws SQLException
*/
- public void setValue(PreparedStatement ps, int parameterIndex, Object obj)
throws SQLException {
+ public void setValue(PreparedStatement ps, int parameterIndex, T obj)
throws SQLException {
if (obj == null) {
ps.setNull(parameterIndex, this.getSqlType());
return;
@@ -287,20 +289,24 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.math.BigDecimal</code> JDBC value handler.
*/
- protected static class BigDecimalJdbcValueHandler extends JdbcValueHandler
{
+ protected static class BigDecimalJdbcValueHandler extends
JdbcValueHandler<java.math.BigDecimal> {
protected BigDecimalJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setBigDecimal(parameterIndex, (java.math.BigDecimal) obj);
+ public Class<java.math.BigDecimal> getJavaClass() {
+ return java.math.BigDecimal.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, java.math.BigDecimal obj) throws SQLException {
+ ps.setBigDecimal(parameterIndex, obj);
+ }
+ @Override
+ public java.math.BigDecimal getValue(ResultSet rs, int columnIndex)
throws SQLException {
return rs.getBigDecimal(columnIndex);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<java.math.BigDecimal> newInstance(int
sqlType) {
return new BigDecimalJdbcValueHandler(sqlType);
}
}
@@ -308,11 +314,15 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.sql.Blob</code> JDBC value handler.
*/
- protected static class BlobJdbcValueHandler extends JdbcValueHandler {
+ protected static class BlobJdbcValueHandler extends
JdbcValueHandler<Object> {
protected BlobJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
+ public Class<Object> getJavaClass() {
+ return Object.class;
+ }
+ @Override
protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
try {
// FIXME: This is here for backwards compatibility. Client code
@@ -375,7 +385,7 @@ public abstract class JdbcValueHandler {
return null;
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Object> newInstance(int sqlType) {
return new BlobJdbcValueHandler(sqlType);
}
}
@@ -383,21 +393,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Boolean</code> JDBC value handler.
*/
- protected static class BooleanJdbcValueHandler extends JdbcValueHandler {
+ protected static class BooleanJdbcValueHandler extends
JdbcValueHandler<Boolean> {
protected BooleanJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setBoolean(parameterIndex, (Boolean) obj);
+ public Class<Boolean> getJavaClass() {
+ return Boolean.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Boolean obj) throws SQLException {
+ ps.setBoolean(parameterIndex, obj);
+ }
+ @Override
+ public Boolean getValue(ResultSet rs, int columnIndex) throws
SQLException {
boolean value = rs.getBoolean(columnIndex);
return rs.wasNull() ? null : Boolean.valueOf(value);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Boolean> newInstance(int sqlType) {
return new BooleanJdbcValueHandler(sqlType);
}
}
@@ -405,21 +419,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>byte[]</code> JDBC value handler.
*/
- protected static class ByteArrayJdbcValueHandler extends JdbcValueHandler {
+ protected static class ByteArrayJdbcValueHandler extends
JdbcValueHandler<byte[]> {
protected ByteArrayJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setBytes(parameterIndex, (byte[]) obj);
+ public Class<byte[]> getJavaClass() {
+ return byte[].class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, byte[] obj) throws SQLException {
+ ps.setBytes(parameterIndex, obj);
+ }
+ @Override
+ public byte[] getValue(ResultSet rs, int columnIndex) throws
SQLException {
byte[] value = rs.getBytes(columnIndex);
return rs.wasNull() ? null : value;
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<byte[]> newInstance(int sqlType) {
return new ByteArrayJdbcValueHandler(sqlType);
}
}
@@ -427,11 +445,15 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.sql.Clob</code> JDBC value handler.
*/
- protected static class ClobJdbcValueHandler extends JdbcValueHandler {
+ protected static class ClobJdbcValueHandler extends
JdbcValueHandler<Object> {
protected ClobJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
+ public Class<Object> getJavaClass() {
+ return Object.class;
+ }
+ @Override
protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
try {
// FIXME: This is here for backwards compatibility. Client code
@@ -478,7 +500,7 @@ public abstract class JdbcValueHandler {
}
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Object> newInstance(int sqlType) {
return new ClobJdbcValueHandler(sqlType);
}
}
@@ -486,20 +508,24 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.sql.Date</code> JDBC value handler.
*/
- protected static class DateJdbcValueHandler extends JdbcValueHandler {
+ protected static class DateJdbcValueHandler extends
JdbcValueHandler<java.sql.Date> {
protected DateJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setDate(parameterIndex, (java.sql.Date) obj);
+ public Class<java.sql.Date> getJavaClass() {
+ return java.sql.Date.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, java.sql.Date obj) throws SQLException {
+ ps.setDate(parameterIndex, obj);
+ }
+ @Override
+ public java.sql.Date getValue(ResultSet rs, int columnIndex) throws
SQLException {
return rs.getDate(columnIndex);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<java.sql.Date> newInstance(int sqlType) {
return new DateJdbcValueHandler(sqlType);
}
}
@@ -507,21 +533,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Double</code> JDBC value handler.
*/
- protected static class DoubleJdbcValueHandler extends JdbcValueHandler {
+ protected static class DoubleJdbcValueHandler extends
JdbcValueHandler<Double> {
protected DoubleJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setDouble(parameterIndex, (Double) obj);
+ public Class<Double> getJavaClass() {
+ return Double.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Double obj) throws SQLException {
+ ps.setDouble(parameterIndex, obj);
+ }
+ @Override
+ public Double getValue(ResultSet rs, int columnIndex) throws
SQLException {
double value = rs.getDouble(columnIndex);
return rs.wasNull() ? null : Double.valueOf(value);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Double> newInstance(int sqlType) {
return new DoubleJdbcValueHandler(sqlType);
}
}
@@ -529,21 +559,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Float</code> JDBC value handler.
*/
- protected static class FloatJdbcValueHandler extends JdbcValueHandler {
+ protected static class FloatJdbcValueHandler extends
JdbcValueHandler<Float> {
protected FloatJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setFloat(parameterIndex, (Float) obj);
+ public Class<Float> getJavaClass() {
+ return Float.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Float obj) throws SQLException {
+ ps.setFloat(parameterIndex, obj);
+ }
+ @Override
+ public Float getValue(ResultSet rs, int columnIndex) throws
SQLException {
float value = rs.getFloat(columnIndex);
return rs.wasNull() ? null : Float.valueOf(value);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Float> newInstance(int sqlType) {
return new FloatJdbcValueHandler(sqlType);
}
}
@@ -551,21 +585,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Integer</code> JDBC value handler.
*/
- protected static class IntegerJdbcValueHandler extends JdbcValueHandler {
+ protected static class IntegerJdbcValueHandler extends
JdbcValueHandler<Integer> {
protected IntegerJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setInt(parameterIndex, (Integer) obj);
+ public Class<Integer> getJavaClass() {
+ return Integer.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Integer obj) throws SQLException {
+ ps.setInt(parameterIndex, obj);
+ }
+ @Override
+ public Integer getValue(ResultSet rs, int columnIndex) throws
SQLException {
int value = rs.getInt(columnIndex);
return rs.wasNull() ? null : Integer.valueOf(value);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Integer> newInstance(int sqlType) {
return new IntegerJdbcValueHandler(sqlType);
}
}
@@ -573,21 +611,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Long</code> JDBC value handler.
*/
- protected static class LongJdbcValueHandler extends JdbcValueHandler {
+ protected static class LongJdbcValueHandler extends JdbcValueHandler<Long>
{
protected LongJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setLong(parameterIndex, (Long) obj);
+ public Class<Long> getJavaClass() {
+ return Long.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Long obj) throws SQLException {
+ ps.setLong(parameterIndex, obj);
+ }
+ @Override
+ public Long getValue(ResultSet rs, int columnIndex) throws
SQLException {
long value = rs.getLong(columnIndex);
return rs.wasNull() ? null : Long.valueOf(value);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Long> newInstance(int sqlType) {
return new LongJdbcValueHandler(sqlType);
}
}
@@ -595,11 +637,15 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Object</code> JDBC value handler.
*/
- protected static class ObjectJdbcValueHandler extends JdbcValueHandler {
+ protected static class ObjectJdbcValueHandler extends
JdbcValueHandler<Object> {
protected ObjectJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
+ public Class<Object> getJavaClass() {
+ return Object.class;
+ }
+ @Override
protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
ps.setBytes(parameterIndex, serializeObject(obj));
}
@@ -630,7 +676,7 @@ public abstract class JdbcValueHandler {
}
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Object> newInstance(int sqlType) {
return new ObjectJdbcValueHandler(sqlType);
}
}
@@ -638,21 +684,25 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.Short</code> JDBC value handler.
*/
- protected static class ShortJdbcValueHandler extends JdbcValueHandler {
+ protected static class ShortJdbcValueHandler extends
JdbcValueHandler<Short> {
protected ShortJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setShort(parameterIndex, (Short) obj);
+ public Class<Short> getJavaClass() {
+ return Short.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Short obj) throws SQLException {
+ ps.setShort(parameterIndex, obj);
+ }
+ @Override
+ public Short getValue(ResultSet rs, int columnIndex) throws
SQLException {
short value = rs.getShort(columnIndex);
return rs.wasNull() ? null : Short.valueOf(value);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<Short> newInstance(int sqlType) {
return new ShortJdbcValueHandler(sqlType);
}
}
@@ -660,20 +710,24 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.lang.String</code> JDBC value handler.
*/
- protected static class StringJdbcValueHandler extends JdbcValueHandler {
+ protected static class StringJdbcValueHandler extends
JdbcValueHandler<String> {
protected StringJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setString(parameterIndex, (String) obj);
+ public Class<String> getJavaClass() {
+ return String.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, String obj) throws SQLException {
+ ps.setString(parameterIndex, obj);
+ }
+ @Override
+ public String getValue(ResultSet rs, int columnIndex) throws
SQLException {
return rs.getString(columnIndex);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<String> newInstance(int sqlType) {
return new StringJdbcValueHandler(sqlType);
}
}
@@ -681,20 +735,24 @@ public abstract class JdbcValueHandler {
/**
* A <code>java.sql.Time</code> JDBC value handler.
*/
- protected static class TimeJdbcValueHandler extends JdbcValueHandler {
+ protected static class TimeJdbcValueHandler extends
JdbcValueHandler<java.sql.Time> {
protected TimeJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setTime(parameterIndex, (java.sql.Time) obj);
+ public Class<java.sql.Time> getJavaClass() {
+ return java.sql.Time.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, java.sql.Time obj) throws SQLException {
+ ps.setTime(parameterIndex, obj);
+ }
+ @Override
+ public java.sql.Time getValue(ResultSet rs, int columnIndex) throws
SQLException {
return rs.getTime(columnIndex);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<java.sql.Time> newInstance(int sqlType) {
return new TimeJdbcValueHandler(sqlType);
}
}
@@ -707,26 +765,30 @@ public abstract class JdbcValueHandler {
* will be stored as JDBC timestamp escape format strings
* (<code>yyyy-mm-dd hh:mm:ss.fffffffff</code>), referenced to UTC.</p>
*/
- protected static class TimestampJdbcValueHandler extends JdbcValueHandler {
+ protected static class TimestampJdbcValueHandler extends
JdbcValueHandler<java.sql.Timestamp> {
protected TimestampJdbcValueHandler(int jdbcType) {
super(jdbcType);
}
@Override
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setTimestamp(parameterIndex, (java.sql.Timestamp) obj);
+ public Class<java.sql.Timestamp> getJavaClass() {
+ return java.sql.Timestamp.class;
}
@Override
- public Object getValue(ResultSet rs, int columnIndex) throws
SQLException {
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, java.sql.Timestamp obj) throws SQLException {
+ ps.setTimestamp(parameterIndex, obj);
+ }
+ @Override
+ public java.sql.Timestamp getValue(ResultSet rs, int columnIndex)
throws SQLException {
return rs.getTimestamp(columnIndex);
}
@Override
- protected JdbcValueHandler newInstance(int sqlType) {
+ protected JdbcValueHandler<java.sql.Timestamp> newInstance(int
sqlType) {
if (sqlType == Types.CHAR) {
return new TimestampJdbcValueHandler(sqlType) {
- protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, Object obj) throws SQLException {
- ps.setString(parameterIndex, ((java.sql.Timestamp)
obj).toString());
+ protected void castAndSetValue(PreparedStatement ps, int
parameterIndex, java.sql.Timestamp obj) throws SQLException {
+ ps.setString(parameterIndex, obj.toString());
}
- public Object getValue(ResultSet rs, int columnIndex)
throws SQLException {
+ public java.sql.Timestamp getValue(ResultSet rs, int
columnIndex) throws SQLException {
String str = rs.getString(columnIndex);
if (str == null) {
return null;
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SQLProcessor.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SQLProcessor.java?rev=980643&r1=980642&r2=980643&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SQLProcessor.java
(original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SQLProcessor.java
Fri Jul 30 03:28:15 2010
@@ -533,7 +533,7 @@ public class SQLProcessor {
*
* @throws SQLException
*/
- public void setValue(JdbcValueHandler handler, Object field) throws
SQLException {
+ public <T> void setValue(JdbcValueHandler<T> handler, T field) throws
SQLException {
handler.setValue(_ps, _ind, field);
_ind++;
}
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SqlJdbcUtil.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SqlJdbcUtil.java?rev=980643&r1=980642&r2=980643&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SqlJdbcUtil.java
(original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/SqlJdbcUtil.java Fri
Jul 30 03:28:15 2010
@@ -735,7 +735,7 @@ public class SqlJdbcUtil {
setValue(sqlP, modelField, entity.getEntityName(), fieldValue,
modelFieldTypeReader);
}
- public static void setValue(SQLProcessor sqlP, ModelField modelField,
String entityName, Object fieldValue, ModelFieldTypeReader
modelFieldTypeReader) throws GenericEntityException {
+ public static <T> void setValue(SQLProcessor sqlP, ModelField modelField,
String entityName, Object fieldValue, ModelFieldTypeReader
modelFieldTypeReader) throws GenericEntityException {
ModelFieldType mft =
modelFieldTypeReader.getModelFieldType(modelField.getType());
if (mft == null) {
@@ -750,10 +750,10 @@ public class SqlJdbcUtil {
// ----- Try out the new handler code -----
- JdbcValueHandler handler = mft.getJdbcValueHandler();
+ JdbcValueHandler<T> handler =
UtilGenerics.cast(mft.getJdbcValueHandler());
if (handler != null) {
try {
- sqlP.setValue(handler, fieldValue);
+ sqlP.setValue(handler,
handler.getJavaClass().cast(fieldValue));
return;
} catch (SQLException e) {
throw new GenericDataSourceException("SQL Exception while
setting value on field [" + modelField.getName() + "] of entity " + entityName
+ ": ", e);