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 )
         {
         }
     }