Reimplement UnsignedLongRangeSet
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / FrontendHistoryMetadataBuilder.java
index eedabddf801a85baeca6738a828610b154c5e4f6..0dd3c48f6c969c2ebfc0fe1cea67cc78ba22f972 100644 (file)
@@ -10,9 +10,6 @@ package org.opendaylight.controller.cluster.datastore;
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.collect.Range;
-import com.google.common.collect.RangeSet;
-import com.google.common.collect.TreeRangeSet;
 import com.google.common.primitives.UnsignedLong;
 import java.util.HashMap;
 import java.util.Map;
@@ -21,28 +18,29 @@ import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
 import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier;
 import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
 import org.opendaylight.controller.cluster.datastore.persisted.FrontendHistoryMetadata;
+import org.opendaylight.controller.cluster.datastore.utils.UnsignedLongSet;
 import org.opendaylight.yangtools.concepts.Builder;
 import org.opendaylight.yangtools.concepts.Identifiable;
 
 final class FrontendHistoryMetadataBuilder implements Builder<FrontendHistoryMetadata>,
         Identifiable<LocalHistoryIdentifier> {
 
-    private final Map<UnsignedLong, Boolean> closedTransactions;
-    private final RangeSet<UnsignedLong> purgedTransactions;
-    private final LocalHistoryIdentifier identifier;
+    private final @NonNull Map<UnsignedLong, Boolean> closedTransactions;
+    private final @NonNull UnsignedLongSet purgedTransactions;
+    private final @NonNull LocalHistoryIdentifier identifier;
 
     private boolean closed;
 
     FrontendHistoryMetadataBuilder(final LocalHistoryIdentifier identifier) {
         this.identifier = requireNonNull(identifier);
-        this.purgedTransactions = TreeRangeSet.create();
-        this.closedTransactions = new HashMap<>(2);
+        purgedTransactions = UnsignedLongSet.of();
+        closedTransactions = new HashMap<>(2);
     }
 
     FrontendHistoryMetadataBuilder(final ClientIdentifier clientId, final FrontendHistoryMetadata meta) {
         identifier = new LocalHistoryIdentifier(clientId, meta.getHistoryId(), meta.getCookie());
         closedTransactions = new HashMap<>(meta.getClosedTransactions());
-        purgedTransactions = TreeRangeSet.create(meta.getPurgedTransactions());
+        purgedTransactions = UnsignedLongSet.of(meta.getPurgedTransactions());
         closed = meta.isClosed();
     }
 
@@ -54,7 +52,7 @@ final class FrontendHistoryMetadataBuilder implements Builder<FrontendHistoryMet
     @Override
     public FrontendHistoryMetadata build() {
         return new FrontendHistoryMetadata(identifier.getHistoryId(), identifier.getCookie(), closed,
-            closedTransactions, purgedTransactions);
+            closedTransactions, purgedTransactions.toRangeSet());
     }
 
     void onHistoryClosed() {
@@ -71,9 +69,9 @@ final class FrontendHistoryMetadataBuilder implements Builder<FrontendHistoryMet
     }
 
     void onTransactionPurged(final TransactionIdentifier txId) {
-        final UnsignedLong id = UnsignedLong.fromLongBits(txId.getTransactionId());
-        closedTransactions.remove(id);
-        purgedTransactions.add(Range.closedOpen(id, UnsignedLong.ONE.plus(id)));
+        final long txidBits = txId.getTransactionId();
+        closedTransactions.remove(UnsignedLong.fromLongBits(txidBits));
+        purgedTransactions.add(txidBits);
     }
 
     /**