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 * Created on 01-21-2010
021 *
022 * @author Richard Holland
023 *
024 *
025 */
026 package org.biojava3.core.sequence.template;
027
028 import java.util.List;
029 import java.util.Set;
030
031 import org.biojava3.core.exceptions.CompoundNotFoundError;
032
033 public interface CompoundSet<C extends Compound> {
034
035 /**
036 * Returns the maximum size of a compound String this set holds
037 */
038 public int getMaxSingleCompoundStringLength();
039
040 /**
041 * Returns true if all String representations of Compounds are of the
042 * same length.
043 */
044 public boolean isCompoundStringLengthEqual();
045
046 /**
047 * Return null if not recognised. Throw IllegalArgumentException if string
048 * is longer than maximum allowed by {@link #getStringForCompound(Compound)}.
049 */
050 public C getCompoundForString(String string);
051
052 public String getStringForCompound(C compound);
053
054 public boolean compoundsEquivalent(C compoundOne, C compoundTwo);
055
056 public void verifySequence(Sequence<C> sequence) throws CompoundNotFoundError;
057
058 public Set<C> getEquivalentCompounds(C compound);
059
060 public boolean hasCompound(C compound);
061
062 public List<C> getAllCompounds();
063
064 boolean isComplementable();
065 }