You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2007/03/15 10:14:55 UTC

svn commit: r518534 - /myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java

Author: mbr
Date: Thu Mar 15 02:14:54 2007
New Revision: 518534

URL: http://svn.apache.org/viewvc?view=rev&rev=518534
Log:
merging changes from r518530
added newInstance(String, Class[]) to support checking for multiple types


Modified:
    myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java

Modified: myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java?view=diff&rev=518534&r1=518533&r2=518534
==============================================================================
--- myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java (original)
+++ myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/util/ClassUtils.java Thu Mar 15 02:14:54 2007
@@ -264,21 +264,26 @@
 
     public static Object newInstance(String type, Class expectedType) throws FacesException
     {
-        if (expectedType == null)
-        {
-            throw new IllegalArgumentException(
-                    "expected type must not be null.");
-        }
+        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 (!expectedType.isAssignableFrom(clazzForName))
+        if(expectedTypes != null)
         {
-            throw new FacesException("'" + type
-                    + "' does not implement expected type '" + expectedType
-                    + "'");
+            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);