Interface FiniteAlphabet
-
- All Superinterfaces:
Alphabet
,Annotatable
,Changeable
- All Known Implementing Classes:
AbstractAlphabet
,IntegerAlphabet.SubIntegerAlphabet
,SimpleAlphabet
,SingletonAlphabet
,SoftMaskedAlphabet
public interface FiniteAlphabet extends Alphabet
An alphabet over a finite set of Symbols.This interface makes the distinction between an alphabet over a finite (and possibly small) number of symbols and an Alphabet over an infinite (or extremely large) set of symbols. Within a FiniteAlphabet, the == operator should be sufficient to decide upon equality for all AtomicSymbol instances.
The alphabet functions as the repository of objects in the fly-weight design pattern. Only symbols within an alphabet should appear in object that claim to use the alphabet - otherwise something is in error.
- Author:
- Matthew Pocock
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.biojava.bio.Annotatable
Annotatable.AnnotationForwarder
-
-
Field Summary
-
Fields inherited from interface org.biojava.bio.symbol.Alphabet
EMPTY_ALPHABET, PARSERS, SYMBOLS
-
Fields inherited from interface org.biojava.bio.Annotatable
ANNOTATION
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addSymbol(Symbol s)
Adds a symbol to this alphabet.Iterator<Symbol>
iterator()
Retrieve an Iterator over the AtomicSymbols in this FiniteAlphabet.void
removeSymbol(Symbol s)
Remove a symbol from this alphabet.int
size()
The number of symbols in the alphabet.-
Methods inherited from interface org.biojava.bio.symbol.Alphabet
contains, getAlphabets, getAmbiguity, getGapSymbol, getName, getSymbol, getTokenization, validate
-
Methods inherited from interface org.biojava.bio.Annotatable
getAnnotation
-
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
-
-
-
-
Method Detail
-
size
int size()
The number of symbols in the alphabet.- Returns:
- the size of the alphabet
-
iterator
Iterator<Symbol> iterator()
Retrieve an Iterator over the AtomicSymbols in this FiniteAlphabet.Each AtomicSymbol as for which this.contains(as) is true will be returned exactly once by this iterator in no specified order.
- Returns:
- an Iterator over the contained AtomicSymbol objects
-
addSymbol
void addSymbol(Symbol s) throws IllegalSymbolException, ChangeVetoException
Adds a symbol to this alphabet.If the symbol matches more than one AtomicSymbol, then each symbol matching it will be added.
- Parameters:
s
- the Symbol to add- Throws:
IllegalSymbolException
- if the symbol is null, or if for any reason it can't be addedChangeVetoException
- if either the alphabet doesn't allow symbols to be added, or the change was vetoed
-
removeSymbol
void removeSymbol(Symbol s) throws IllegalSymbolException, ChangeVetoException
Remove a symbol from this alphabet.If the symbol matches multiple AtomicSymbols, then each matching symbol it will be removed.
- Parameters:
s
- the Symbol to removeintGot- Throws:
IllegalSymbolException
- if the symbol is null, or if for any reason it can't be removedChangeVetoException
- if either the alphabet doesn't allow symbols to be added, or the change was vetoed
-
-