Make JournalSegmentWriter.getNextIndex() final 46/110746/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 15 Mar 2024 10:11:11 +0000 (11:11 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 15 Mar 2024 10:12:47 +0000 (11:12 +0100)
We have duplicated code between the two implementations. Centralize it
to the common superclass.

JIRA: CONTROLLER-2098
Change-Id: I84b1a1d716c2ccbaaf2f75e3728bcbad0aa05ec6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
atomix-storage/src/main/java/io/atomix/storage/journal/FileChannelJournalSegmentWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentWriter.java
atomix-storage/src/main/java/io/atomix/storage/journal/MappedJournalSegmentWriter.java

index 5f146c7f8611f41c3960de8af284d401ee93861a..c4423d3c92951fba652f138ae230e40dfcd86eaf 100644 (file)
@@ -151,15 +151,6 @@ final class FileChannelJournalSegmentWriter<E> extends JournalSegmentWriter<E> {
     return lastEntry;
   }
 
-  @Override
-  long getNextIndex() {
-    if (lastEntry != null) {
-      return lastEntry.index() + 1;
-    } else {
-      return firstIndex;
-    }
-  }
-
   @Override
   @SuppressWarnings("unchecked")
   <T extends E> Indexed<T> append(T entry) {
index 8ddaaae3c62acc57d517adb5d9b43cab97d89efa..ae3c0b5058ec74dce39c9edde962d232bf06a6fa 100644 (file)
@@ -72,7 +72,10 @@ abstract sealed class JournalSegmentWriter<E> permits FileChannelJournalSegmentW
      *
      * @return The next index to be written.
      */
-    abstract long getNextIndex();
+    final long getNextIndex() {
+        final Indexed<?> lastEntry;
+        return (lastEntry = getLastEntry()) != null ? lastEntry.index() + 1 : firstIndex;
+    }
 
     /**
      * Appends an entry to the journal.
index ffc45dcfe75c3d5d4969b81b910b53f0de00014d..76080c583d43d2fe34013647fba43aeb95ef8ad6 100644 (file)
@@ -154,15 +154,6 @@ final class MappedJournalSegmentWriter<E> extends JournalSegmentWriter<E> {
     return lastEntry;
   }
 
-  @Override
-  long getNextIndex() {
-    if (lastEntry != null) {
-      return lastEntry.index() + 1;
-    } else {
-      return firstIndex;
-    }
-  }
-
   @Override
   @SuppressWarnings("unchecked")
   <T extends E> Indexed<T> append(T entry) {