001    /**
002     * Copyright (C) 2010 The Roslin Institute <contact andy.law@roslin.ed.ac.uk>
003     *
004     * This file is part of the Ensembl Java API demonstration project developed by the
005     * Bioinformatics Group at The Roslin Institute, The Royal (Dick) School of
006     * Veterinary Studies, University of Edinburgh.
007     *
008     * This is free software: you can redistribute it and/or modify
009     * it under the terms of the GNU General Public License (version 3) as published by
010     * the Free Software Foundation.
011     *
012     * This software is distributed in the hope that it will be useful,
013     * but WITHOUT ANY WARRANTY; without even the implied warranty of
014     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
015     * GNU General Public License for more details.
016     *
017     * You should have received a copy of the GNU General Public License
018     * in this software distribution. If not, see <http://www.gnu.org/licenses/gpl-3.0.html/>.
019     */
020    
021    package uk.ac.roslin.ensembl.model.core;
022    
023    import java.util.Collection;
024    import java.util.List;
025    import uk.ac.roslin.ensembl.config.EnsemblComparaDivision;
026    import uk.ac.roslin.ensembl.model.compara.HomologyPairRelationship;
027    
028    
029    public interface Gene  extends Feature {
030    
031        public String getDescription() ;
032    
033        public Analysis getAnalysis() ;
034    
035        public String getBiotype() ;
036    
037        public Transcript getCanonicalTranscript() ;
038    
039        public Translation getCanonicalTranslation() ;
040    
041        public Collection<? extends Transcript> getTranscripts();
042    
043        public List<? extends HomologyPairRelationship> getHomologies() ;
044    
045        public List<? extends HomologyPairRelationship> getHomologies(Species sp) ;
046    
047        public List<? extends HomologyPairRelationship> getHomologies(EnsemblComparaDivision speciesGroup) ;
048    
049        public List<? extends HomologyPairRelationship> getHomologies(EnsemblComparaDivision speciesGroup, Species sp) ;
050    
051        //this shouldnt be in this interface - but in some view interface
052        //however we do need to be able to do this, for drawing application code
053    
054        public List<? extends HomologyPairRelationship> getHomologiesWithoutLazyLoad();
055    
056    }