Class ReftableReader

java.lang.Object
org.eclipse.jgit.internal.storage.reftable.Reftable
org.eclipse.jgit.internal.storage.reftable.ReftableReader
All Implemented Interfaces:
AutoCloseable

public class ReftableReader extends Reftable implements AutoCloseable
Reads a reftable formatted file.

ReftableReader is not thread-safe. Concurrent readers need their own instance to read from the same file.

  • Constructor Details

    • ReftableReader

      public ReftableReader(BlockSource src)
      Initialize a new reftable reader.
      Parameters:
      src - the file content to read.
  • Method Details

    • blockSize

      public int blockSize() throws IOException
      Get the block size in bytes chosen for this file by the writer.
      Returns:
      the block size in bytes chosen for this file by the writer. Most reads from the BlockSource will be aligned to the block size.
      Throws:
      IOException - file cannot be read.
    • hasObjectMap

      public boolean hasObjectMap() throws IOException
      Description copied from class: Reftable
      Whether this reftable can do a fast SHA1 => ref lookup
      Specified by:
      hasObjectMap in class Reftable
      Returns:
      whether this reftable can do a fast SHA1 => ref lookup.
      Throws:
      IOException - on I/O problems.
    • minUpdateIndex

      public long minUpdateIndex() throws IOException
      Get the minimum update index for ref entries that appear in this reftable.
      Specified by:
      minUpdateIndex in class Reftable
      Returns:
      the minimum update index for ref entries that appear in this reftable.
      Throws:
      IOException - file cannot be read.
    • maxUpdateIndex

      public long maxUpdateIndex() throws IOException
      Get the maximum update index for ref entries that appear in this reftable.
      Specified by:
      maxUpdateIndex in class Reftable
      Returns:
      the maximum update index for ref entries that appear in this reftable.
      Throws:
      IOException - file cannot be read.
    • allRefs

      public RefCursor allRefs() throws IOException
      Description copied from class: Reftable
      Seek to the first reference, to iterate in order.
      Specified by:
      allRefs in class Reftable
      Returns:
      cursor to iterate.
      Throws:
      IOException - if references cannot be read.
    • seekRef

      public RefCursor seekRef(String refName) throws IOException
      Description copied from class: Reftable
      Seek to a reference.

      This method will seek to the reference refName. If present, the returned cursor will iterate exactly one entry. If not found, an empty cursor is returned.

      Specified by:
      seekRef in class Reftable
      Parameters:
      refName - reference name.
      Returns:
      cursor to iterate; empty cursor if no references match.
      Throws:
      IOException - if references cannot be read.
    • seekRefsWithPrefix

      public RefCursor seekRefsWithPrefix(String prefix) throws IOException
      Description copied from class: Reftable
      Seek references with prefix.

      The method will seek all the references starting with prefix as a prefix. If no references start with this prefix, an empty cursor is returned.

      Specified by:
      seekRefsWithPrefix in class Reftable
      Parameters:
      prefix - prefix to find.
      Returns:
      cursor to iterate; empty cursor if no references match.
      Throws:
      IOException - if references cannot be read.
    • byObjectId

      public RefCursor byObjectId(AnyObjectId id) throws IOException
      Description copied from class: Reftable
      Match references pointing to a specific object.
      Specified by:
      byObjectId in class Reftable
      Parameters:
      id - object to find.
      Returns:
      cursor to iterate; empty cursor if no references match.
      Throws:
      IOException - if references cannot be read.
    • allLogs

      public LogCursor allLogs() throws IOException
      Description copied from class: Reftable
      Seek reader to read log records.
      Specified by:
      allLogs in class Reftable
      Returns:
      cursor to iterate; empty cursor if no logs are present.
      Throws:
      IOException - if logs cannot be read.
    • seekLog

      public LogCursor seekLog(String refName, long updateIndex) throws IOException
      Description copied from class: Reftable
      Seek to an update index in a reference's log.
      Specified by:
      seekLog in class Reftable
      Parameters:
      refName - exact name of the reference whose log to read.
      updateIndex - most recent index to return first in the log cursor. Log records at or before updateIndex will be returned.
      Returns:
      cursor to iterate; empty cursor if no logs match.
      Throws:
      IOException - if logs cannot be read.
    • size

      public long size() throws IOException
      Get size of the reftable, in bytes.
      Returns:
      size of the reftable, in bytes.
      Throws:
      IOException - size cannot be obtained.
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Throws:
      IOException