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    
022    package uk.ac.roslin.ensembl.model.database;
023    
024    import java.util.HashMap;
025    import java.util.List;
026    import java.util.Set;
027    import uk.ac.roslin.ensembl.exception.DAOException;
028    import uk.ac.roslin.ensembl.model.ObjectType;
029    import uk.ac.roslin.ensembl.model.core.Chromosome;
030    import uk.ac.roslin.ensembl.model.core.CoordinateSystem;
031    import uk.ac.roslin.ensembl.model.core.Species;
032    
033    /**
034     *
035     * @author tpaterso
036     */
037    public interface CollectionCoreDatabase  extends CollectionDatabase, CoreDatabase {
038    
039        public Object getCoreFactory(Species species) ;
040    
041        //note these methods mirror the ones in SingleSpeciesCoreDatabase
042        //but takes the required Species parameter
043    
044        public CoordinateSystem getChromosomeLevelCS(Species species) throws DAOException;
045    
046        public CoordinateSystem getSequenceLevelCS(Species species) throws DAOException;
047    
048        public CoordinateSystem getTopLevelCS(Species species) throws DAOException;
049    
050        public CoordinateSystem getCSByID(Species species, Integer id) throws DAOException ;
051    
052        public CoordinateSystem getBuildCoordSystem(Species species, String featureType) throws DAOException;
053    
054        public Set<? extends CoordinateSystem> getCSForFeature(Species sp, ObjectType feature) throws DAOException ;
055    
056        public void setBuildLevels(Species species, HashMap<String,String> keyedValues);
057    
058        public String getBuildLevel(Species species, String featureKey) throws DAOException ;
059    
060        public List<? extends ObjectType> getFeaturesForCS(Species sp, CoordinateSystem coordSys) throws DAOException;
061    
062        public Integer getMaxLengthForFeature(Species sp, ObjectType feature, CoordinateSystem cs) throws DAOException ;
063    
064        public void addFeatureCS(String featureType, Integer csID, Integer maxLength, Species sp) ;
065        
066        public Chromosome getChromosomeByName(Species species, String name) throws DAOException ;
067    
068        public List<? extends Chromosome> getChromosomes(Species species) throws DAOException ;
069        
070    }