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);