blob: f78975af34ceef926b93da6083247ac15d2ef765 [file] [log] [blame]
/*
* Copyright (C) 2017, Google Inc. and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
* https://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package org.eclipse.jgit.internal.storage.reftable;
import java.io.IOException;
import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.lib.ReflogEntry;
/**
* Iterator over logs inside a
* {@link org.eclipse.jgit.internal.storage.reftable.Reftable}.
*/
public abstract class LogCursor implements AutoCloseable {
/**
* Check if another log record is available.
*
* @return {@code true} if there is another result.
* @throws java.io.IOException
* logs cannot be read.
*/
public abstract boolean next() throws IOException;
/**
* Get name of the current reference.
*
* @return name of the current reference.
*/
public abstract String getRefName();
/**
* Get identifier of the transaction that created the log record.
*
* @return identifier of the transaction that created the log record.
*/
public abstract long getUpdateIndex();
/**
* Get current log entry.
*
* @return current log entry. Maybe null if we are producing deletions.
*/
@Nullable
public abstract ReflogEntry getReflogEntry();
/** {@inheritDoc} */
@Override
public abstract void close();
}