org.biojava.bio.symbol
Class SimpleAlphabet

java.lang.Object
  extended byorg.biojava.utils.AbstractChangeable
      extended byorg.biojava.bio.symbol.AbstractAlphabet
          extended byorg.biojava.bio.symbol.SimpleAlphabet
All Implemented Interfaces:
Alphabet, Annotatable, Changeable, FiniteAlphabet, java.io.Serializable

public class SimpleAlphabet
extends AbstractAlphabet
implements java.io.Serializable

A simple no-frills implementation of the FiniteAlphabet interface.

Author:
Matthew Pocock
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.biojava.bio.Annotatable
Annotatable.AnnotationForwarder
 
Field Summary
protected  Annotatable.AnnotationForwarder annotationForwarder
           
 
Fields inherited from interface org.biojava.bio.symbol.Alphabet
EMPTY_ALPHABET, PARSERS, SYMBOLS
 
Fields inherited from interface org.biojava.bio.Annotatable
ANNOTATION
 
Constructor Summary
SimpleAlphabet()
           
SimpleAlphabet(java.util.Set symbols)
           
SimpleAlphabet(java.util.Set symbols, java.lang.String name)
           
SimpleAlphabet(java.lang.String name)
           
 
Method Summary
protected  void addSymbolImpl(AtomicSymbol s)
           
protected  boolean containsImpl(AtomicSymbol s)
           
 java.util.List getAlphabets()
          Return an ordered List of the alphabets which make up a compound alphabet.
 Annotation getAnnotation()
          Should return the associated annotation object.
protected  ChangeSupport getChangeSupport(ChangeType ct)
          Called to retrieve the ChangeSupport for this object
 java.lang.String getName()
          Get the name of the alphabet.
protected  AtomicSymbol getSymbolImpl(java.util.List symL)
           
 java.util.Iterator iterator()
          Retrieve an Iterator over the Symbols in this FiniteAlphabet.
 void removeSymbol(Symbol s)
          Remove a symbol from this alphabet.
 void setName(java.lang.String name)
          Assign a name to the alphabet
 int size()
          The number of symbols in the alphabet.
 
Methods inherited from class org.biojava.bio.symbol.AbstractAlphabet
addSymbol, contains, getAmbiguity, getAmbiguityImpl, getGapSymbol, getSymbol, getTokenization, putTokenization, readResolve, toString, validate
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
 

Field Detail

annotationForwarder

protected transient Annotatable.AnnotationForwarder annotationForwarder
Constructor Detail

SimpleAlphabet

public SimpleAlphabet()

SimpleAlphabet

public SimpleAlphabet(java.util.Set symbols)

SimpleAlphabet

public SimpleAlphabet(java.lang.String name)

SimpleAlphabet

public SimpleAlphabet(java.util.Set symbols,
                      java.lang.String name)
Method Detail

iterator

public java.util.Iterator iterator()
Description copied from interface: FiniteAlphabet
Retrieve an Iterator over the Symbols 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.

Specified by:
iterator in interface FiniteAlphabet
Returns:
an Iterator over the contained AtomicSymbol objects

getName

public java.lang.String getName()
Description copied from interface: Alphabet
Get the name of the alphabet.

Specified by:
getName in interface Alphabet
Returns:
the name as a string.

setName

public void setName(java.lang.String name)
Assign a name to the alphabet

Parameters:
name - the name you wish to give this alphabet

getAnnotation

public Annotation getAnnotation()
Description copied from interface: Annotatable
Should return the associated annotation object.

Specified by:
getAnnotation in interface Annotatable
Returns:
an Annotation object, never null

size

public int size()
Description copied from interface: FiniteAlphabet
The number of symbols in the alphabet.

Specified by:
size in interface FiniteAlphabet
Returns:
the size of the alphabet

containsImpl

protected boolean containsImpl(AtomicSymbol s)
Specified by:
containsImpl in class AbstractAlphabet

addSymbolImpl

protected void addSymbolImpl(AtomicSymbol s)
                      throws IllegalSymbolException,
                             ChangeVetoException
Specified by:
addSymbolImpl in class AbstractAlphabet
Throws:
IllegalSymbolException
ChangeVetoException

removeSymbol

public void removeSymbol(Symbol s)
                  throws IllegalSymbolException
Description copied from interface: FiniteAlphabet
Remove a symbol from this alphabet.

If the symbol matches multiple AtomicSymbols, then each matching symbol it will be removed.

Specified by:
removeSymbol in interface FiniteAlphabet
Parameters:
s - the Symbol to removeintGot
Throws:
IllegalSymbolException - if the symbol is null, or if for any reason it can't be removed

getAlphabets

public java.util.List getAlphabets()
Description copied from interface: Alphabet
Return an ordered List of the alphabets which make up a compound alphabet. For simple alphabets, this will return a singleton list of itself. The returned list should be immutable.

Specified by:
getAlphabets in interface Alphabet
Returns:
a List of alphabets

getSymbolImpl

protected AtomicSymbol getSymbolImpl(java.util.List symL)
                              throws IllegalSymbolException
Specified by:
getSymbolImpl in class AbstractAlphabet
Throws:
IllegalSymbolException

getChangeSupport

protected ChangeSupport getChangeSupport(ChangeType ct)
Description copied from class: AbstractChangeable
Called to retrieve the ChangeSupport for this object

Overrides:
getChangeSupport in class AbstractChangeable