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 3558931  Define and reuse package private constants.
3558931 is described below

commit 35589319aa4d345d76acb37b8f3295e3eb2ac8b6
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Jan 16 13:42:18 2021 -0500

    Define and reuse package private constants.
---
 .../apache/commons/beanutils2/BasicDynaClass.java  |  4 +--
 .../org/apache/commons/beanutils2/BeanUtils.java   | 15 +++++------
 .../commons/beanutils2/ConstructorUtils.java       | 17 +++++-------
 .../beanutils2/DefaultBeanIntrospector.java        |  8 +++---
 .../beanutils2/DefaultIntrospectionContext.java    |  5 +---
 .../apache/commons/beanutils2/DynaProperty.java    |  8 ++++--
 .../apache/commons/beanutils2/LazyDynaBean.java    |  2 ++
 .../apache/commons/beanutils2/LazyDynaList.java    |  4 +--
 .../org/apache/commons/beanutils2/MethodUtils.java | 31 +++++++++-------------
 .../commons/beanutils2/PropertyDescriptors.java    | 26 ++++++++++++++++++
 .../apache/commons/beanutils2/PropertyUtils.java   | 17 ------------
 .../commons/beanutils2/PropertyUtilsBean.java      | 15 ++++-------
 .../apache/commons/beanutils2/WrapDynaClass.java   |  2 +-
 13 files changed, 72 insertions(+), 82 deletions(-)

diff --git a/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java 
b/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java
index ff0cb67..c145acc 100644
--- a/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java
+++ b/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java
@@ -36,8 +36,6 @@ public class BasicDynaClass implements DynaClass, 
Serializable {
 
     private static final long serialVersionUID = 1L;
 
-
-
     /**
      * Constructs a new BasicDynaClass with default parameters.
      */
@@ -116,7 +114,7 @@ public class BasicDynaClass implements DynaClass, 
Serializable {
     /**
      * The set of dynamic properties that are part of this DynaClass.
      */
-    protected DynaProperty[] properties = new DynaProperty[0];
+    protected DynaProperty[] properties = 
DynaProperty.EMPTY_DYNA_PROPERTY_ARRAY;
 
     /**
      * The set of dynamic properties that are part of this DynaClass,
diff --git a/src/main/java/org/apache/commons/beanutils2/BeanUtils.java 
b/src/main/java/org/apache/commons/beanutils2/BeanUtils.java
index eae086d..6effb2f 100644
--- a/src/main/java/org/apache/commons/beanutils2/BeanUtils.java
+++ b/src/main/java/org/apache/commons/beanutils2/BeanUtils.java
@@ -35,15 +35,6 @@ import java.util.Map;
 
 public class BeanUtils {
 
-
-
-
-
-
-
-
-
-
     /**
      * <p>Clone a bean based on the available property getters and setters,
      * even if the bean class itself does not implement Cloneable.</p>
@@ -438,4 +429,10 @@ public class BeanUtils {
     public static <K, V> Map<K, V> createCache() {
         return new WeakFastHashMap<>();
     }
+
+    /** An empty class array */
+    static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];
+
+    /** An empty object array */
+    static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
 }
