Bump versions 9.0.4-SNAPSHOT
[controller.git] / atomix-storage / src / main / java / io / atomix / storage / journal / SegmentedJournal.java
index d143ee42fd843cbb44b5cf5bc0bc221435a8089a..a3cb3ad29c68ae68f09a80118fcc1570d6657c00 100644 (file)
@@ -19,19 +19,25 @@ package io.atomix.storage.journal;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.base.MoreObjects;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.controller.raft.journal.FromByteBufMapper;
+import org.opendaylight.controller.raft.journal.RaftJournal;
+import org.opendaylight.controller.raft.journal.ToByteBufMapper;
 
 /**
- * A {@link Journal} implementation based on a {@link ByteBufJournal}.
+ * A {@link Journal} implementation based on a {@link RaftJournal}.
  */
 public final class SegmentedJournal<E> implements Journal<E> {
-    private final SegmentedJournalWriter<E> writer;
-    private final ByteBufMapper<E> mapper;
-    private final ByteBufJournal journal;
+    private final @NonNull SegmentedJournalWriter<E> writer;
+    private final @NonNull FromByteBufMapper<E> readMapper;
+    private final @NonNull RaftJournal journal;
 
-    public SegmentedJournal(final ByteBufJournal journal, final ByteBufMapper<E> mapper) {
+    public SegmentedJournal(final RaftJournal journal, final FromByteBufMapper<E> readMapper,
+            final ToByteBufMapper<E> writeMapper) {
         this.journal = requireNonNull(journal, "journal is required");
-        this.mapper = requireNonNull(mapper, "mapper cannot be null");
-        writer = new SegmentedJournalWriter<>(journal.writer(), mapper);
+        this.readMapper = requireNonNull(readMapper, "readMapper cannot be null");
+        writer = new SegmentedJournalWriter<>(journal.writer(),
+            requireNonNull(writeMapper, "writeMapper cannot be null"));
     }
 
     @Override
@@ -67,7 +73,7 @@ public final class SegmentedJournal<E> implements Journal<E> {
             case ALL -> journal.openReader(index);
             case COMMITS -> journal.openCommitsReader(index);
         };
-        return new SegmentedJournalReader<>(byteReader, mapper);
+        return new SegmentedJournalReader<>(byteReader, readMapper);
     }
 
     @Override