package net.jhorstmann.i18n;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ServiceLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
class ServiceLoaderHelper {
private static final Logger log = LoggerFactory.getLogger(ServiceLoaderHelper.class);
static <T> List<T> load(ClassLoader cl, Class<T> factoryClass) {
if (log.isDebugEnabled()) {
String clname = cl.getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(cl));
log.debug("Loading {} implementations for ClassLoader {}", factoryClass.getName(), clname);
}
ServiceLoader<T> loader = ServiceLoader.load(factoryClass);
List<T> result = new ArrayList<T>();
Iterator<T> iterator = loader.iterator();
while (iterator.hasNext()) {
T factory = iterator.next();
result.add(factory);
}
return result;
}
}