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