Class ChunkModel
- java.lang.Object
-
- ghidra.framework.main.logviewer.model.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 theChunkReader
. The model is responsible for handling all interaction with the list of chunks.
-
-
Field Summary
Fields Modifier and Type Field Description int
MAX_VISIBLE_CHUNKS
int
NUM_LINES
long
selectedByteEnd
long
selectedByteStart
-
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.
-
-
-
Field Detail
-
selectedByteStart
public long selectedByteStart
-
selectedByteEnd
public long selectedByteEnd
-
NUM_LINES
public final int NUM_LINES
- See Also:
- Constant Field Values
-
MAX_VISIBLE_CHUNKS
public final int MAX_VISIBLE_CHUNKS
- See Also:
- Constant Field Values
-
-
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 interfacejava.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 theChunkModel
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:
-
-