## org.biojava.bio.symbol
Class ChunkedSymbolList

    java.lang.Object
      org.biojava.utils.AbstractChangeable
          org.biojava.bio.symbol.AbstractSymbolList
              org.biojava.bio.symbol.ChunkedSymbolList

All Implemented Interfaces:
  Serializable, SymbolList, Changeable

    public class ChunkedSymbolList

extends AbstractSymbolList
implements Serializable

SymbolList implementation using constant-size chunks. Each chunk provides the same number of symbols (except the last one, which may be shorter). When a request for symbols comes in, firstly the apropreate chunk is located, and then the symbols are extracted. This implementation is used in the IO package to avoid allocating and re-allocating memory when the total length of the symbol list is unknown. It can also be used when chunks are to be lazily fetched from some high-latency stoorage by implementing a single lazy-fetch SymbolList class and populating a ChunkedSymbolList with a complete tile-path of them.

Author:
  David Huen, Matthew Pocock
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.biojava.bio.symbol.AbstractSymbolList
`AbstractSymbolList.EditScreener, AbstractSymbolList.EditTranslater`

Field Summary

Fields inherited from interface org.biojava.bio.symbol.SymbolList
`EDIT, EMPTY_LIST`

Constructor Summary
`ChunkedSymbolList(SymbolList[] chunks, int chunkSize, int length, Alphabet alpha)`

Method Summary
`protected void` `finalize()`
`Alphabet` `getAlphabet()` The alphabet that this SymbolList is over.
`int` `length()` The number of symbols in this SymbolList.
`SymbolList` `subList(int start, int end)` Return a new SymbolList for the symbols start to end inclusive.
`Symbol` `symbolAt(int pos)` Return the symbol at index, counting from 1.

Methods inherited from class org.biojava.bio.symbol.AbstractSymbolList
`edit, equals, hashCode, iterator, seqString, subStr, toList, toString`

Methods inherited from class org.biojava.utils.AbstractChangeable
`addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener`

Methods inherited from class java.lang.Object
`clone, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Constructor Detail

### ChunkedSymbolList

    public ChunkedSymbolList(SymbolList[] chunks,
                             int chunkSize,
                             int length,
                             Alphabet alpha)

Method Detail

### finalize

    protected void finalize()
                     throws Throwable

  Overrides:
    `finalize` in class `Object`
  Throws:
    `Throwable`

### getAlphabet

    public Alphabet getAlphabet()

  Description copied from interface: `SymbolList`
  The alphabet that this SymbolList is over.

  Every symbol within this SymbolList is a member of this alphabet. `alphabet.contains(symbol) == true` for each symbol that is within this sequence.

  Specified by:
    `getAlphabet` in interface `SymbolList`
  Returns:
    the alphabet

### length

    public int length()

  Description copied from interface: `SymbolList`
  The number of symbols in this SymbolList.

  Specified by:
    `length` in interface `SymbolList`
  Returns:
    the length

### symbolAt

    public Symbol symbolAt(int pos)

  Description copied from interface: `SymbolList`
  Return the symbol at index, counting from 1.

  Specified by:
    `symbolAt` in interface `SymbolList`
  Parameters:
    `pos` - the offset into this SymbolList
  Returns:
    the Symbol at that index

### subList

    public SymbolList subList(int start,
                              int end)

  Description copied from interface: `SymbolList`
  Return a new SymbolList for the symbols start to end inclusive.

  The resulting SymbolList will count from 1 to (end-start + 1) inclusive, and refer to the symbols start to end of the original sequence.

  Specified by:
    `subList` in interface `SymbolList`
  Overrides:
    `subList` in class `AbstractSymbolList`
  Parameters:
    `start` - the first symbol of the new SymbolList
    `end` - the last symbol (inclusive) of the new SymbolList