org.testng.internal.ObjectFactoryImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testng Show documentation
Show all versions of testng Show documentation
Testing framework for Java
package org.testng.internal;
import org.testng.IObjectFactory;
import org.testng.TestNGException;
import java.lang.reflect.Constructor;
/**
* Default factory for test creation.
* Note that if no constructor is found matching the specified parameters,
* this factory will try to invoke a constructor that takes in a string object
*
* @author Hani Suleiman
* Date: Mar 6, 2007
* Time: 12:00:27 PM
* @since 5.6
*/
public class ObjectFactoryImpl implements IObjectFactory {
/**
*
*/
private static final long serialVersionUID = -4547389328475540017L;
@Override
public Object newInstance(Constructor constructor, Object... params) {
try {
return constructor.newInstance(params);
}
catch (IllegalAccessException ex) {
return ClassHelper.tryOtherConstructor(constructor.getDeclaringClass());
}
catch (InstantiationException ex) {
return ClassHelper.tryOtherConstructor(constructor.getDeclaringClass());
}
catch(Exception ex) {
throw new TestNGException("Cannot instantiate class "
+ (constructor != null
? constructor.getDeclaringClass().getName()
: ": couldn't find a suitable constructor"),
ex);
}
}
}