org.biojava.bio.seq.io
Class SmartSequenceBuilder

java.lang.Object
  extended by org.biojava.bio.seq.io.SequenceBuilderBase
      extended by org.biojava.bio.seq.io.SmartSequenceBuilder
All Implemented Interfaces:
SeqIOListener, SequenceBuilder

public class SmartSequenceBuilder
extends SequenceBuilderBase

Basic SequenceBuilder implementation which accumulates all notified information and chooses a sequence implementation suited to the size of the sequence. This may or may not bit-encode the symbols (using PackedSymbolList), and may or may not store the symbols in multiple fixed-length chunks (using ChunkedSymbolList).

More functionality is offered by SimpleRichSequenceBuilder, Use of this class is prefered.

Author:
David Huen, Matthew Pocock

Field Summary
static SequenceBuilderFactory BIT_PACKED
           
static SequenceBuilderFactory FACTORY
           
 
Fields inherited from class org.biojava.bio.seq.io.SequenceBuilderBase
annotation, ERROR_FEATURES_PROPERTY, name, seq, uri
 
Method Summary
 void addSymbols(Alphabet alpha, Symbol[] syms, int pos, int len)
          Notify the listener of symbol data.
 Sequence makeSequence()
          Return the Sequence object which has been constructed by this builder.
 
Methods inherited from class org.biojava.bio.seq.io.SequenceBuilderBase
addFeatureProperty, addProperty, addSequenceProperty, endFeature, endSequence, setName, setURI, startFeature, startSequence
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FACTORY

public static final SequenceBuilderFactory FACTORY

BIT_PACKED

public static final SequenceBuilderFactory BIT_PACKED
Method Detail

addSymbols

public void addSymbols(Alphabet alpha,
                       Symbol[] syms,
                       int pos,
                       int len)
                throws IllegalAlphabetException
Description copied from interface: SeqIOListener
Notify the listener of symbol data. All symbols passed to this method are guarenteed to be contained within the specified alphabet. Generally all calls to a given Listener should have the same alphabet -- if not, the listener implementation is likely to throw an exception

Specified by:
addSymbols in interface SeqIOListener
Specified by:
addSymbols in class SequenceBuilderBase
Parameters:
alpha - The alphabet of the symbol data
syms - An array containing symbols
pos - The start offset of valid data within the array
len - The number of valid symbols in the array
Throws:
IllegalAlphabetException - if we can't cope with this alphabet.

makeSequence

public Sequence makeSequence()
                      throws BioException
Description copied from interface: SequenceBuilder
Return the Sequence object which has been constructed by this builder. This method is only expected to succeed after the endSequence() notifier has been called.

Specified by:
makeSequence in interface SequenceBuilder
Overrides:
makeSequence in class SequenceBuilderBase
Throws:
BioException