Class 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
    • 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 class java.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 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