package org.genedb.crawl.dao;
import java.util.List;
import org.biojava.bio.BioException;
import org.genedb.crawl.CrawlException;
import org.genedb.crawl.annotations.ListType;
import org.genedb.crawl.model.Dbxref;
import org.genedb.crawl.model.Feature;
import org.genedb.crawl.model.LocatedFeature;
import org.genedb.crawl.model.Property;
import org.genedb.crawl.model.Synonym;
import org.genedb.util.TranslationException;
public interface FeatureDAO {
public abstract Feature get(String uniqueName, String organism, String name, String type);
@ListType("org.genedb.crawl.model.Dbxref")
public abstract List<Dbxref> dbxrefs(String featureUniqueName, String organism, String name);
@ListType("org.genedb.crawl.model.Synonym")
public abstract List<Synonym> synonyms(String featureUniqueName, String organism, String name);
@ListType("org.genedb.crawl.model.Feature")
public abstract List<Feature> parents(String featureUniqueName, String organism, String name, String[] relationships) throws CrawlException;
@ListType("org.genedb.crawl.model.Feature")
public abstract List<Feature> children(String featureUniqueName, String organism, String name, String[] relationships) throws CrawlException;
public abstract Feature hierarchy(String uniqueName, String organism, String name, String[] relationships, Boolean includeSummaries) throws CrawlException;
@ListType("org.genedb.crawl.model.LocatedFeature")
public abstract List<LocatedFeature> locations(String feature);
@ListType("org.genedb.crawl.model.LocatedFeature")
public abstract List<LocatedFeature> domains(String featureUniqueName, String organism, String name);
@ListType("org.genedb.crawl.model.Property")
public abstract List<Property> getPolypeptideProperties(String featureUniqueName, String organism, String name) throws BioException, TranslationException;
public abstract Feature getIsoform(String featureUniqueName, String organism, String name);
}