package org.tgdb.webapp.action.search;
import org.tgdb.TgDbCaller;
import org.tgdb.exceptions.ApplicationException;
import java.util.Collection;
import java.util.TreeSet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.tgdb.webapp.action.TgDbAction;
public class SearchModelAction extends TgDbAction {
public String getName() {
return "SearchModelAction";
}
public boolean performAction(HttpServletRequest request, ServletContext context) throws ApplicationException {
try {
String geneName = request.getParameter("gene");
String vsName = request.getParameter("vsname");
String raName = request.getParameter("raname");
String project = request.getParameter("project");
// Fix wildcards
if (geneName!=null) {
geneName = geneName.replace('*', '%');
geneName = geneName.replace('?', '_');
geneName = "%"+geneName+"%";
}
TgDbCaller searchCaller = modelManager.getSearchCaller();
Collection models_gene = modelManager.searchByGene(geneName, searchCaller);
Collection models_ra = modelManager.searchByResearchApplication(raName, searchCaller);
Collection models_prj = modelManager.searchByProject(project, searchCaller);
Collection models = new TreeSet();
models.addAll(models_gene);
models.addAll(models_ra);
models.addAll(models_prj);
logger.debug("---------------------------------------->SearchModelAction#performAction: models = "+models.size());
request.setAttribute("models", models);
return true;
} catch (ApplicationException e) {
logger.error("---------------------------------------->SearchModelAction#performAction: Failed");
throw e;
} catch (Exception e) {
logger.error("---------------------------------------->SearchModelAction#performAction: Failed");
throw new ApplicationException("SearchModelAction", e);
}
}
}