You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sk...@apache.org on 2008/11/04 17:49:38 UTC

svn commit: r711306 - /myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java

Author: skitching
Date: Tue Nov  4 08:49:37 2008
New Revision: 711306

URL: http://svn.apache.org/viewvc?rev=711306&view=rev
Log:
Add some new variants of ClassUtils.newInstance.
This change is a backport of r511285 and r518534 from the shared-3.0.x branch.

Modified:
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java?rev=711306&r1=711305&r2=711306&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java Tue Nov  4 08:49:37 2008
@@ -268,6 +268,32 @@
         return newInstance(simpleClassForName(type));
     }
 
+    public static Object newInstance(String type, Class expectedType) throws FacesException
+    {
+        return newInstance(type, expectedType == null ? null : new Class[] {expectedType});
+    }
+
+    public static Object newInstance(String type, Class[] expectedTypes)
+    {
+        if (type == null)
+            return null;        
+        
+        Class clazzForName = simpleClassForName(type);
+        
+        if(expectedTypes != null)
+        {
+            for (int i = 0, size = expectedTypes.length; i < size; i++)
+            {
+                if (!expectedTypes[i].isAssignableFrom(clazzForName))
+                {
+                    throw new FacesException("'" + type + "' does not implement expected type '" + expectedTypes[i]
+                            + "'");
+                }
+            }
+        }
+        
+        return newInstance(clazzForName);
+    }
 
     public static Object newInstance(Class clazz)
         throws FacesException