package org.genedb.web.mvc.controller.download; // //import java.text.SimpleDateFormat; //import java.util.Date; //import java.util.List; //import java.util.Map; // //import javax.servlet.ServletRequest; //import javax.servlet.http.HttpSession; // //import com.google.common.collect.Lists; //import com.sleepycat.collections.StoredMap; // //import org.apache.log4j.Logger; //import org.genedb.db.taxon.TaxonNode; ////import org.genedb.db.taxon.TaxonNodeArrayPropertyEditor; //import org.genedb.querying.core.Query; //import org.genedb.querying.core.QueryException; //import org.genedb.querying.core.QueryFactory; //import org.genedb.querying.tmpquery.GeneSummary; //import org.genedb.querying.tmpquery.TaxonQuery; //import org.genedb.web.mvc.controller.WebConstants; //import org.genedb.web.mvc.model.ResultsCacheFactory; // //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.propertyeditors.CustomDateEditor; //import org.springframework.stereotype.Controller; //import org.springframework.ui.Model; //import org.springframework.util.StringUtils; //import org.springframework.validation.BindingResult; //import org.springframework.validation.Errors; //import org.springframework.web.bind.ServletRequestDataBinder; //import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RequestMethod; //import org.springframework.web.bind.annotation.RequestParam; // // public class BaseCachingController { // //// //// switch (results.size()) { //// case 0: //// logger.debug("No results found for query"); //// model.addAttribute("taxonNodeName", taxonName); //// return "search/"+queryName; //// case 1: //// List<GeneSummary> gs = possiblyConvertList(results); //// resultsKey = cacheResults(gs, query, queryName, session.getId()); //// return "redirect:/NamedFeature?name=" + gs.get(0).getSystematicId(); //// default: //// List<GeneSummary> gs2 = possiblyConvertList(results); //// resultsKey = cacheResults(gs2, query, queryName, session.getId()); //// model.addAttribute("key", resultsKey); //// model.addAttribute("taxonNodeName", taxonName); //// logger.debug("Found results for query (Size: '"+gs2.size()+"' key: '"+resultsKey+"')- redirecting to Results controller"); //// return "redirect:/Results"; //// } //// } // // // //@Autowired // private ResultsCacheFactory resultsCacheFactory; // // public void setResultsCacheFactory(ResultsCacheFactory resultsCacheFactory) { // this.resultsCacheFactory = resultsCacheFactory; // } // // // protected List<GeneSummary> possiblyConvertList(List results) { // List<GeneSummary> gs; // Object firstItem = results.get(0); // if (firstItem instanceof GeneSummary) { // gs = results; // } else { // gs = Lists.newArrayListWithExpectedSize(results.size()); // for (Object o : results) { // gs.add(new GeneSummary((String) o)); // } // } // return gs; // } // // // protected String cacheResults(List<GeneSummary> gs, Query q, String queryName, String sessionId) { // String key = sessionId + Integer.toString(System.identityHashCode(gs)); // CHECKME // StoredMap<String, ResultEntry> map = resultsCacheFactory.getResultsCacheMap(); // ResultEntry re = new ResultEntry(); // re.numOfResults = gs.size(); // re.query = q; // re.results = gs; // re.queryName = queryName; // map.put(key, re); // return key; // } // }