Package 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:
java.io.Serializable
,SymbolList
,Changeable
public class ChunkedSymbolList extends AbstractSymbolList implements java.io.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
Constructors Constructor Description ChunkedSymbolList(SymbolList[] chunks, int chunkSize, int length, Alphabet alpha)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 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 java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.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 interfaceSymbolList
- Returns:
- the alphabet
-
length
public int length()
Description copied from interface:SymbolList
The number of symbols in this SymbolList.- Specified by:
length
in interfaceSymbolList
- 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 interfaceSymbolList
- 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 interfaceSymbolList
- Overrides:
subList
in classAbstractSymbolList
- Parameters:
start
- the first symbol of the new SymbolListend
- the last symbol (inclusive) of the new SymbolList
-
-