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;
022    
023    import java.util.Properties;
024    import uk.ac.roslin.ensembl.dao.factory.DAOFactory;
025    import uk.ac.roslin.ensembl.exception.DAOException;
026    
027    
028    public abstract class DBBaseDAO {
029    
030        protected DAOFactory daoFactory = null;
031        protected Properties configuration = null;
032    
033        public DBBaseDAO() {
034        }
035    
036        /**
037         * Constructor for (subclasses of) this class. Takes configuration from
038         * the parent DBDAOFactory
039         * @param inFactory the DAOFactory that constructs the DAO Object
040         */
041        public DBBaseDAO(DAOFactory inFactory) throws DAOException {
042            if (inFactory==null) {
043                throw new DAOException ("No DAOFactory to initialize DBDAO");
044            }
045            this.setFactory(inFactory);
046        }
047    
048        /**
049         * Constructor for (subclasses of) this class. Takes configuration from
050         * a Properties File.
051         * @param inConfiguration Properties for connection
052         */
053        public DBBaseDAO(Properties inConfiguration) throws DAOException  {
054            if (inConfiguration==null) {
055                throw new DAOException ("No Configuration to initialize DBDAO");
056            }
057            this.setConfiguration(inConfiguration);
058        }
059    
060    
061        public DAOFactory getFactory() {
062            return this.daoFactory;
063        }
064    
065        public void setConfiguration(Properties inConfiguration) {
066            this.configuration = inConfiguration;
067        }
068    
069        public void setFactory(DAOFactory factory) {
070            this.daoFactory=factory;
071            if(this.daoFactory!=null) {
072                this.setConfiguration(this.daoFactory.getConfiguration());
073            }
074        }
075      
076      
077    
078    }