View Javadoc
1   /*
2    * Copyright (C) 2017, Google Inc. and others
3    *
4    * This program and the accompanying materials are made available under the
5    * terms of the Eclipse Distribution License v. 1.0 which is available at
6    * https://www.eclipse.org/org/documents/edl-v10.php.
7    *
8    * SPDX-License-Identifier: BSD-3-Clause
9    */
10  
11  package org.eclipse.jgit.internal.storage.reftable;
12  
13  import java.io.IOException;
14  
15  import org.eclipse.jgit.annotations.Nullable;
16  import org.eclipse.jgit.lib.ReflogEntry;
17  
18  /**
19   * Iterator over logs inside a
20   * {@link org.eclipse.jgit.internal.storage.reftable.Reftable}.
21   */
22  public abstract class LogCursor implements AutoCloseable {
23  	/**
24  	 * Check if another log record is available.
25  	 *
26  	 * @return {@code true} if there is another result.
27  	 * @throws java.io.IOException
28  	 *             logs cannot be read.
29  	 */
30  	public abstract boolean next() throws IOException;
31  
32  	/**
33  	 * Get name of the current reference.
34  	 *
35  	 * @return name of the current reference.
36  	 */
37  	public abstract String getRefName();
38  
39  	/**
40  	 * Get identifier of the transaction that created the log record.
41  	 *
42  	 * @return identifier of the transaction that created the log record.
43  	 */
44  	public abstract long getUpdateIndex();
45  
46  	/**
47  	 * Get current log entry.
48  	 *
49  	 * @return current log entry. Maybe null if we are producing deletions.
50  	 */
51  	@Nullable
52  	public abstract ReflogEntry getReflogEntry();
53  
54  	/** {@inheritDoc} */
55  	@Override
56  	public abstract void close();
57  }