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.dao.database.factory;
022    
023    
024    
025    import uk.ac.roslin.ensembl.config.EnsemblComparaDivision;
026    import uk.ac.roslin.ensembl.dao.database.DBComparisonDatabase;
027    import uk.ac.roslin.ensembl.dao.database.compara.DBHomologyDAO;
028    import uk.ac.roslin.ensembl.dao.factory.DAOComparaFactory;
029    import uk.ac.roslin.ensembl.exception.DAOException;
030    import uk.ac.roslin.ensembl.model.database.ComparisonDatabase;
031    
032    public class DBDAOComparaFactory extends DBDAOFactory implements DAOComparaFactory {
033    
034        public DBDAOComparaFactory()   {
035            super();
036        }
037        public DBDAOComparaFactory(ComparisonDatabase database)  throws DAOException {
038            super(database);
039    
040        }
041    
042        //want to only have a singleton, so the localGeneCache works
043        DBHomologyDAO dbHomologyDAO = null;
044    
045        @Override
046        public ComparisonDatabase getDatabase() {
047            return (ComparisonDatabase) this.database;
048        }
049    
050        @Override
051        public DBHomologyDAO getHomologyDAO() throws DAOException {
052            if (dbHomologyDAO == null) {
053                dbHomologyDAO = new DBHomologyDAO(this);
054            }
055            return dbHomologyDAO;
056        }
057    
058        @Override
059        public EnsemblComparaDivision getComparaDivision() {
060            return this.getDatabase().getComparisonDivision();
061        }
062    }