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.bio.db;
023import java.util.Set;
024
025import org.biojavax.bio.BioEntryIterator;
026
027/**.
028 * A database of RichSequences with accessible keys and iterators over all
029 * sequences.
030 * <p>
031 * This may have several implementations with rich behaviour, but basically most
032 * of the time you will just use the interface methods to do stuff. A sequence
033 * database contains a finite number of sequences stored under unique keys.
034 *
035 * @author Matthew Pocock
036 * @author Gerald Loeffler
037 * @author Thomas Down
038 * @author Richard Holland
039 * @since 1.5
040 */
041public interface BioEntryDB extends BioEntryDBLite {
042    /**
043     * Get an immutable set of all of the IDs in the database. The ids are legal
044     * arguments to getBioEntry.
045     *
046     * @return  a Set of ids - at the moment, strings
047     */
048    public Set ids();
049    
050    /**
051     * Returns a BioEntryIterator over all BioEntrys in the database. The order
052     * of retrieval is undefined.
053     * @return a BioEntryIterator over all BioEntrys
054     */
055    public BioEntryIterator getBioEntryIterator();
056}