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.datasourceaware.core;
023
024import uk.ac.roslin.ensembl.dao.factory.DAOCoreFactory;
025import uk.ac.roslin.ensembl.datasourceaware.DAAnalysis;
026import uk.ac.roslin.ensembl.model.core.Analyzed;
027
028public abstract class DAAnalyzedFeature  extends DAFeature implements Analyzed {
029    
030    private Integer analysisID;
031    
032    public DAAnalyzedFeature() {
033        super();
034    }
035
036    public DAAnalyzedFeature(DAOCoreFactory factory) {
037        super(factory);
038    }    
039    
040    @Override
041    abstract void reinitialize();
042    
043    @Override
044    public Integer getAnalysisID() {
045        this.reinitialize();
046        return analysisID;
047    }
048
049    @Override
050    public void setAnalysisID(Integer analysisID) {
051        this.analysisID = analysisID;
052    }
053
054    @Override
055    public DAAnalysis getAnalysis() {
056        if (this.getDaoFactory()==null) {
057            return null;
058        }
059        return (DAAnalysis) this.getDaoFactory().getAnalysis(this.getAnalysisID());
060    }    
061    
062}