Class ChunkModel

  • All Implemented Interfaces:
    java.lang.Iterable<Chunk>

    public class ChunkModel
    extends java.lang.Object
    implements java.lang.Iterable<Chunk>
    Stores all chunks read-in by the ChunkReader. The model is responsible for handling all interaction with the list of chunks.
    • Constructor Summary

      Constructors 
      Constructor Description
      ChunkModel()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(int index, Chunk chunk)
      Adds a chunk at the given index to the model.
      void add​(Chunk chunk)
      Adds the given chunk to the model.
      void clear()
      Clears all chunks from the model.
      Chunk get​(int index)
      Returns the chunk at the given index.
      Pair getFilePositionForRow​(int row)
      Returns the start/end byte positions within the input file for the given row.
      int getNumChunks()  
      int getRowForBytePos​(long selectedByte)
      Searches the visible chunks to see if any of them contain the given byte.
      int getSize()
      Returns the number of chunks in the model.
      java.util.Iterator<Chunk> iterator()  
      Chunk remove​(int index)
      Removes the chunk at the given index from the model.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • selectedByteStart

        public long selectedByteStart
      • selectedByteEnd

        public long selectedByteEnd
    • Constructor Detail

      • ChunkModel

        public ChunkModel()
    • Method Detail

      • add

        public void add​(Chunk chunk)
        Adds the given chunk to the model.
        Parameters:
        chunk -
      • add

        public void add​(int index,
                        Chunk chunk)
        Adds a chunk at the given index to the model.
        Parameters:
        index -
        chunk -
      • remove

        public Chunk remove​(int index)
        Removes the chunk at the given index from the model.
        Parameters:
        index -
      • clear

        public void clear()
        Clears all chunks from the model.
      • getSize

        public int getSize()
        Returns the number of chunks in the model.
        Returns:
      • get

        public Chunk get​(int index)
        Returns the chunk at the given index.
        Parameters:
        index -
        Returns:
      • iterator

        public java.util.Iterator<Chunk> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Chunk>
      • getNumChunks

        public int getNumChunks()
        Returns:
      • getFilePositionForRow

        public Pair getFilePositionForRow​(int row)
        Returns the start/end byte positions within the input file for the given row. To do this we have to loop over all chunks in the ChunkModel and count the number of lines in each chunk until we get to the line (row) we're looking for. We then grab the correct value from the byteMap for that chunk line, which is the starting byte for it.
        Parameters:
        row -
        Returns:
        the byte position in the file this row corresponds to
      • getRowForBytePos

        public int getRowForBytePos​(long selectedByte)
        Searches the visible chunks to see if any of them contain the given byte. If so, returns the row in the table where it resides. Returns -1 otherwise.
        Parameters:
        selectedByte -
        Returns: