/*
*
*/
package ext.egantt.util.reflect;
import com.egantt.util.Trace;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class ClassLoader
{
public ClassLoader()
{
}
public static Object invoke(String clazzName)
{
Object value = null;
try
{
Class clazz = Class.forName(clazzName);
value = clazz == null ? null : clazz.newInstance();
}
catch(Exception e)
{
e.printStackTrace(Trace.out);
}
return value;
}
public static Object invoke(String clazzName, Object params[])
{
Constructor constructors[];
Class params2[];
int i;
Class clazz = null;
try {
clazz = Class.forName(clazzName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
constructors = clazz.getConstructors();
params2 = new Class[params.length];
for(int z = 0; z < params.length; z++)
params2[z] = params[z] == null ? null : params[z].getClass();
i = 0;
//_L1:
/* if(i >= constructors.length)
break MISSING_BLOCK_LABEL_172;*/
Class params1[] = constructors[i].getParameterTypes();
if(params1.length == params2.length)
{
boolean result = true;
for(int z = 0; z < params1.length && result; z++)
if(params[z] != null && !params1[z].isAssignableFrom(params2[z]))
result = false;
if(result)
try {
return constructors[i].newInstance(params);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/* i++;
break _L1;
Exception e;
e;
e.printStackTrace(Trace.out);*/
return null;
}
}