You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/09/12 12:28:14 UTC
(commons-beanutils) branch master updated: Do not implement Serializable
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git
The following commit(s) were added to refs/heads/master by this push:
new 0a09d54a Do not implement Serializable
0a09d54a is described below
commit 0a09d54a64e1f5d607f62051ed303dd3e8ce2387
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Sep 12 08:28:08 2024 -0400
Do not implement Serializable
---
.../apache/commons/beanutils2/DynaProperty.java | 107 ---------------------
.../commons/beanutils2/BeanComparatorTestCase.java | 2 +-
.../commons/beanutils2/LazyDynaListTestCase.java | 43 ++-------
.../commons/beanutils2/PropertyUtilsTestCase.java | 28 +++---
.../commons/beanutils2/WrapDynaBeanTestCase.java | 7 +-
.../commons/beanutils2/bugs/Jira273TestCase.java | 12 +--
.../commons/beanutils2/bugs/Jira298TestCase.java | 2 +-
.../expression/DefaultResolverTestCase.java | 4 +-
.../beanutils2/sql/DynaResultSetTestCase.java | 2 +-
.../commons/beanutils2/sql/TestResultSet.java | 67 ++++++-------
.../beanutils2/sql/TestResultSetMetaData.java | 54 +++++++----
11 files changed, 94 insertions(+), 234 deletions(-)
diff --git a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
index 0ad30442..4a375d98 100644
--- a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
+++ b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
@@ -17,10 +17,6 @@
package org.apache.commons.beanutils2;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.StreamCorruptedException;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -214,58 +210,6 @@ public class DynaProperty {
}
- /**
- * Reads a class using safe encoding to workaround Java 1.3 serialization bug.
- */
- private Class<?> readAnyClass(final ObjectInputStream in) throws IOException, ClassNotFoundException {
- // read back type class safely
- if (in.readBoolean()) {
- // it's a type constant
- switch (in.readInt()) {
-
- case BOOLEAN_TYPE: return Boolean.TYPE;
- case BYTE_TYPE: return Byte.TYPE;
- case CHAR_TYPE: return Character.TYPE;
- case DOUBLE_TYPE: return Double.TYPE;
- case FLOAT_TYPE: return Float.TYPE;
- case INT_TYPE: return Integer.TYPE;
- case LONG_TYPE: return Long.TYPE;
- case SHORT_TYPE: return Short.TYPE;
- default:
- // something's gone wrong
- throw new StreamCorruptedException(
- "Invalid primitive type. "
- + "Check version of beanutils used to serialize is compatible.");
-
- }
-
- }
- // it's another class
- return (Class<?>) in.readObject();
- }
-
- /**
- * Deserializes field values for this object safely.
- * There are issues with serializing primitive class types on certain JVM versions
- * (including Java 1.3).
- * This method provides a workaround.
- *
- * @param in {@link ObjectInputStream} to read object from
- * @throws StreamCorruptedException when the stream data values are outside expected range
- * @throws IOException if the input stream can't be read
- * @throws ClassNotFoundException When trying to read an object of class that is not on the classpath
- */
- private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
- this.type = readAnyClass(in);
-
- if (isMapped() || isIndexed()) {
- this.contentType = readAnyClass(in);
- }
-
- // read other values
- in.defaultReadObject();
- }
-
/**
* Gets a String representation of this Object.
* @return a String representation of the dyna property
@@ -283,55 +227,4 @@ public class DynaProperty {
return sb.toString();
}
- /**
- * Write a class using safe encoding to workaround Java 1.3 serialization bug.
- */
- private void writeAnyClass(final Class<?> clazz, final ObjectOutputStream out) throws IOException {
- // safely write out any class
- int primitiveType = 0;
- if (Boolean.TYPE.equals(clazz)) {
- primitiveType = BOOLEAN_TYPE;
- } else if (Byte.TYPE.equals(clazz)) {
- primitiveType = BYTE_TYPE;
- } else if (Character.TYPE.equals(clazz)) {
- primitiveType = CHAR_TYPE;
- } else if (Double.TYPE.equals(clazz)) {
- primitiveType = DOUBLE_TYPE;
- } else if (Float.TYPE.equals(clazz)) {
- primitiveType = FLOAT_TYPE;
- } else if (Integer.TYPE.equals(clazz)) {
- primitiveType = INT_TYPE;
- } else if (Long.TYPE.equals(clazz)) {
- primitiveType = LONG_TYPE;
- } else if (Short.TYPE.equals(clazz)) {
- primitiveType = SHORT_TYPE;
- }
-
- if (primitiveType == 0) {
- // then it's not a primitive type
- out.writeBoolean(false);
- out.writeObject(clazz);
- } else {
- // we'll write out a constant instead
- out.writeBoolean(true);
- out.writeInt(primitiveType);
- }
- }
-
- /**
- * Serializes this object to an ObjectOutputStream.
- *
- * @param out the target ObjectOutputStream.
- * @throws IOException thrown when an I/O errors occur writing to the target stream.
- */
- private void writeObject(final ObjectOutputStream out) throws IOException {
- writeAnyClass(this.type, out);
-
- if (isMapped() || isIndexed()) {
- writeAnyClass(this.contentType, out);
- }
-
- // write out other values
- out.defaultWriteObject();
- }
}
diff --git a/src/test/java/org/apache/commons/beanutils2/BeanComparatorTestCase.java b/src/test/java/org/apache/commons/beanutils2/BeanComparatorTestCase.java
index 0d334b3b..4aff5640 100644
--- a/src/test/java/org/apache/commons/beanutils2/BeanComparatorTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/BeanComparatorTestCase.java
@@ -110,7 +110,7 @@ public class BeanComparatorTestCase {
@Test
public void testCompareOnMissingProperty() {
final BeanComparator<AlphaBean, String> beanComparator = new BeanComparator<>("bogusName");
- Exception e = assertThrows(RuntimeException.class, () -> beanComparator.compare(alphaBean2, alphaBean1));
+ final Exception e = assertThrows(RuntimeException.class, () -> beanComparator.compare(alphaBean2, alphaBean1));
assertTrue(e.toString().contains("Unknown property"), () -> "Wrong exception was thrown: " + e);
}
diff --git a/src/test/java/org/apache/commons/beanutils2/LazyDynaListTestCase.java b/src/test/java/org/apache/commons/beanutils2/LazyDynaListTestCase.java
index 44d22408..7d1e5535 100644
--- a/src/test/java/org/apache/commons/beanutils2/LazyDynaListTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/LazyDynaListTestCase.java
@@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.NotSerializableException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
@@ -38,9 +39,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
- * <p>
- * Test Case for the {@code LazyDynaList}class.
- * </p>
+ * Tests {@link LazyDynaList}.
*/
public class LazyDynaListTestCase {
@@ -419,13 +418,7 @@ public class LazyDynaListTestCase {
assertEquals("value1", bean.get(BASIC_PROP1), "post-set check");
// Serialize/Deserialize
- final LazyDynaList result = (LazyDynaList) serializeDeserialize(target, "DynaBean");
- target = null;
- bean = null;
-
- // Confirm property value
- bean = (BasicDynaBean) result.get(0);
- assertEquals("value1", bean.get(BASIC_PROP1), "post-serialize check");
+ assertThrows(NotSerializableException.class, () -> serializeDeserialize(target, "DynaBean"));
}
@@ -445,13 +438,7 @@ public class LazyDynaListTestCase {
assertEquals("value1", bean.get(BASIC_PROP1), "post-set check");
// Serialize/Deserialize
- final LazyDynaList result = (LazyDynaList) serializeDeserialize(target, "DynaBean");
- target = null;
- bean = null;
-
- // Confirm property value
- bean = (LazyDynaBean) result.get(0);
- assertEquals("value1", bean.get(BASIC_PROP1), "post-serialize check");
+ assertThrows(NotSerializableException.class, () -> serializeDeserialize(target, "DynaBean"));
}
@@ -471,14 +458,7 @@ public class LazyDynaListTestCase {
assertEquals("value1", bean.get(BASIC_PROP1), "post-set check");
// Serialize/Deserialize
- final LazyDynaList result = (LazyDynaList) serializeDeserialize(target, "Map");
- target = null;
- bean = null;
-
- // Confirm property value
- bean = (LazyDynaMap) result.get(0);
- assertEquals("value1", bean.get(BASIC_PROP1), "post-serialize check");
-
+ assertThrows(NotSerializableException.class, () -> serializeDeserialize(target, "Map"));
}
/**
@@ -486,7 +466,6 @@ public class LazyDynaListTestCase {
*/
@Test
public void testSerializationPojo() throws Exception {
-
// Create LazyArrayList for DynaBeans
LazyDynaList target = new LazyDynaList(pojoDynaClass);
WrapDynaBean bean = (WrapDynaBean) target.get(0);
@@ -497,17 +476,7 @@ public class LazyDynaListTestCase {
assertEquals("value1", bean.get("stringProperty"), "post-set check");
// Serialize/Deserialize
- final LazyDynaList result = (LazyDynaList) serializeDeserialize(target, "POJO");
- target = null;
- bean = null;
-
- // Test BEANUTILS-300
- result.add(null);
-
- // Confirm property value
- bean = (WrapDynaBean) result.get(0);
- assertEquals("value1", bean.get("stringProperty"), "post-serialize check");
-
+ assertThrows(NotSerializableException.class, () -> serializeDeserialize(target, "POJO"));
}
/**
diff --git a/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java
index 7aad797a..28869a98 100644
--- a/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java
@@ -1109,14 +1109,15 @@ public class PropertyUtilsTestCase {
for (final String propertie : properties) {
// Identify the property descriptor for this property
- if (propertie.equals("intIndexed")) {
+ switch (propertie) {
+ case "intIndexed":
continue;
- }
- if (propertie.equals("stringIndexed")) {
+ case "stringIndexed":
continue;
- }
- if (propertie.equals("writeOnlyProperty")) {
+ case "writeOnlyProperty":
continue;
+ default:
+ break;
}
int n = -1;
for (int j = 0; j < pd.length; j++) {
@@ -1369,20 +1370,19 @@ public class PropertyUtilsTestCase {
for (final String property : properties) {
// Identify the property descriptor for this property
- if (property.equals("intIndexed")) {
+ switch (property) {
+ case "intIndexed":
continue;
- }
- if (property.equals("listIndexed")) {
+ case "listIndexed":
continue;
- }
- if (property.equals("nested")) {
+ case "nested":
continue; // This property is read only
- }
- if (property.equals("readOnlyProperty")) {
+ case "readOnlyProperty":
continue;
- }
- if (property.equals("stringIndexed")) {
+ case "stringIndexed":
continue;
+ default:
+ break;
}
int n = -1;
for (int j = 0; j < pd.length; j++) {
diff --git a/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java b/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java
index 6c0d35cd..a15f8c52 100644
--- a/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java
@@ -26,6 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.NotSerializableException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -225,18 +226,14 @@ public class WrapDynaBeanTestCase extends BasicDynaBeanTestCase {
@Override
@Test
public void testNotSerializableException() throws Exception {
-
// Create a bean and set a value
final WrapDynaBean origBean = new WrapDynaBean(new TestBean());
final Integer newValue = Integer.valueOf(789);
assertEquals(Integer.valueOf(123), origBean.get("intProperty"), "origBean default");
origBean.set("intProperty", newValue);
assertEquals(newValue, origBean.get("intProperty"), "origBean new value");
-
// Serialize/Deserialize & test value
- final WrapDynaBean bean = (WrapDynaBean) serializeDeserialize(origBean, "First Test");
- assertEquals(newValue, bean.get("intProperty"), "bean value");
-
+ assertThrows(NotSerializableException.class, () -> serializeDeserialize(origBean, "First Test"));
}
/**
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java
index 167814a2..fc26533c 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java
@@ -59,7 +59,7 @@ public class Jira273TestCase {
@Test
public void testIssue_BEANUTILS_273_AnonymousNotOverridden() throws Exception {
final Object bean = Jira273BeanFactory.createAnonymousNotOverridden();
- Object result = PropertyUtils.getProperty(bean, "beanValue");
+ final Object result = PropertyUtils.getProperty(bean, "beanValue");
assertEquals("PublicBeanWithMethod", result);
}
@@ -69,7 +69,7 @@ public class Jira273TestCase {
@Test
public void testIssue_BEANUTILS_273_AnonymousOverridden() throws Exception {
final Object bean = Jira273BeanFactory.createAnonymousOverridden();
- Object result = PropertyUtils.getProperty(bean, "beanValue");
+ final Object result = PropertyUtils.getProperty(bean, "beanValue");
assertEquals("AnonymousOverridden", result);
}
@@ -79,7 +79,7 @@ public class Jira273TestCase {
@Test
public void testIssue_BEANUTILS_273_PrivatePrivatePublicNotOverridden() throws Exception {
final Object bean = Jira273BeanFactory.createPrivatePrivatePublicNotOverridden();
- Object result = PropertyUtils.getProperty(bean, "beanValue");
+ final Object result = PropertyUtils.getProperty(bean, "beanValue");
assertEquals("PublicBeanWithMethod", result);
}
@@ -89,7 +89,7 @@ public class Jira273TestCase {
@Test
public void testIssue_BEANUTILS_273_PrivatePrivatePublicOverridden() throws Exception {
final Object bean = Jira273BeanFactory.createPrivatePrivatePublicOverridden();
- Object result = PropertyUtils.getProperty(bean, "beanValue");
+ final Object result = PropertyUtils.getProperty(bean, "beanValue");
assertEquals("PrivatePrivatePublicOverridden", result);
}
@@ -99,7 +99,7 @@ public class Jira273TestCase {
@Test
public void testIssue_BEANUTILS_273_PrivatePublicNotOverridden() throws Exception {
final Object bean = Jira273BeanFactory.createPrivatePublicNotOverridden();
- Object result = PropertyUtils.getProperty(bean, "beanValue");
+ final Object result = PropertyUtils.getProperty(bean, "beanValue");
assertEquals("PublicBeanWithMethod", result);
}
@@ -109,7 +109,7 @@ public class Jira273TestCase {
@Test
public void testIssue_BEANUTILS_273_PrivatePublicOverridden() throws Exception {
final Object bean = Jira273BeanFactory.createPrivatePublicOverridden();
- Object result = PropertyUtils.getProperty(bean, "beanValue");
+ final Object result = PropertyUtils.getProperty(bean, "beanValue");
assertEquals("PrivatePublicOverridden", result);
}
}
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java
index 804bf737..13e188e2 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java
@@ -73,7 +73,7 @@ public class Jira298TestCase {
@Test
public void testIssue_BEANUTILS_298_PropertyUtils_getProperty() throws Exception {
final Object bean = Jira298BeanFactory.createImplX();
- Object result = PropertyUtils.getProperty(bean, "name");
+ final Object result = PropertyUtils.getProperty(bean, "name");
assertEquals("BaseX name value", result);
}
diff --git a/src/test/java/org/apache/commons/beanutils2/expression/DefaultResolverTestCase.java b/src/test/java/org/apache/commons/beanutils2/expression/DefaultResolverTestCase.java
index a264927a..95245e31 100644
--- a/src/test/java/org/apache/commons/beanutils2/expression/DefaultResolverTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/expression/DefaultResolverTestCase.java
@@ -103,7 +103,7 @@ public class DefaultResolverTestCase {
// Non-numeric
label = "Malformed";
- IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> resolver.getIndex("foo[BAR]"));
+ final IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> resolver.getIndex("foo[BAR]"));
assertEquals("Invalid index value 'BAR'", e.getMessage(), label + " Error Message");
}
@@ -134,7 +134,7 @@ public class DefaultResolverTestCase {
// Malformed
label = "Malformed";
- IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> resolver.getKey("foo(bar"));
+ final IllegalArgumentException e = assertThrows(IllegalArgumentException.class, () -> resolver.getKey("foo(bar"));
assertEquals("Missing End Delimiter", e.getMessage(), label + " Error Message");
}
diff --git a/src/test/java/org/apache/commons/beanutils2/sql/DynaResultSetTestCase.java b/src/test/java/org/apache/commons/beanutils2/sql/DynaResultSetTestCase.java
index 90ef6f78..120b1b0e 100644
--- a/src/test/java/org/apache/commons/beanutils2/sql/DynaResultSetTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/sql/DynaResultSetTestCase.java
@@ -150,7 +150,7 @@ public class DynaResultSetTestCase {
*/
@Test
public void testIteratorResultsNormalCase() throws Exception {
- ResultSetDynaClass dynaClass = new ResultSetDynaClass(TestResultSet.createProxy(), false);
+ final ResultSetDynaClass dynaClass = new ResultSetDynaClass(TestResultSet.createProxy(), false);
// Grab the third row
final Iterator<DynaBean> rows = dynaClass.iterator();
diff --git a/src/test/java/org/apache/commons/beanutils2/sql/TestResultSet.java b/src/test/java/org/apache/commons/beanutils2/sql/TestResultSet.java
index f6127a52..b23fcd05 100644
--- a/src/test/java/org/apache/commons/beanutils2/sql/TestResultSet.java
+++ b/src/test/java/org/apache/commons/beanutils2/sql/TestResultSet.java
@@ -314,47 +314,38 @@ public class TestResultSet implements InvocationHandler {
if (row > 5) {
throw new SQLException("No current row");
}
- if ("bigDecimalProperty".equals(columnName)) {
+ switch (columnName) {
+ case "bigDecimalProperty":
return new BigDecimal(123.45);
- }
- if ("booleanProperty".equals(columnName)) {
+ case "booleanProperty":
if (row % 2 == 0) {
return Boolean.TRUE;
}
return Boolean.FALSE;
- }
- if ("byteProperty".equals(columnName)) {
+ case "byteProperty":
return Byte.valueOf((byte) row);
- }
- if ("dateProperty".equals(columnName)) {
+ case "dateProperty":
return new Date(timestampMillis);
- }
- if ("doubleProperty".equals(columnName)) {
+ case "doubleProperty":
return Double.valueOf(321.0);
- }
- if ("floatProperty".equals(columnName)) {
+ case "floatProperty":
return Float.valueOf((float) 123.0);
- }
- if ("intProperty".equals(columnName)) {
+ case "intProperty":
return Integer.valueOf(100 + row);
- }
- if ("longProperty".equals(columnName)) {
+ case "longProperty":
return Long.valueOf(200 + row);
- }
- if ("nullProperty".equals(columnName)) {
+ case "nullProperty":
return null;
- }
- if ("shortProperty".equals(columnName)) {
+ case "shortProperty":
return Short.valueOf((short) (300 + row));
- }
- if ("stringProperty".equals(columnName)) {
+ case "stringProperty":
return "This is a string";
- }
- if ("timeProperty".equals(columnName)) {
+ case "timeProperty":
return new Time(timestampMillis);
- }
- if ("timestampProperty".equals(columnName)) {
+ case "timestampProperty":
return new Timestamp(timestampMillis);
+ default:
+ break;
}
throw new SQLException("Unknown column name " + columnName);
}
@@ -471,30 +462,26 @@ public class TestResultSet implements InvocationHandler {
@Override
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
final String methodName = method.getName();
- if ("close".equals(methodName)) {
+ switch (methodName) {
+ case "close":
return null;
- }
- if ("getMetaData".equals(methodName)) {
+ case "getMetaData":
return getMetaData();
- }
- if ("getObject".equals(methodName)) {
+ case "getObject":
return getObject(columnName(args[0]));
- }
- if ("getDate".equals(methodName)) {
+ case "getDate":
return getDate(columnName(args[0]));
- }
- if ("getTime".equals(methodName)) {
+ case "getTime":
return getTime(columnName(args[0]));
- }
- if ("getTimestamp".equals(methodName)) {
+ case "getTimestamp":
return getTimestamp(columnName(args[0]));
- }
- if ("next".equals(methodName)) {
+ case "next":
return next() ? Boolean.TRUE : Boolean.FALSE;
- }
- if ("updateObject".equals(methodName)) {
+ case "updateObject":
updateObject((String) args[0], args[1]);
return null;
+ default:
+ break;
}
throw new UnsupportedOperationException(methodName + " not implemented");
diff --git a/src/test/java/org/apache/commons/beanutils2/sql/TestResultSetMetaData.java b/src/test/java/org/apache/commons/beanutils2/sql/TestResultSetMetaData.java
index 26609f25..bd868b20 100644
--- a/src/test/java/org/apache/commons/beanutils2/sql/TestResultSetMetaData.java
+++ b/src/test/java/org/apache/commons/beanutils2/sql/TestResultSetMetaData.java
@@ -91,35 +91,49 @@ public class TestResultSetMetaData implements InvocationHandler {
public Integer getColumnType(final int columnIndex) throws SQLException {
final String columnName = getColumnName(columnIndex);
int sqlType = Types.OTHER;
- if (columnName.equals("bigDecimalProperty")) {
+ switch (columnName) {
+ case "bigDecimalProperty":
sqlType = Types.DECIMAL;
// Types.BOOLEAN only introduced in JDK 1.4
// } else if (columnName.equals("booleanProperty")) {
// sqlType = Types.BOOLEAN;
- } else if (columnName.equals("byteProperty")) {
+ break;
+ case "byteProperty":
sqlType = Types.TINYINT;
- } else if (columnName.equals("dateProperty")) {
+ break;
+ case "dateProperty":
sqlType = Types.DATE;
- } else if (columnName.equals("doubleProperty")) {
+ break;
+ case "doubleProperty":
sqlType = Types.DOUBLE;
- } else if (columnName.equals("floatProperty")) {
+ break;
+ case "floatProperty":
sqlType = Types.FLOAT;
- } else if (columnName.equals("intProperty")) {
+ break;
+ case "intProperty":
sqlType = Types.INTEGER;
- } else if (columnName.equals("longProperty")) {
+ break;
+ case "longProperty":
sqlType = Types.BIGINT;
- } else if (columnName.equals("nullProperty")) {
+ break;
+ case "nullProperty":
sqlType = Types.VARCHAR;
- } else if (columnName.equals("shortProperty")) {
+ break;
+ case "shortProperty":
sqlType = Types.SMALLINT;
- } else if (columnName.equals("stringProperty")) {
+ break;
+ case "stringProperty":
sqlType = Types.VARCHAR;
- } else if (columnName.equals("timeProperty")) {
+ break;
+ case "timeProperty":
sqlType = Types.TIME;
- } else if (columnName.equals("timestampProperty")) {
+ break;
+ case "timestampProperty":
sqlType = Types.TIMESTAMP;
- } else {
+ break;
+ default:
sqlType = Types.OTHER;
+ break;
}
return Integer.valueOf(sqlType);
}
@@ -156,17 +170,17 @@ public class TestResultSetMetaData implements InvocationHandler {
@Override
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
final String methodName = method.getName();
- if ("getColumnClassName".equals(methodName)) {
+ switch (methodName) {
+ case "getColumnClassName":
return getColumnClassName(((Integer) args[0]).intValue());
- }
- if ("getColumnCount".equals(methodName)) {
+ case "getColumnCount":
return Integer.valueOf(getColumnCount());
- }
- if ("getColumnName".equals(methodName)) {
+ case "getColumnName":
return getColumnName(((Integer) args[0]).intValue());
- }
- if ("getColumnType".equals(methodName)) {
+ case "getColumnType":
return getColumnType(((Integer) args[0]).intValue());
+ default:
+ break;
}
throw new UnsupportedOperationException(methodName + " not implemented");