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.coreaccess;
022    
023    import java.util.HashMap;
024    import org.apache.ibatis.session.SqlSession;
025    import uk.ac.roslin.ensembl.dao.coreaccess.TranslationDAO;
026    import uk.ac.roslin.ensembl.datasourceaware.core.DATranslation;
027    import uk.ac.roslin.ensembl.dao.database.factory.DBDAOCollectionCoreFactory;
028    import uk.ac.roslin.ensembl.dao.database.factory.DBDAOSingleSpeciesCoreFactory;
029    import uk.ac.roslin.ensembl.dao.factory.DAOCollectionCoreFactory;
030    import uk.ac.roslin.ensembl.dao.factory.DAOSingleSpeciesCoreFactory;
031    import uk.ac.roslin.ensembl.mapper.core.TranslationMapper;
032    import uk.ac.roslin.ensembl.exception.DAOException;
033    import uk.ac.roslin.ensembl.model.core.Translation;
034    
035    /**
036     *
037     * @author tpaterso
038     */
039    public class DBTranslationDAO extends DBCoreObjectDAO implements TranslationDAO  {
040    
041        public DBTranslationDAO()  {
042            super();
043        }
044    
045        public DBTranslationDAO(DAOSingleSpeciesCoreFactory factory) {
046    
047            super(factory);
048        }
049    
050        public DBTranslationDAO(DAOCollectionCoreFactory factory) {
051            super(factory);
052    
053        }
054    
055        @Override
056        public DATranslation getTranslationByTranscriptID(Integer id) throws DAOException {
057    
058            if (id == null) {
059                return null;
060            }
061    
062            DATranslation out = null;
063    
064    
065            HashMap parameters = new HashMap();
066            parameters.put("transcriptID", id);
067    
068            SqlSession session = null;
069    
070            try {
071                session = this.getFactory().getNewSqlSession();
072                TranslationMapper mapper = session.getMapper(TranslationMapper.class);
073                out = mapper.getTranslationByTranscriptID(parameters);
074            } catch (Exception e) {
075                throw new DAOException("Failed to call getTranslationByTranscriptID", e);
076            } finally {
077                if (session != null) {
078                    session.close();
079                }
080            }
081    
082            if (out != null) {
083                out.setDaoFactory(daoFactory);
084                out.setSpecies(species);
085            }
086    
087            return out;
088        }
089    
090    }