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.datasourceaware.core;
022    
023    import java.util.ArrayList;
024    import java.util.List;
025    import org.apache.log4j.Logger;
026    import uk.ac.roslin.ensembl.config.EnsemblCoreObjectType;
027    import uk.ac.roslin.ensembl.exception.DAOException;
028    import uk.ac.roslin.ensembl.model.ObjectType;
029    import uk.ac.roslin.ensembl.model.core.ProteinFeature;
030    import uk.ac.roslin.ensembl.model.core.Translation;
031    
032    /**
033     *
034     * @author tpaterso
035     */
036    //just a demo class - very simplistic implementation
037    public class DATranslation extends DACoreObject implements Translation {
038    
039        DATranscript transcript = null;
040        List<? extends ProteinFeature> proteinFeatures = null;
041        final static Logger LOGGER = Logger.getLogger(DATranslation.class);
042    
043        public List<? extends ProteinFeature> getProteinFeatures() {
044            if (proteinFeatures == null) {
045    
046                if (this.getId()==null) {
047                    return null;
048                }
049    
050                try {
051                    proteinFeatures = this.getDaoFactory().getProteinFeatureDAO().getProteinFeaturesByTranslationID(this.id);
052                } catch (DAOException dex) {
053                    LOGGER.info("failed to get Protein Features", dex);
054                } catch (Exception ex) {
055                    LOGGER.info("failed to get Protein Features", ex);
056                }
057     
058            }
059            return proteinFeatures;
060        }
061    
062        public DATranscript getTranscript() {
063            return transcript;
064        }
065    
066        public void setTranscript(DATranscript transcript) {
067            this.transcript = transcript;
068        }
069    
070        public ObjectType getType() {
071            return EnsemblCoreObjectType.translation;
072        }
073    
074    }