package org.solrmarc.index.utils;
//import org.reflections.Reflections;
//import org.reflections.scanners.SubTypesScanner;
//import org.reflections.util.ClasspathHelper;
//import org.reflections.util.ConfigurationBuilder;
//import org.solrmarc.driver.Boot;
//import org.solrmarc.index.extractor.AbstractValueExtractorFactory;
//import org.solrmarc.index.extractor.impl.custom.Mixin;
//import org.solrmarc.index.mapping.AbstractValueMappingFactory;
//
//import java.util.Set;
//
public class ReflectionUtils
{
// private final static Reflections reflections = new Reflections(getConfigurationBuilder());
//
// private static ConfigurationBuilder getConfigurationBuilder()
// {
// final ConfigurationBuilder builder = new ConfigurationBuilder();
// builder.addClassLoader(FastClasspathUtils.class.getClassLoader());
//
// final String packageName = FastClasspathUtils.class.getPackage().getName();
// builder.addUrls(ClasspathHelper.forPackage(packageName.substring(0, packageName.indexOf('.'))));
// builder.addScanners(new SubTypesScanner(false));
// return builder;
// }
//
// private static <T> Set<Class<? extends T>> getSubclasses(final Class<T> type)
// {
// return reflections.getSubTypesOf(type);
// }
//
// public static Set<Class<? extends Mixin>> getMixinClasses()
// {
// return getSubclasses(Mixin.class);
// }
//
// public static Set<Class<? extends AbstractValueExtractorFactory>> getExtractorFactoryClasses()
// {
// return getSubclasses(AbstractValueExtractorFactory.class);
// }
//
// public static Set<Class<? extends AbstractValueMappingFactory>> getMappingFactoryClasses()
// {
// return getSubclasses(AbstractValueMappingFactory.class);
// }
//
// public static Set<Class<? extends Boot>> getBootableMainClasses()
// {
// Set<Class<? extends Boot>> objs = getSubclasses(Boot.class);
// return (objs);
// }
//
}