package org.genedb.crawl.mappers; import java.util.List; import org.apache.ibatis.annotations.Param; import org.genedb.crawl.model.Coordinates; import org.genedb.crawl.model.Cvterm; import org.genedb.crawl.model.Dbxref; import org.genedb.crawl.model.Feature; import org.genedb.crawl.model.FeatureRelationship; import org.genedb.crawl.model.Orthologue; import org.genedb.crawl.model.Property; import org.genedb.crawl.model.Gene; import org.genedb.crawl.model.LocatedFeature; import org.genedb.crawl.model.Pub; import org.genedb.crawl.model.Synonym; import org.genedb.crawl.model.Transcript; public interface FeatureMapper { Feature get( @Param("uniqueName") String uniqueName, @Param("name") String name, @Param("organism_id") Integer organism_id, @Param("type") String type); Feature getWithSynonym( @Param("uniqueName") String uniqueName, @Param("name") String name, @Param("organism_id") Integer organism_id, @Param("type") String type); List<Property> properties(Feature feature); List<Cvterm> terms (Feature feature); List<Coordinates> coordinates(Feature feature); List<Synonym> synonyms(Feature feature); List<Pub> pubs (Feature feature); List<LocatedFeature> domains (Feature feature); List<Dbxref> dbxrefs (Feature feature); List<Orthologue> orthologues (Feature feature); void delete(Feature feature); // LocatedFeature getOfType( // @Param("uniqueName") String uniqueName, // @Param("organism_id") Integer organism_id, // @Param("name") String name, // @Param("type") String type); List<Transcript> transcripts(@Param("gene") Gene gene, @Param("exons") boolean exons); List<Feature> parents(@Param("feature") Feature feature, @Param("relationships") List<Cvterm> relationships); List<Feature> children(@Param("feature") Feature feature, @Param("relationships") List<Cvterm> relationships ); }