diff --git a/src/main/java/org/apache/commons/beanutils2/ConstructorUtils.java 
b/src/main/java/org/apache/commons/beanutils2/ConstructorUtils.java
index d2c324f..e30d6b8 100644
--- a/src/main/java/org/apache/commons/beanutils2/ConstructorUtils.java
+++ b/src/main/java/org/apache/commons/beanutils2/ConstructorUtils.java
@@ -39,11 +39,6 @@ import java.lang.reflect.Modifier;
  */
 public class ConstructorUtils {
 
-    /** An empty class array */
-    private static final Class<?>[] EMPTY_CLASS_PARAMETERS = new Class<?>[0];
-    /** An empty object array */
-    private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-
     /**
      * <p>Convenience method returning new instance of {@code klazz} using a 
single argument constructor.
      * The formal parameter type is inferred from the actual values of {@code 
arg}.
@@ -101,7 +96,7 @@ public class ConstructorUtils {
             InstantiationException {
 
         if (null == args) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
         final int arguments = args.length;
         final Class<?>[] parameterTypes = new Class<?>[arguments];
@@ -140,10 +135,10 @@ public class ConstructorUtils {
             InstantiationException {
 
         if (parameterTypes == null) {
-            parameterTypes = EMPTY_CLASS_PARAMETERS;
+            parameterTypes = BeanUtils.EMPTY_CLASS_ARRAY;
         }
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
 
         final Constructor<T> ctor =
@@ -212,7 +207,7 @@ public class ConstructorUtils {
             InstantiationException {
 
         if (null == args) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
         final int arguments = args.length;
         final Class<?>[] parameterTypes = new Class[arguments];
@@ -252,11 +247,11 @@ public class ConstructorUtils {
             InstantiationException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
 
         if (parameterTypes == null) {
-            parameterTypes = EMPTY_CLASS_PARAMETERS;
+            parameterTypes = BeanUtils.EMPTY_CLASS_ARRAY;
         }
 
         final Constructor<T> ctor = getAccessibleConstructor(klass, 
parameterTypes);
diff --git 
a/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java 
b/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java
index 8483f9f..a44c67b 100644
--- a/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java
+++ b/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java
@@ -46,12 +46,10 @@ import org.apache.commons.logging.LogFactory;
  * @since 1.9
  */
 public class DefaultBeanIntrospector implements BeanIntrospector {
+
     /** The singleton instance of this class. */
     public static final BeanIntrospector INSTANCE = new 
DefaultBeanIntrospector();
 
-    /** Constant for argument types of a method that expects no arguments. */
-    private static final Class<?>[] EMPTY_CLASS_PARAMETERS = new Class[0];
-
     /** Constant for arguments types of a method that expects a list argument. 
*/
     private static final Class<?>[] LIST_CLASS_PARAMETER = new Class[] { 
java.util.List.class };
 
@@ -87,7 +85,7 @@ public class DefaultBeanIntrospector implements 
BeanIntrospector {
 
         PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors();
         if (descriptors == null) {
-            descriptors = new PropertyDescriptor[0];
+            descriptors = PropertyDescriptors.EMPTY_PROPERTY_DESCRIPTOR_ARRAY;
         }
 
         handleIndexedPropertyDescriptors(icontext.getTargetClass(),
@@ -134,7 +132,7 @@ public class DefaultBeanIntrospector implements 
BeanIntrospector {
                             + propName;
                     final Method readMethod = MethodUtils
                             .getMatchingAccessibleMethod(beanClass, methodName,
-                                    EMPTY_CLASS_PARAMETERS);
+                                    BeanUtils.EMPTY_CLASS_ARRAY);
                     if (readMethod != null) {
                         try {
                             descriptor.setReadMethod(readMethod);
diff --git 
a/src/main/java/org/apache/commons/beanutils2/DefaultIntrospectionContext.java 
b/src/main/java/org/apache/commons/beanutils2/DefaultIntrospectionContext.java
index 9b56567..1b8ee6c 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/DefaultIntrospectionContext.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/DefaultIntrospectionContext.java
@@ -35,9 +35,6 @@ import java.util.Set;
  * @since 1.9
  */
 class DefaultIntrospectionContext implements IntrospectionContext {
-    /** Constant for an empty array of property descriptors. */
-    private static final PropertyDescriptor[] EMPTY_DESCRIPTORS = new 
PropertyDescriptor[0];
-
     /** The current class for introspection. */
     private final Class<?> currentClass;
 
@@ -109,6 +106,6 @@ class DefaultIntrospectionContext implements 
IntrospectionContext {
      * @return an array with all known property descriptors
      */
     public PropertyDescriptor[] getPropertyDescriptors() {
-        return descriptors.values().toArray(EMPTY_DESCRIPTORS);
+        return 
descriptors.values().toArray(PropertyDescriptors.EMPTY_PROPERTY_DESCRIPTOR_ARRAY);
     }
 }
diff --git a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java 
b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
index e31ccbe..bb490ed 100644
--- a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
+++ b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
@@ -40,8 +40,6 @@ import java.util.Objects;
 
 public class DynaProperty implements Serializable {
 
-
-
     private static final long serialVersionUID = -3084907613499830175L;
     /*
      * There are issues with serializing primitive class types on certain JVM 
versions
@@ -137,6 +135,12 @@ public class DynaProperty implements Serializable {
 
     /** The <em>(optional)</em> type of content elements for indexed {@code 
DynaProperty} */
     protected transient Class<?> contentType;
+    
+    /**
+     * Empty array.
+     */
+    static final DynaProperty[] EMPTY_DYNA_PROPERTY_ARRAY = new 
DynaProperty[0];
+    
     /**
      * Gets the <em>(optional)</em> type of the indexed content for {@code 
DynaProperty}'s
      * that support this feature.
diff --git a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java 
b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
index ce48449..2da46e7 100644
--- a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
@@ -163,6 +163,8 @@ public class LazyDynaBean implements DynaBean, Serializable 
{
      */
     protected MutableDynaClass dynaClass;
 
+    static final LazyDynaBean[] EMPTY_LAZY_DYNA_BEAN_ARRAY = new 
LazyDynaBean[0];
+
 
 
     /**
diff --git a/src/main/java/org/apache/commons/beanutils2/LazyDynaList.java 
b/src/main/java/org/apache/commons/beanutils2/LazyDynaList.java
index 6407256..b12b9ff 100644
--- a/src/main/java/org/apache/commons/beanutils2/LazyDynaList.java
+++ b/src/main/java/org/apache/commons/beanutils2/LazyDynaList.java
@@ -409,7 +409,7 @@ public class LazyDynaList extends ArrayList<Object> {
     public Object[] toArray() {
 
         if (size() == 0 && elementType == null) {
-            return new LazyDynaBean[0];
+            return LazyDynaBean.EMPTY_LAZY_DYNA_BEAN_ARRAY;
         }
 
         final Object[] array = (Object[])Array.newInstance(elementType, 
size());
@@ -484,7 +484,7 @@ public class LazyDynaList extends ArrayList<Object> {
     public DynaBean[] toDynaBeanArray() {
 
         if (size() == 0 && elementDynaBeanType == null) {
-            return new LazyDynaBean[0];
+            return LazyDynaBean.EMPTY_LAZY_DYNA_BEAN_ARRAY;
         }
 
         final DynaBean[] array = 
(DynaBean[])Array.newInstance(elementDynaBeanType, size());
diff --git a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java 
b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
index a5cb102..eaa418f 100644
--- a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
+++ b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
@@ -73,11 +73,6 @@ public class MethodUtils {
      */
     private static boolean CACHE_METHODS = true;
 
-    /** An empty class array */
-    private static final Class<?>[] EMPTY_CLASS_PARAMETERS = new Class[0];
-    /** An empty object array */
-    private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-
     /**
      * Stores a cache of MethodDescriptor -> Method in a WeakHashMap.
      * <p>
@@ -208,7 +203,7 @@ public class MethodUtils {
             InvocationTargetException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
         final int arguments = args.length;
         final Class<?>[] parameterTypes = new Class[arguments];
@@ -256,10 +251,10 @@ public class MethodUtils {
                     InvocationTargetException {
 
         if (parameterTypes == null) {
-            parameterTypes = EMPTY_CLASS_PARAMETERS;
+            parameterTypes = BeanUtils.EMPTY_CLASS_ARRAY;
         }
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
 
         final Method method = getMatchingAccessibleMethod(
@@ -335,7 +330,7 @@ public class MethodUtils {
             InvocationTargetException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
         final int arguments = args.length;
         final Class<?>[] parameterTypes = new Class[arguments];
@@ -376,11 +371,11 @@ public class MethodUtils {
             InvocationTargetException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
 
         if (parameterTypes == null) {
-            parameterTypes = EMPTY_CLASS_PARAMETERS;
+            parameterTypes = BeanUtils.EMPTY_CLASS_ARRAY;
         }
 
         final Method method = getAccessibleMethod(
@@ -426,11 +421,11 @@ public class MethodUtils {
             InvocationTargetException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
 
         if (parameterTypes == null) {
-            parameterTypes = EMPTY_CLASS_PARAMETERS;
+            parameterTypes = BeanUtils.EMPTY_CLASS_ARRAY;
         }
 
         final Method method = getAccessibleMethod(
@@ -525,7 +520,7 @@ public class MethodUtils {
             InvocationTargetException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
         final int arguments = args.length;
         final Class<?>[] parameterTypes = new Class[arguments];
@@ -574,10 +569,10 @@ public class MethodUtils {
                     InvocationTargetException {
 
         if (parameterTypes == null) {
-            parameterTypes = EMPTY_CLASS_PARAMETERS;
+            parameterTypes = BeanUtils.EMPTY_CLASS_ARRAY;
         }
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
 
         final Method method = getMatchingAccessibleMethod(
@@ -655,7 +650,7 @@ public class MethodUtils {
             InvocationTargetException {
 
         if (args == null) {
-            args = EMPTY_OBJECT_ARRAY;
+            args = BeanUtils.EMPTY_OBJECT_ARRAY;
         }
         final int arguments = args.length;
         final Class<?>[] parameterTypes = new Class[arguments];
@@ -1307,7 +1302,7 @@ public class MethodUtils {
                 throw new IllegalArgumentException("Method Name cannot be 
null");
             }
             if (paramTypes == null) {
-                paramTypes = EMPTY_CLASS_PARAMETERS;
+                paramTypes = BeanUtils.EMPTY_CLASS_ARRAY;
             }
 
             this.cls = cls;
diff --git 
a/src/main/java/org/apache/commons/beanutils2/PropertyDescriptors.java 
b/src/main/java/org/apache/commons/beanutils2/PropertyDescriptors.java
new file mode 100644
index 0000000..978bd87
--- /dev/null
+++ b/src/main/java/org/apache/commons/beanutils2/PropertyDescriptors.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.beanutils2;
+
+import java.beans.PropertyDescriptor;
+
+class PropertyDescriptors {
+
+    static final PropertyDescriptor[] EMPTY_PROPERTY_DESCRIPTOR_ARRAY = new 
PropertyDescriptor[0];
+
+}
diff --git a/src/main/java/org/apache/commons/beanutils2/PropertyUtils.java 
b/src/main/java/org/apache/commons/beanutils2/PropertyUtils.java
index 20b800f..a64f44e 100644
--- a/src/main/java/org/apache/commons/beanutils2/PropertyUtils.java
+++ b/src/main/java/org/apache/commons/beanutils2/PropertyUtils.java
@@ -37,21 +37,6 @@ import java.util.Map;
 
 public class PropertyUtils {
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
     /**
      * Clear any cached property descriptors information for all classes
      * loaded by any class loaders.  This is useful in cases where class
@@ -62,9 +47,7 @@ public class PropertyUtils {
      * @see PropertyUtilsBean#clearDescriptors
      */
     public static void clearDescriptors() {
-
         PropertyUtilsBean.getInstance().clearDescriptors();
-
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java 
b/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java
index 5437db1..b98f1a6 100644
--- a/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java
@@ -92,8 +92,6 @@ public class PropertyUtilsBean {
 
     private Resolver resolver = new DefaultResolver();
 
-
-
     /**
      * Gets the PropertyUtils bean instance.
      * @return The PropertyUtils bean instance
@@ -111,9 +109,6 @@ public class PropertyUtilsBean {
     private WeakFastHashMap<Class<?>, BeanIntrospectionData> descriptorsCache;
     private WeakFastHashMap<Class<?>, Map> mappedDescriptorsCache;
 
-    /** An empty object array */
-    private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-
     /** Log instance */
     private final Log log = LogFactory.getLog(PropertyUtilsBean.class);
 
@@ -526,7 +521,7 @@ public class PropertyUtilsBean {
         }
 
         // Call the property getter and return the value
-        final Object value = invokeMethod(readMethod, bean, 
EMPTY_OBJECT_ARRAY);
+        final Object value = invokeMethod(readMethod, bean, 
BeanUtils.EMPTY_OBJECT_ARRAY);
         if (!value.getClass().isArray()) {
             if (!(value instanceof java.util.List)) {
                 throw new IllegalArgumentException("Property '" + name +
@@ -670,7 +665,7 @@ public class PropertyUtilsBean {
           /* 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, 
EMPTY_OBJECT_ARRAY);
+            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);
@@ -1240,7 +1235,7 @@ public class PropertyUtilsBean {
         }
 
         // Call the property getter and return the value
-        final Object value = invokeMethod(readMethod, bean, 
EMPTY_OBJECT_ARRAY);
+        final Object value = invokeMethod(readMethod, bean, 
BeanUtils.EMPTY_OBJECT_ARRAY);
         return value;
 
     }
@@ -1606,7 +1601,7 @@ public class PropertyUtilsBean {
         }
 
         // Call the property getter to get the array or list
-        final Object array = invokeMethod(readMethod, bean, 
EMPTY_OBJECT_ARRAY);
+        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
@@ -1759,7 +1754,7 @@ public class PropertyUtilsBean {
           /* 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, 
EMPTY_OBJECT_ARRAY);
+            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);
diff --git a/src/main/java/org/apache/commons/beanutils2/WrapDynaClass.java 
b/src/main/java/org/apache/commons/beanutils2/WrapDynaClass.java
index eef6d1d..dc7abf5 100644
--- a/src/main/java/org/apache/commons/beanutils2/WrapDynaClass.java
+++ b/src/main/java/org/apache/commons/beanutils2/WrapDynaClass.java
@@ -329,7 +329,7 @@ public class WrapDynaClass implements DynaClass {
         PropertyDescriptor[] regulars =
                 getPropertyUtilsBean().getPropertyDescriptors(beanClass);
         if (regulars == null) {
-            regulars = new PropertyDescriptor[0];
+            regulars = PropertyDescriptors.EMPTY_PROPERTY_DESCRIPTOR_ARRAY;
         }
         Map<?, ?> mappeds =
                 PropertyUtils.getMappedPropertyDescriptors(beanClass);

Reply via email to