package org.genedb.web.mvc.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.genedb.db.dao.CvDao;
import org.genedb.db.dao.SequenceDao;
import org.gmod.schema.mapped.Cv;
import org.gmod.schema.mapped.Feature;
import org.gmod.schema.utils.CountedName;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Required;
public class BrowseBean implements InitializingBean {
private static final int DEFAULT_LIMIT = 15;
private Cv cv;
private CvDao cvDao;
private SequenceDao sequenceDao;
private List<String> cvNames;
private int limit = DEFAULT_LIMIT;
private Map<String, Cv> cvs = new HashMap<String, Cv>();
public void afterPropertiesSet() throws Exception {
for (String cvName : cvNames)
cvs.put(cvName, cvDao.getCvByName(cvName));
}
public List<String> getPossibleMatches(String search, String cvName) {
return cvDao.getPossibleMatches(search, cvs.get(cvName), limit);
// List<String> results = new ArrayList<String>();
// results.add("a");
// results.add("b");
// results.add("c");
// return results;
}
public List<CountedName> getAllTerms() {
return cvDao.getAllTermsInCvWithCount(cv);
}
public List<Feature> getFeaturesForCvTerm(String cvTermName, String cvName) {
List<Feature> features = sequenceDao.getFeaturesByCvTermNameAndCvName(cvTermName, cvName);
return features;
}
@Required
public void setCvDao(CvDao cvDao) {
this.cvDao = cvDao;
}
public void setLimit(int limit) {
this.limit = limit;
}
@Required
public void setSequenceDao(SequenceDao sequenceDao) {
this.sequenceDao = sequenceDao;
}
public void setCvNames(List<String> cvName) {
this.cvNames = cvName;
}
}