## org.biojava.bio.seq.io
Class SmartSequenceBuilder

    java.lang.Object
      org.biojava.bio.seq.io.SequenceBuilderBase
          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`