[teiid-commits] teiid SVN: r582 - trunk/common-core/src/main/java/com/metamatrix/core/util.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Mar 18 16:09:13 EDT 2009


Author: shawkins
Date: 2009-03-18 16:09:13 -0400 (Wed, 18 Mar 2009)
New Revision: 582

Modified:
   trunk/common-core/src/main/java/com/metamatrix/core/util/ReflectionHelper.java
Log:
TEIID-346 adding in a compatibility layer with 5.5 connectors.

Modified: trunk/common-core/src/main/java/com/metamatrix/core/util/ReflectionHelper.java
===================================================================
--- trunk/common-core/src/main/java/com/metamatrix/core/util/ReflectionHelper.java	2009-03-18 20:09:10 UTC (rev 581)
+++ trunk/common-core/src/main/java/com/metamatrix/core/util/ReflectionHelper.java	2009-03-18 20:09:13 UTC (rev 582)
@@ -266,26 +266,34 @@
 
     public static final Object create(String className, Collection ctorObjs, 
                                       final ClassLoader classLoader) throws MetaMatrixCoreException {
+    	try {
+	        int size = (ctorObjs == null ? 0 : ctorObjs.size());
+	        Class[] names = new Class[size];
+	        Object[] objArray = new Object[size];
+	        int i = 0;
+	
+	        if (size > 0) {
+	            for (Iterator it=ctorObjs.iterator(); it.hasNext(); ) {
+	                Object obj = it.next();
+	                names[i] = loadClass(obj.getClass().getName(),classLoader);
+	                objArray[i] = obj;
+	                i++;
+	            }
+	        } 
+	        return create(className, objArray, names, classLoader);
+    	} catch (Exception e) {
+    		throw new MetaMatrixCoreException(e);
+    	}
+    }
+    	
+    public static final Object create(String className, Object[] ctorObjs, Class<?>[] argTypes, 
+                final ClassLoader classLoader) throws MetaMatrixCoreException {
         try {
-            int size = (ctorObjs == null ? 0 : ctorObjs.size());
-            Class[] names = new Class[size];
-            Object[] objArray = new Object[size];
-            int i = 0;
-
-            if (size > 0) {
-                for (Iterator it=ctorObjs.iterator(); it.hasNext(); ) {
-                    Object obj = it.next();
-                    names[i] = loadClass(obj.getClass().getName(),classLoader);
-                    objArray[i] = obj;
-                    i++;
-                }
-            }
-
             final Class cls = loadClass(className,classLoader);
 
-            Constructor ctor = cls.getDeclaredConstructor(names);
+            Constructor ctor = cls.getDeclaredConstructor(argTypes);
 
-            return ctor.newInstance(objArray);
+            return ctor.newInstance(ctorObjs);
             
         } catch(Exception e) {
             throw new MetaMatrixCoreException(e);




More information about the teiid-commits mailing list