Simplifying BeanProvider.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/proxy/branches/version-2.0-work@1507564 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core/src/main/java/org/apache/commons/proxy2/provider/BeanProvider.java b/core/src/main/java/org/apache/commons/proxy2/provider/BeanProvider.java
index 07b2c76..c515af9 100644
--- a/core/src/main/java/org/apache/commons/proxy2/provider/BeanProvider.java
+++ b/core/src/main/java/org/apache/commons/proxy2/provider/BeanProvider.java
@@ -17,6 +17,8 @@
package org.apache.commons.proxy2.provider;
+import org.apache.commons.lang3.SerializationUtils;
+import org.apache.commons.lang3.Validate;
import org.apache.commons.proxy2.ObjectProvider;
import org.apache.commons.proxy2.exception.ObjectProviderException;
@@ -37,18 +39,11 @@
// Fields
//**********************************************************************************************************************
- private Class<? extends T> beanClass;
+ private final Class<? extends T> beanClass;
- //**********************************************************************************************************************
- // Constructors
- //**********************************************************************************************************************
-
- /**
- * Create a new BeanProvider instance.
- */
- public BeanProvider()
- {
- }
+//**********************************************************************************************************************
+// Constructors
+//**********************************************************************************************************************
/**
* Constructs a provider which instantiates objects of the specified bean class.
@@ -57,12 +52,13 @@
*/
public BeanProvider( Class<? extends T> beanClass )
{
+ Validate.notNull(beanClass, "Bean class cannot be null.");
this.beanClass = beanClass;
}
- //**********************************************************************************************************************
- // ObjectProvider Implementation
- //**********************************************************************************************************************
+//**********************************************************************************************************************
+// ObjectProvider Implementation
+//**********************************************************************************************************************
/**
* {@inheritDoc}
@@ -71,10 +67,6 @@
{
try
{
- if( beanClass == null )
- {
- throw new ObjectProviderException("No bean class provided.");
- }
return beanClass.newInstance();
}
catch( InstantiationException e )
@@ -87,16 +79,4 @@
e);
}
}
-
- //**********************************************************************************************************************
- // Getter/Setter Methods
- //**********************************************************************************************************************
-
- /**
- * Set the beanClass.
- * @param beanClass the Class<T> to set
- */
- public void setBeanClass(Class<? extends T> beanClass) {
- this.beanClass = beanClass;
- }
}
diff --git a/core/src/test/java/org/apache/commons/proxy2/provider/TestBeanProvider.java b/core/src/test/java/org/apache/commons/proxy2/provider/TestBeanProvider.java
index a175d74..27fdb42 100644
--- a/core/src/test/java/org/apache/commons/proxy2/provider/TestBeanProvider.java
+++ b/core/src/test/java/org/apache/commons/proxy2/provider/TestBeanProvider.java
@@ -30,8 +30,7 @@
{
try
{
- final BeanProvider<Number> p = new BeanProvider<Number>();
- p.setBeanClass(Number.class);
+ final BeanProvider<Number> p = new BeanProvider<Number>(Number.class);
p.getObject();
fail();
}
@@ -61,11 +60,11 @@
{
try
{
- final BeanProvider<Object> p = new BeanProvider<Object>();
+ final BeanProvider<Object> p = new BeanProvider<Object>(null);
p.getObject();
- fail();
+ fail("Should throw NullPointerException.");
}
- catch( ObjectProviderException e )
+ catch( NullPointerException e )
{
}
}