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