/*
* Carrot2 project.
*
* Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński.
* All rights reserved.
*
* Refer to the full license file "carrot2.LICENSE"
* in the root folder of the repository checkout or at:
* http://www.carrot2.org/carrot2.LICENSE
*/
package org.carrot2.util.factory;
/**
* A {@link IFactory} that creates new instances of a given class.
*/
public final class NewClassInstanceFactory<T> implements IFactory<T>
{
private final Class<? extends T> clazz;
public NewClassInstanceFactory(Class<? extends T> clazz)
{
this.clazz = clazz;
}
@Override
public T createInstance()
{
try
{
return clazz.newInstance();
}
catch (InstantiationException e)
{
throw new RuntimeException(e);
}
catch (IllegalAccessException e)
{
throw new RuntimeException(e);
}
}
}