package de.uni_luebeck.inb.krabbenhoeft.eQTL.server.processors;
import java.util.List;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.entities.ColumnForDataSetLayer;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.entities.ColumnForDataSetLayer.ColumType;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.server.DataSetProcessor;
import de.uni_luebeck.inb.krabbenhoeft.eQTL.server.DataSetProcessorFactory;
public class FilterByCategory implements DataSetProcessorFactory {
public String getName() {
return "Filter by category";
}
public String getParameterDescription(List<ColumnForDataSetLayer> dataTypeBeforeTransformation) {
StringBuilder ret = new StringBuilder();
for (ColumnForDataSetLayer columnForDataSetLayer : dataTypeBeforeTransformation) {
if (columnForDataSetLayer.getType() != ColumType.Category)
continue;
for (String val : columnForDataSetLayer.getValues()) {
ret.append(columnForDataSetLayer.getName());
ret.append("=");
ret.append(val);
ret.append(",");
}
}
return ret.toString();
}
public DataSetProcessor configure(String parameters) {
final String[] parts = parameters.split("=");
return new FilterByCategoryProcessor(parts[0], parts[1]);
}
public boolean mightWorkWith(List<ColumnForDataSetLayer> dataTypeBeforeTransformation) {
for (ColumnForDataSetLayer columnForDataSetLayer : dataTypeBeforeTransformation) {
if (columnForDataSetLayer.getType() == ColumType.Category)
return true;
}
return false;
}
}