package de.uni_luebeck.inb.krabbenhoeft.eQTL.server;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.entities.ColumnForDataSetLayer;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.server.processors.AnnotateGenesFromEnsemblBiomart;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.server.processors.CalculateCisDistance;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.server.processors.ConvertCMorganToBP_MMus;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.server.processors.FilterByCategory;
public class ProcessorRegistry {
private static Set<DataSetProcessorFactory> factories;
public static void initFactories() {
factories = new HashSet<DataSetProcessorFactory>();
factories.add(new AnnotateGenesFromEnsemblBiomart());
factories.add(new ConvertCMorganToBP_MMus());
factories.add(new CalculateCisDistance());
factories.add(new FilterByCategory());
}
public static Set<DataSetProcessorFactory> getFactoriesFor(List<ColumnForDataSetLayer> columns) {
if (factories == null)
initFactories();
Set<DataSetProcessorFactory> returnme = new HashSet<DataSetProcessorFactory>();
for (DataSetProcessorFactory factory : factories) {
if (factory.mightWorkWith(columns))
returnme.add(factory);
}
return returnme;
}
}