001/**
002 * Copyright (C) 2010-2015 The Roslin Institute <contact andy.law@roslin.ed.ac.uk>
003 *
004 * This file is part of JEnsembl: a Java API to Ensembl data sources developed by the
005 * Bioinformatics Group at The Roslin Institute, The Royal (Dick) School of
006 * Veterinary Studies, University of Edinburgh.
007 *
008 * Project hosted at: http://jensembl.sourceforge.net
009 *
010 * This is free software: you can redistribute it and/or modify
011 * it under the terms of the GNU General Public License (version 3) as published by
012 * the Free Software Foundation.
013 *
014 * This software is distributed in the hope that it will be useful,
015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017 * GNU General Public License for more details.
018 *
019 * You should have received a copy of the GNU General Public License
020 * in this software distribution. If not, see: http://opensource.org/licenses/gpl-3.0.html
021 */
022package uk.ac.roslin.ensembl.dao.database.factory;
023
024
025
026import uk.ac.roslin.ensembl.config.EnsemblComparaDivision;
027import uk.ac.roslin.ensembl.dao.database.compara.DBHomologyDAO;
028import uk.ac.roslin.ensembl.dao.factory.DAOComparaFactory;
029import uk.ac.roslin.ensembl.exception.DAOException;
030import uk.ac.roslin.ensembl.model.database.ComparisonDatabase;
031
032public 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}