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/02/24 16:35:53 UTC

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

Author: mbr
Date: Sat Feb 24 07:35:53 2007
New Revision: 511285

URL: http://svn.apache.org/viewvc?view=rev&rev=511285
Log:
added newInstance(String, Class) method to support type check

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=511285&r1=511284&r2=511285
==============================================================================
--- 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 Sat Feb 24 07:35:53 2007
@@ -263,6 +263,27 @@
         return newInstance(simpleClassForName(type));
     }
 
+    public static Object newInstance(String type, Class expectedType) throws FacesException
+    {
+        if (expectedType == null)
+        {
+            throw new IllegalArgumentException(
+                    "expected type must not be null.");
+        }
+        if (type == null)
+            return null;        
+        
+        Class clazzForName = simpleClassForName(type);
+        
+        if (!expectedType.isAssignableFrom(clazzForName))
+        {
+            throw new FacesException("'" + type
+                    + "' does not implement expected type '" + expectedType
+                    + "'");
+        }
+        
+        return newInstance(clazzForName);
+    }
 
     public static Object newInstance(Class clazz)
         throws FacesException