001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021
022package org.biojavax;
023
024import org.biojava.utils.Changeable;
025
026/**
027 * Represents a cross reference to another database. Relates to the 
028 * dbxref table in BioSQL. The interface is immutable, the fields are
029 * intended to be set by the constructor.
030 * @author Mark Schreiber
031 * @author Richard Holland
032 * @see RankedCrossRef
033 * @since 1.5
034 */
035public interface CrossRef extends RichAnnotatable,Comparable,Changeable {
036    
037   /**
038     * Returns the name of the database the cross reference refers to. This
039     * would normally be a namespace name, eg. 'gb' for GenBank.
040     * @return Value of property dbname.
041     */
042    public String getDbname();
043
044    /**
045     * Returns the accession of the object that the crossref refers to.
046     * @return Value of property accession.
047     */
048    public String getAccession();
049
050    /**
051     * Returns the version of the object that the crossref refers to.
052     * @return Value of property version.
053     */
054    public int getVersion();
055    
056}
057