2 * Copyright 2018-2021 Open Networking Foundation
3 * Copyright 2023 PANTHEON.tech, s.r.o.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 package io.atomix.storage.journal.index;
19 import java.util.Map.Entry;
20 import org.eclipse.jdt.annotation.Nullable;
23 * Journal index position.
25 public record Position(long index, int position) {
26 public Position(final Entry<Long, Integer> entry) {
27 this(entry.getKey(), entry.getValue());
30 public static @Nullable Position ofNullable(final Entry<Long, Integer> entry) {
31 return entry == null ? null : new Position(entry);