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    package uk.ac.roslin.ensembl.datasourceaware.compara;
021    
022    import java.util.List;
023    import java.util.TreeSet;
024    import uk.ac.roslin.ensembl.datasourceaware.core.DAGene;
025    import uk.ac.roslin.ensembl.model.compara.HomologyAlignmentProperties;
026    import uk.ac.roslin.ensembl.model.compara.HomologyType;
027    import uk.ac.roslin.ensembl.model.core.Species;
028    import uk.ac.roslin.ensembl.model.relationship.InverseBinaryRelationshipView;
029    
030    public  class InverseHomologyPairRelationshipView
031            extends DAHomologyPairRelationship
032            implements InverseBinaryRelationshipView<DAHomologyPairRelationship> {
033    
034        DAHomologyPairRelationship originalHPR;
035    
036        public InverseHomologyPairRelationshipView(DAHomologyPairRelationship original) {
037            originalHPR = original;
038        }
039    
040        @Override
041        public HomologyAlignmentProperties getSourceProperties() {
042            return this.originalHPR.getTargetProperties();
043        }
044    
045        @Override
046        public HomologyAlignmentProperties getTargetProperties() {
047            return this.originalHPR.getSourceProperties();
048        }
049    
050        @Override
051        public DAGene getSource() {
052            return this.originalHPR.getTarget();
053        }
054    
055        @Override
056        public DAGene getTarget() {
057            return this.originalHPR.getSource();
058        }
059    
060        @Override
061        public DAHomologyPairRelationship getBinaryRelationship() {
062            return this.originalHPR;
063        }
064    
065        @Override
066        public TreeSet<DAGene> getMembers() {
067            return this.originalHPR.getMembers();
068        }
069    
070        @Override
071        public List<Species> getSpecies() {
072            return this.originalHPR.getSpecies();
073        }
074    
075        @Override
076        public HomologyType getType() {
077            return this.originalHPR.getType();
078        }
079    
080        @Override
081        public HomologyType getRelationshipType() {
082            return this.originalHPR.getRelationshipType();
083        }
084    
085        @Override
086        public String getLastCommonAncestor() {
087            return this.originalHPR.getLastCommonAncestor();
088        }
089    }