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 dba069b No need to nest in else. dba069b is described below commit dba069be63a33be51ae071baccafd965792cd84b Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu Mar 4 18:29:38 2021 -0500 No need to nest in else. --- .../apache/commons/beanutils2/BasicDynaBean.java | 76 ++++++++------- .../apache/commons/beanutils2/BeanComparator.java | 9 +- .../BeanPropertyValueChangeConsumer.java | 14 ++- .../BeanPropertyValueEqualsPredicate.java | 14 ++- .../beanutils2/BeanToPropertyValueTransformer.java | 12 +-- .../apache/commons/beanutils2/BeanUtilsBean.java | 31 +++--- .../apache/commons/beanutils2/ConvertUtils.java | 24 +++-- .../commons/beanutils2/ConvertUtilsBean.java | 22 ++--- .../apache/commons/beanutils2/DynaProperty.java | 6 +- .../apache/commons/beanutils2/LazyDynaBean.java | 39 ++++---- .../org/apache/commons/beanutils2/MethodUtils.java | 57 ++++++----- .../commons/beanutils2/PropertyUtilsBean.java | 106 +++++++++++---------- .../apache/commons/beanutils2/WeakFastHashMap.java | 3 +- .../beanutils2/converters/AbstractConverter.java | 16 ++-- .../beanutils2/converters/NumberConverter.java | 9 +- .../beanutils2/expression/DefaultResolver.java | 12 ++- .../commons/beanutils2/DynaRowSetTestCase.java | 6 +- .../commons/beanutils2/PropertyUtilsTestCase.java | 5 +- .../apache/commons/beanutils2/TestResultSet.java | 39 +++++--- 19 files changed, 271 insertions(+), 229 deletions(-) diff --git a/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java b/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java index 2ba7ec3..6ec11c6 100644 --- a/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java +++ b/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java @@ -120,12 +120,12 @@ public class BasicDynaBean implements DynaBean, Serializable { if (value == null) { throw new NullPointerException ("No mapped value for '" + name + "(" + key + ")'"); - } else if (value instanceof Map) { + } + if (value instanceof Map) { return ((Map<?, ?>) value).containsKey(key); - } else { - throw new IllegalArgumentException - ("Non-mapped property for '" + name + "(" + key + ")'"); } + throw new IllegalArgumentException + ("Non-mapped property for '" + name + "(" + key + ")'"); } @@ -156,23 +156,29 @@ public class BasicDynaBean implements DynaBean, Serializable { // Manufacture default values for primitive properties if (type == Boolean.TYPE) { return Boolean.FALSE; - } else if (type == Byte.TYPE) { + } + if (type == Byte.TYPE) { return BYTE_ZERO; - } else if (type == Character.TYPE) { + } + if (type == Character.TYPE) { return CHARACTER_ZERO; - } else if (type == Double.TYPE) { + } + if (type == Double.TYPE) { return DOUBLE_ZERO; - } else if (type == Float.TYPE) { + } + if (type == Float.TYPE) { return FLOAT_ZERO; - } else if (type == Integer.TYPE) { + } + if (type == Integer.TYPE) { return INTEGER_ZERO; - } else if (type == Long.TYPE) { + } + if (type == Long.TYPE) { return LONG_ZERO; - } else if (type == Short.TYPE) { + } + if (type == Short.TYPE) { return SHORT_ZERO; - } else { - return null; } + return null; } @@ -199,14 +205,15 @@ public class BasicDynaBean implements DynaBean, Serializable { if (value == null) { throw new NullPointerException ("No indexed value for '" + name + "[" + index + "]'"); - } else if (value.getClass().isArray()) { + } + if (value.getClass().isArray()) { return Array.get(value, index); - } else if (value instanceof List) { + } + if (value instanceof List) { return ((List<?>) value).get(index); - } else { - throw new IllegalArgumentException - ("Non-indexed property for '" + name + "[" + index + "]'"); } + throw new IllegalArgumentException + ("Non-indexed property for '" + name + "[" + index + "]'"); } @@ -230,12 +237,12 @@ public class BasicDynaBean implements DynaBean, Serializable { if (value == null) { throw new NullPointerException ("No mapped value for '" + name + "(" + key + ")'"); - } else if (value instanceof Map) { + } + if (value instanceof Map) { return ((Map<?, ?>) value).get(key); - } else { - throw new IllegalArgumentException - ("Non-mapped property for '" + name + "(" + key + ")'"); } + throw new IllegalArgumentException + ("Non-mapped property for '" + name + "(" + key + ")'"); } @@ -270,12 +277,12 @@ public class BasicDynaBean implements DynaBean, Serializable { if (value == null) { throw new NullPointerException ("No mapped value for '" + name + "(" + key + ")'"); - } else if (value instanceof Map) { - ((Map<?, ?>) value).remove(key); - } else { + } + if (!(value instanceof Map)) { throw new IllegalArgumentException ("Non-mapped property for '" + name + "(" + key + ")'"); } + ((Map<?, ?>) value).remove(key); } @@ -335,7 +342,8 @@ public class BasicDynaBean implements DynaBean, Serializable { if (prop == null) { throw new NullPointerException ("No indexed value for '" + name + "[" + index + "]'"); - } else if (prop.getClass().isArray()) { + } + if (prop.getClass().isArray()) { Array.set(prop, index, value); } else if (prop instanceof List) { try { @@ -376,17 +384,17 @@ public class BasicDynaBean implements DynaBean, Serializable { if (prop == null) { throw new NullPointerException ("No mapped value for '" + name + "(" + key + ")'"); - } else if (prop instanceof Map) { - @SuppressWarnings("unchecked") - final - // This is safe to cast because mapped properties are always - // maps of types String -> Object - Map<String, Object> map = (Map<String, Object>) prop; - map.put(key, value); - } else { + } + if (!(prop instanceof Map)) { throw new IllegalArgumentException ("Non-mapped property for '" + name + "(" + key + ")'"); } + @SuppressWarnings("unchecked") + final + // This is safe to cast because mapped properties are always + // maps of types String -> Object + Map<String, Object> map = (Map<String, Object>) prop; + map.put(key, value); } diff --git a/src/main/java/org/apache/commons/beanutils2/BeanComparator.java b/src/main/java/org/apache/commons/beanutils2/BeanComparator.java index 70a21b4..14b4b3f 100644 --- a/src/main/java/org/apache/commons/beanutils2/BeanComparator.java +++ b/src/main/java/org/apache/commons/beanutils2/BeanComparator.java @@ -171,13 +171,12 @@ public class BeanComparator<T, V> implements Comparator<T>, Serializable { if (!comparator.equals(beanComparator.comparator)) { return false; } - if (property != null) { - if (!property.equals(beanComparator.property)) { - return false; - } - } else { + if (property == null) { return beanComparator.property == null; } + if (!property.equals(beanComparator.property)) { + return false; + } return true; } diff --git a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java index 4a63373..7fa6a40 100644 --- a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java +++ b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java @@ -135,13 +135,12 @@ public class BeanPropertyValueChangeConsumer<T, V> implements Consumer<T> { * @throws IllegalArgumentException If the propertyName provided is null or empty. */ public BeanPropertyValueChangeConsumer(final String propertyName, final V propertyValue, final boolean ignoreNull) { - if (propertyName != null && !propertyName.isEmpty()) { - this.propertyName = propertyName; - this.propertyValue = propertyValue; - this.ignoreNull = ignoreNull; - } else { + if (propertyName == null || propertyName.isEmpty()) { throw new IllegalArgumentException("propertyName cannot be null or empty"); } + this.propertyName = propertyName; + this.propertyValue = propertyValue; + this.ignoreNull = ignoreNull; } /** @@ -166,15 +165,14 @@ public class BeanPropertyValueChangeConsumer<T, V> implements Consumer<T> { } catch (final IllegalArgumentException e) { final String errorMsg = "Unable to execute Closure. Null value encountered in property path..."; - if (ignoreNull) { - log.warn(errorMsg, e); - } else { + if (!ignoreNull) { final IllegalArgumentException iae = new IllegalArgumentException(errorMsg); if (!BeanUtils.initCause(iae, e)) { log.error(errorMsg, e); } throw iae; } + log.warn(errorMsg, e); } catch (final IllegalAccessException e) { final String errorMsg = "Unable to access the property provided."; final IllegalArgumentException iae = new IllegalArgumentException(errorMsg); diff --git a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java index d84d01e..8f03bde 100644 --- a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java +++ b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java @@ -166,13 +166,12 @@ public class BeanPropertyValueEqualsPredicate<T, V> implements Predicate<T> { */ public BeanPropertyValueEqualsPredicate(final String propertyName, final V propertyValue, final boolean ignoreNull) { - if (propertyName != null && !propertyName.isEmpty()) { - this.propertyName = propertyName; - this.propertyValue = propertyValue; - this.ignoreNull = ignoreNull; - } else { + if (propertyName == null || propertyName.isEmpty()) { throw new IllegalArgumentException("propertyName cannot be null or empty"); } + this.propertyName = propertyName; + this.propertyValue = propertyValue; + this.ignoreNull = ignoreNull; } /** @@ -204,15 +203,14 @@ public class BeanPropertyValueEqualsPredicate<T, V> implements Predicate<T> { } catch (final IllegalArgumentException e) { final String errorMsg = "Problem during evaluation. Null value encountered in property path..."; - if (ignoreNull) { - log.warn(errorMsg, e); - } else { + if (!ignoreNull) { final IllegalArgumentException iae = new IllegalArgumentException(errorMsg); if (!BeanUtils.initCause(iae, e)) { log.error(errorMsg, e); } throw iae; } + log.warn(errorMsg, e); } catch (final IllegalAccessException e) { final String errorMsg = "Unable to access the property provided."; final IllegalArgumentException iae = new IllegalArgumentException(errorMsg); diff --git a/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java b/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java index e531b05..4ed4b2f 100644 --- a/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java +++ b/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java @@ -120,13 +120,12 @@ public class BeanToPropertyValueTransformer<T, R> implements Function<T, R> { * empty. */ public BeanToPropertyValueTransformer(final String propertyName, final boolean ignoreNull) { - if (propertyName != null && !propertyName.isEmpty()) { - this.propertyName = propertyName; - this.ignoreNull = ignoreNull; - } else { + if (propertyName == null || propertyName.isEmpty()) { throw new IllegalArgumentException( "propertyName cannot be null or empty"); } + this.propertyName = propertyName; + this.ignoreNull = ignoreNull; } /** @@ -155,15 +154,14 @@ public class BeanToPropertyValueTransformer<T, R> implements Function<T, R> { } catch (final IllegalArgumentException e) { final String errorMsg = "Problem during transformation. Null value encountered in property path..."; - if (ignoreNull) { - log.warn(errorMsg, e); - } else { + if (!ignoreNull) { final IllegalArgumentException iae = new IllegalArgumentException(errorMsg); if (!BeanUtils.initCause(iae, e)) { log.error(errorMsg, e); } throw iae; } + log.warn(errorMsg, e); } catch (final IllegalAccessException e) { final String errorMsg = "Unable to access the property provided."; final IllegalArgumentException iae = new IllegalArgumentException(errorMsg); diff --git a/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java index 815b531..4a571a6 100644 --- a/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java +++ b/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java @@ -532,7 +532,8 @@ public class BeanUtilsBean { final Object value = getPropertyUtils().getProperty(bean, name); if (value == null) { return null; - } else if (value instanceof Collection) { + } + if (value instanceof Collection) { final ArrayList<String> values = new ArrayList<>(); for (final Object item : (Collection<?>) value) { if (item == null) { @@ -543,24 +544,24 @@ public class BeanUtilsBean { } } return values.toArray(new String[values.size()]); - } else if (value.getClass().isArray()) { - final int n = Array.getLength(value); - final String[] results = new String[n]; - for (int i = 0; i < n; i++) { - final Object item = Array.get(value, i); - if (item == null) { - results[i] = null; - } else { - // convert to string using convert utils - results[i] = getConvertUtils().convert(item); - } - } - return results; - } else { + } + if (!value.getClass().isArray()) { final String[] results = new String[1]; results[0] = getConvertUtils().convert(value); return results; } + final int n = Array.getLength(value); + final String[] results = new String[n]; + for (int i = 0; i < n; i++) { + final Object item = Array.get(value, i); + if (item == null) { + results[i] = null; + } else { + // convert to string using convert utils + results[i] = getConvertUtils().convert(item); + } + } + return results; } diff --git a/src/main/java/org/apache/commons/beanutils2/ConvertUtils.java b/src/main/java/org/apache/commons/beanutils2/ConvertUtils.java index 07ccede..51817c2 100644 --- a/src/main/java/org/apache/commons/beanutils2/ConvertUtils.java +++ b/src/main/java/org/apache/commons/beanutils2/ConvertUtils.java @@ -191,22 +191,28 @@ public class ConvertUtils { if (type == Integer.TYPE) { return (Class<T>) Integer.class; - } else if (type == Double.TYPE) { + } + if (type == Double.TYPE) { return (Class<T>) Double.class; - } else if (type == Long.TYPE) { + } + if (type == Long.TYPE) { return (Class<T>) Long.class; - } else if (type == Boolean.TYPE) { + } + if (type == Boolean.TYPE) { return (Class<T>) Boolean.class; - } else if (type == Float.TYPE) { + } + if (type == Float.TYPE) { return (Class<T>) Float.class; - } else if (type == Short.TYPE) { + } + if (type == Short.TYPE) { return (Class<T>) Short.class; - } else if (type == Byte.TYPE) { + } + if (type == Byte.TYPE) { return (Class<T>) Byte.class; - } else if (type == Character.TYPE) { + } + if (type == Character.TYPE) { return (Class<T>) Character.class; - } else { - return type; } + return type; } } diff --git a/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java index 7a551b8..19a5463 100644 --- a/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java +++ b/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java @@ -224,20 +224,20 @@ public class ConvertUtilsBean { if (value == null) { return null; - } else if (value.getClass().isArray()) { - if (Array.getLength(value) < 1) { - return null; - } - value = Array.get(value, 0); - if (value == null) { - return null; - } - final Converter converter = lookup(String.class); - return converter.convert(String.class, value); - } else { + } + if (!value.getClass().isArray()) { final Converter converter = lookup(String.class); return converter.convert(String.class, value); } + if (Array.getLength(value) < 1) { + return null; + } + value = Array.get(value, 0); + if (value == null) { + return null; + } + final Converter converter = lookup(String.class); + return converter.convert(String.class, value); } diff --git a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java index 6291b88..f8e9b8b 100644 --- a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java +++ b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java @@ -168,11 +168,11 @@ public class DynaProperty implements Serializable { if (type == null) { return false; - } else if (type.isArray() || List.class.isAssignableFrom(type)) { + } + if (type.isArray() || List.class.isAssignableFrom(type)) { return true; - } else { - return false; } + return false; } diff --git a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java index fbc612e..04fb9bd 100644 --- a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java +++ b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java @@ -367,13 +367,13 @@ public class LazyDynaBean implements DynaBean, Serializable { // Return the indexed value if (indexedProperty.getClass().isArray()) { return Array.get(indexedProperty, index); - } else if (indexedProperty instanceof List) { + } + if (indexedProperty instanceof List) { return ((List<?>)indexedProperty).get(index); - } else { - throw new IllegalArgumentException - ("Non-indexed property for '" + name + "[" + index + "]' " - + indexedProperty.getClass().getName()); } + throw new IllegalArgumentException + ("Non-indexed property for '" + name + "[" + index + "]' " + + indexedProperty.getClass().getName()); } @@ -452,13 +452,12 @@ public class LazyDynaBean implements DynaBean, Serializable { return; } - if (value instanceof Map) { - ((Map<?, ?>) value).remove(key); - } else { + if (!(value instanceof Map)) { throw new IllegalArgumentException ("Non-mapped property for '" + name + "(" + key + ")'" + value.getClass().getName()); } + ((Map<?, ?>) value).remove(key); } @@ -800,23 +799,29 @@ public class LazyDynaBean implements DynaBean, Serializable { if (type == Boolean.TYPE) { return Boolean.FALSE; - } else if (type == Integer.TYPE) { + } + if (type == Integer.TYPE) { return Integer_ZERO; - } else if (type == Long.TYPE) { + } + if (type == Long.TYPE) { return Long_ZERO; - } else if (type == Double.TYPE) { + } + if (type == Double.TYPE) { return Double_ZERO; - } else if (type == Float.TYPE) { + } + if (type == Float.TYPE) { return Float_ZERO; - } else if (type == Byte.TYPE) { + } + if (type == Byte.TYPE) { return Byte_ZERO; - } else if (type == Short.TYPE) { + } + if (type == Short.TYPE) { return Short_ZERO; - } else if (type == Character.TYPE) { + } + if (type == Character.TYPE) { return Character_SPACE; - } else { - return null; } + return null; } diff --git a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java index 838884a..55c2f52 100644 --- a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java +++ b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java @@ -1174,24 +1174,29 @@ public class MethodUtils { // does anyone know a better strategy than comparing names? if (boolean.class.equals(primitiveType)) { return Boolean.class; - } else if (float.class.equals(primitiveType)) { + } + if (float.class.equals(primitiveType)) { return Float.class; - } else if (long.class.equals(primitiveType)) { + } + if (long.class.equals(primitiveType)) { return Long.class; - } else if (int.class.equals(primitiveType)) { + } + if (int.class.equals(primitiveType)) { return Integer.class; - } else if (short.class.equals(primitiveType)) { + } + if (short.class.equals(primitiveType)) { return Short.class; - } else if (byte.class.equals(primitiveType)) { + } + if (byte.class.equals(primitiveType)) { return Byte.class; - } else if (double.class.equals(primitiveType)) { + } + if (double.class.equals(primitiveType)) { return Double.class; - } else if (char.class.equals(primitiveType)) { + } + if (char.class.equals(primitiveType)) { return Character.class; - } else { - - return null; } + return null; } /** @@ -1205,27 +1210,33 @@ public class MethodUtils { // does anyone know a better strategy than comparing names? if (Boolean.class.equals(wrapperType)) { return boolean.class; - } else if (Float.class.equals(wrapperType)) { + } + if (Float.class.equals(wrapperType)) { return float.class; - } else if (Long.class.equals(wrapperType)) { + } + if (Long.class.equals(wrapperType)) { return long.class; - } else if (Integer.class.equals(wrapperType)) { + } + if (Integer.class.equals(wrapperType)) { return int.class; - } else if (Short.class.equals(wrapperType)) { + } + if (Short.class.equals(wrapperType)) { return short.class; - } else if (Byte.class.equals(wrapperType)) { + } + if (Byte.class.equals(wrapperType)) { return byte.class; - } else if (Double.class.equals(wrapperType)) { + } + if (Double.class.equals(wrapperType)) { return double.class; - } else if (Character.class.equals(wrapperType)) { + } + if (Character.class.equals(wrapperType)) { return char.class; - } else { - final Log log = LogFactory.getLog(MethodUtils.class); - if (log.isDebugEnabled()) { - log.debug("Not a known primitive wrapper class: " + wrapperType); - } - return null; } + final Log log = LogFactory.getLog(MethodUtils.class); + if (log.isDebugEnabled()) { + log.debug("Not a known primitive wrapper class: " + wrapperType); + } + return null; } /** diff --git a/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java index 9b49dce..4628ffb 100644 --- a/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java +++ b/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java @@ -464,7 +464,8 @@ public class PropertyUtilsBean { if (name == null || name.isEmpty()) { if (bean.getClass().isArray()) { return Array.get(bean, index); - } else if (bean instanceof List) { + } + if (bean instanceof List) { return ((List<?>)bean).get(index); } } @@ -652,29 +653,27 @@ public class PropertyUtilsBean { Method readMethod = ((MappedPropertyDescriptor) descriptor). getMappedReadMethod(); readMethod = MethodUtils.getAccessibleMethod(bean.getClass(), readMethod); - if (readMethod != null) { - final Object[] keyArray = new Object[1]; - keyArray[0] = key; - result = invokeMethod(readMethod, bean, keyArray); - } else { + if (readMethod == null) { throw new NoSuchMethodException("Property '" + name + "' has no mapped getter method on bean class '" + bean.getClass() + "'"); } + final Object[] keyArray = new Object[1]; + keyArray[0] = key; + result = invokeMethod(readMethod, bean, keyArray); } else { /* means that the result has to be retrieved from a map */ final Method readMethod = getReadMethod(bean.getClass(), descriptor); - if (readMethod != null) { - final Object invokeResult = invokeMethod(readMethod, bean, BeanUtils.EMPTY_OBJECT_ARRAY); - /* test and fetch from the map */ - if (invokeResult instanceof java.util.Map) { - result = ((java.util.Map<?, ?>)invokeResult).get(key); - } - } else { + if (readMethod == null) { throw new NoSuchMethodException("Property '" + name + "' has no mapped getter method on bean class '" + bean.getClass() + "'"); } + final Object invokeResult = invokeMethod(readMethod, bean, BeanUtils.EMPTY_OBJECT_ARRAY); + /* test and fetch from the map */ + if (invokeResult instanceof java.util.Map) { + result = ((java.util.Map<?, ?>)invokeResult).get(key); + } } return result; @@ -1111,26 +1110,27 @@ public class PropertyUtilsBean { final Class<?> type = descriptor.getType(); if (type == null) { return null; - } else if (type.isArray()) { + } + if (type.isArray()) { return type.getComponentType(); - } else { - return type; } + return type; } final PropertyDescriptor descriptor = getPropertyDescriptor(bean, name); if (descriptor == null) { return null; - } else if (descriptor instanceof IndexedPropertyDescriptor) { + } + if (descriptor instanceof IndexedPropertyDescriptor) { return ((IndexedPropertyDescriptor) descriptor). getIndexedPropertyType(); - } else if (descriptor instanceof MappedPropertyDescriptor) { + } + if (descriptor instanceof MappedPropertyDescriptor) { return ((MappedPropertyDescriptor) descriptor). getMappedPropertyType(); - } else { - return descriptor.getPropertyType(); } + return descriptor.getPropertyType(); } @@ -1199,11 +1199,13 @@ public class PropertyUtilsBean { throw new IllegalArgumentException ("Nested property names are not allowed: Property '" + name + "' on bean class '" + bean.getClass() + "'"); - } else if (resolver.isIndexed(name)) { + } + if (resolver.isIndexed(name)) { throw new IllegalArgumentException ("Indexed property names are not allowed: Property '" + name + "' on bean class '" + bean.getClass() + "'"); - } else if (resolver.isMapped(name)) { + } + if (resolver.isMapped(name)) { throw new IllegalArgumentException ("Mapped property names are not allowed: Property '" + name + "' on bean class '" + bean.getClass() + "'"); @@ -1530,7 +1532,8 @@ public class PropertyUtilsBean { if (bean.getClass().isArray()) { Array.set(bean, index, value); return; - } else if (bean instanceof List) { + } + if (bean instanceof List) { final List<Object> list = toObjectList(bean); list.set(index, value); return; @@ -1603,14 +1606,13 @@ public class PropertyUtilsBean { // Call the property getter to get the array or list final Object array = invokeMethod(readMethod, bean, BeanUtils.EMPTY_OBJECT_ARRAY); if (!array.getClass().isArray()) { - if (array instanceof List) { - // Modify the specified value in the List - final List<Object> list = toObjectList(array); - list.set(index, value); - } else { + if (!(array instanceof List)) { throw new IllegalArgumentException("Property '" + name + "' is not indexed on bean class '" + bean.getClass() + "'"); } + // Modify the specified value in the List + final List<Object> list = toObjectList(array); + list.set(index, value); } else { // Modify the specified value in the array Array.set(array, index, value); @@ -1732,39 +1734,37 @@ public class PropertyUtilsBean { ((MappedPropertyDescriptor) descriptor). getMappedWriteMethod(); mappedWriteMethod = MethodUtils.getAccessibleMethod(bean.getClass(), mappedWriteMethod); - if (mappedWriteMethod != null) { - final Object[] params = new Object[2]; - params[0] = key; - params[1] = value; - if (log.isTraceEnabled()) { - final String valueClassName = - value == null ? "<null>" : value.getClass().getName(); - log.trace("setSimpleProperty: Invoking method " - + mappedWriteMethod + " with key=" + key - + ", value=" + value - + " (class " + valueClassName +")"); - } - invokeMethod(mappedWriteMethod, bean, params); - } else { + if (mappedWriteMethod == null) { throw new NoSuchMethodException ("Property '" + name + "' has no mapped setter method" + "on bean class '" + bean.getClass() + "'"); } + final Object[] params = new Object[2]; + params[0] = key; + params[1] = value; + if (log.isTraceEnabled()) { + final String valueClassName = + value == null ? "<null>" : value.getClass().getName(); + log.trace("setSimpleProperty: Invoking method " + + mappedWriteMethod + " with key=" + key + + ", value=" + value + + " (class " + valueClassName +")"); + } + invokeMethod(mappedWriteMethod, bean, params); } else { /* means that the result has to be retrieved from a map */ final Method readMethod = getReadMethod(bean.getClass(), descriptor); - if (readMethod != null) { - final Object invokeResult = invokeMethod(readMethod, bean, BeanUtils.EMPTY_OBJECT_ARRAY); - /* test and fetch from the map */ - if (invokeResult instanceof java.util.Map) { - final java.util.Map<String, Object> map = toPropertyMap(invokeResult); - map.put(key, value); - } - } else { + if (readMethod == null) { throw new NoSuchMethodException("Property '" + name + "' has no mapped getter method on bean class '" + bean.getClass() + "'"); } + final Object invokeResult = invokeMethod(readMethod, bean, BeanUtils.EMPTY_OBJECT_ARRAY); + /* test and fetch from the map */ + if (invokeResult instanceof java.util.Map) { + final java.util.Map<String, Object> map = toPropertyMap(invokeResult); + map.put(key, value); + } } } @@ -1987,11 +1987,13 @@ public class PropertyUtilsBean { throw new IllegalArgumentException ("Nested property names are not allowed: Property '" + name + "' on bean class '" + bean.getClass() + "'"); - } else if (resolver.isIndexed(name)) { + } + if (resolver.isIndexed(name)) { throw new IllegalArgumentException ("Indexed property names are not allowed: Property '" + name + "' on bean class '" + bean.getClass() + "'"); - } else if (resolver.isMapped(name)) { + } + if (resolver.isMapped(name)) { throw new IllegalArgumentException ("Mapped property names are not allowed: Property '" + name + "' on bean class '" + bean.getClass() + "'"); diff --git a/src/main/java/org/apache/commons/beanutils2/WeakFastHashMap.java b/src/main/java/org/apache/commons/beanutils2/WeakFastHashMap.java index 0518640..e1f5c5f 100644 --- a/src/main/java/org/apache/commons/beanutils2/WeakFastHashMap.java +++ b/src/main/java/org/apache/commons/beanutils2/WeakFastHashMap.java @@ -329,7 +329,8 @@ public class WeakFastHashMap<K, V> extends HashMap<K, V> { // Simple tests that require no synchronization if (o == this) { return true; - } else if (!(o instanceof Map)) { + } + if (!(o instanceof Map)) { return false; } final Map<?, ?> mo = (Map<?, ?>) o; diff --git a/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java b/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java index 2f72db0..af44f88 100644 --- a/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java +++ b/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java @@ -187,7 +187,8 @@ public abstract class AbstractConverter implements Converter { return targetType.cast(convertToString(value)); // No conversion necessary - } else if (targetType.equals(sourceType)) { + } + if (targetType.equals(sourceType)) { if (log().isDebugEnabled()) { log().debug(" No conversion required, value is already a " + toString(targetType)); @@ -195,14 +196,13 @@ public abstract class AbstractConverter implements Converter { return targetType.cast(value); // Convert --> Type - } else { - final Object result = convertToType(targetType, value); - if (log().isDebugEnabled()) { - log().debug(" Converted to " + toString(targetType) + - " value '" + result + "'"); - } - return targetType.cast(result); } + final Object result = convertToType(targetType, value); + if (log().isDebugEnabled()) { + log().debug(" Converted to " + toString(targetType) + + " value '" + result + "'"); + } + return targetType.cast(result); } catch (final Throwable t) { return handleError(targetType, value, t); } diff --git a/src/main/java/org/apache/commons/beanutils2/converters/NumberConverter.java b/src/main/java/org/apache/commons/beanutils2/converters/NumberConverter.java index 1b33725..11ece55 100644 --- a/src/main/java/org/apache/commons/beanutils2/converters/NumberConverter.java +++ b/src/main/java/org/apache/commons/beanutils2/converters/NumberConverter.java @@ -370,13 +370,14 @@ public abstract class NumberConverter extends AbstractConverter { if (targetType.equals(BigDecimal.class)) { if (value instanceof Float || value instanceof Double) { return targetType.cast(new BigDecimal(value.toString())); - } else if (value instanceof BigInteger) { + } + if (value instanceof BigInteger) { return targetType.cast(new BigDecimal((BigInteger)value)); - } else if (value instanceof BigDecimal) { + } + if (value instanceof BigDecimal) { return targetType.cast(new BigDecimal(value.toString())); - } else { - return targetType.cast(BigDecimal.valueOf(value.longValue())); } + return targetType.cast(BigDecimal.valueOf(value.longValue())); } // BigInteger diff --git a/src/main/java/org/apache/commons/beanutils2/expression/DefaultResolver.java b/src/main/java/org/apache/commons/beanutils2/expression/DefaultResolver.java index 29d8bd1..90fc16b 100644 --- a/src/main/java/org/apache/commons/beanutils2/expression/DefaultResolver.java +++ b/src/main/java/org/apache/commons/beanutils2/expression/DefaultResolver.java @@ -84,7 +84,8 @@ public class DefaultResolver implements Resolver { final char c = expression.charAt(i); if (c == NESTED || c == MAPPED_START) { return -1; - } else if (c == INDEXED_START) { + } + if (c == INDEXED_START) { final int end = expression.indexOf(INDEXED_END, i); if (end < 0) { throw new IllegalArgumentException("Missing End Delimiter"); @@ -122,7 +123,8 @@ public class DefaultResolver implements Resolver { final char c = expression.charAt(i); if (c == NESTED || c == INDEXED_START) { return null; - } else if (c == MAPPED_START) { + } + if (c == MAPPED_START) { final int end = expression.indexOf(MAPPED_END, i); if (end < 0) { throw new IllegalArgumentException("Missing End Delimiter"); @@ -184,7 +186,8 @@ public class DefaultResolver implements Resolver { final char c = expression.charAt(i); if (c == NESTED || c == MAPPED_START) { return false; - } else if (c == INDEXED_START) { + } + if (c == INDEXED_START) { return true; } } @@ -207,7 +210,8 @@ public class DefaultResolver implements Resolver { final char c = expression.charAt(i); if (c == NESTED || c == INDEXED_START) { return false; - } else if (c == MAPPED_START) { + } + if (c == MAPPED_START) { return true; } } diff --git a/src/test/java/org/apache/commons/beanutils2/DynaRowSetTestCase.java b/src/test/java/org/apache/commons/beanutils2/DynaRowSetTestCase.java index ab5529e..3f451b6 100644 --- a/src/test/java/org/apache/commons/beanutils2/DynaRowSetTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/DynaRowSetTestCase.java @@ -369,11 +369,11 @@ public class DynaRowSetTestCase extends TestCase { final String columnName = getColumnName(columnIndex); if (columnName.equals("dateProperty")) { return java.sql.Timestamp.class.getName(); - } else if (columnName.equals("timestampProperty")) { + } + if (columnName.equals("timestampProperty")) { return CustomTimestamp.class.getName(); - } else { - return super.getColumnClassName(columnIndex); } + return super.getColumnClassName(columnIndex); } } private static class CustomTimestamp { diff --git a/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java index ee9df63..86bde3a 100644 --- a/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java +++ b/src/test/java/org/apache/commons/beanutils2/PropertyUtilsTestCase.java @@ -3837,12 +3837,11 @@ public class PropertyUtilsTestCase extends TestCase { try { final PropertyDescriptor pd = PropertyUtils.getPropertyDescriptor(bean, name); - if (read != null || write != null) { - assertNotNull("Got descriptor", pd); - } else { + if (read == null && write == null) { assertNull("Got descriptor", pd); return; } + assertNotNull("Got descriptor", pd); final Method rm = pd.getReadMethod(); if (read != null) { assertNotNull("Got read method", rm); diff --git a/src/test/java/org/apache/commons/beanutils2/TestResultSet.java b/src/test/java/org/apache/commons/beanutils2/TestResultSet.java index 73dd859..7447a29 100644 --- a/src/test/java/org/apache/commons/beanutils2/TestResultSet.java +++ b/src/test/java/org/apache/commons/beanutils2/TestResultSet.java @@ -158,36 +158,47 @@ public class TestResultSet implements InvocationHandler { } if ("bigDecimalProperty".equals(columnName)) { return new BigDecimal(123.45); - } else if ("booleanProperty".equals(columnName)) { + } + if ("booleanProperty".equals(columnName)) { if (row % 2 == 0) { return Boolean.TRUE; } return Boolean.FALSE; - } else if ("byteProperty".equals(columnName)) { + } + if ("byteProperty".equals(columnName)) { return new Byte((byte) row); - } else if ("dateProperty".equals(columnName)) { + } + if ("dateProperty".equals(columnName)) { return new Date(timestampMillis); - } else if ("doubleProperty".equals(columnName)) { + } + if ("doubleProperty".equals(columnName)) { return new Double(321.0); - } else if ("floatProperty".equals(columnName)) { + } + if ("floatProperty".equals(columnName)) { return new Float((float) 123.0); - } else if ("intProperty".equals(columnName)) { + } + if ("intProperty".equals(columnName)) { return new Integer(100 + row); - } else if ("longProperty".equals(columnName)) { + } + if ("longProperty".equals(columnName)) { return new Long(200 + row); - } else if ("nullProperty".equals(columnName)) { + } + if ("nullProperty".equals(columnName)) { return null; - } else if ("shortProperty".equals(columnName)) { + } + if ("shortProperty".equals(columnName)) { return new Short((short) (300 + row)); - } else if ("stringProperty".equals(columnName)) { + } + if ("stringProperty".equals(columnName)) { return "This is a string"; - } else if ("timeProperty".equals(columnName)) { + } + if ("timeProperty".equals(columnName)) { return new Time(timestampMillis); - } else if ("timestampProperty".equals(columnName)) { + } + if ("timestampProperty".equals(columnName)) { return new Timestamp(timestampMillis); - } else { - throw new SQLException("Unknown column name " + columnName); } + throw new SQLException("Unknown column name " + columnName); } public Date getDate(final String columnName) throws SQLException {