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
022
023package org.biojava.bio.symbol;
024
025
026/**
027 * <p>
028 * A symbol that is not ambiguous.
029 * </p>
030 *
031 * <p>
032 * Atomic symbols are the real underlying elements that a SymbolList is meant
033 * to be composed of. DNA nucleotides are atomic, as are amino-acids. The
034 * getMatches() method should return an alphabet containing just the one Symbol.
035 * </p>
036 *
037 * <p>
038 * The Symbol instances for single codons would be instances of AtomicSymbol as
039 * they can only be represented as a Set of symbols from their alphabet that
040 * contains just that one symbol.
041 * </p>
042 *
043 * <p>
044 * AtomicSymbol instances guarantee that getMatches returns an Alphabet
045 * containing just that Symbol and each element of the List returned by
046 * getSymbols is also atomic.
047 * </p>
048 *
049 * @author Matthew Pocock
050 * @since 1.1
051 */
052public interface AtomicSymbol extends BasisSymbol {
053}