001    /**
002     * Copyright (C) 2011 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.model.relationship;
022    
023    import uk.ac.roslin.ensembl.model.IdentifiableObject;
024    
025    public interface BinaryRelationship<CLAZZ extends IdentifiableObject>
026            extends GroupRelationship<CLAZZ> {
027    
028         /**
029         * sets the  IdentifiableObject source in the relationship
030         * @param source an IdentifiableObject reference
031         */
032        public  void setSource(CLAZZ source);
033    
034         /**
035         * Sets the IdentifiableObject target in the relationship
036         * @param target The target IdentifiableObject in the relationship
037         */
038        public  void setTarget(CLAZZ target);
039    
040    
041        /**
042         * Returns the source Attributable in the relationship
043         * @return IdentifiableObject reference
044         */
045        public  IdentifiableObject getSource() ;
046    
047        /**
048         * Returns the target IdentifiableObject in the relationship
049         * @return IdentifiableObject target reference
050         */
051        public  IdentifiableObject getTarget();
052    
053    }