X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Futils%2FUnsignedLongSet.java;h=59393a3ee0c4699e06093a2e3750170625a01257;hb=99f80f27bee37bb23e345420bf14bb7bb4793c28;hp=e3fa6263e634a99078de115f7ba51314b76ebb60;hpb=1a13d6e1410df52e3b8fd9d4fe6b6e7b04490e4a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java index e3fa6263e6..59393a3ee0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java @@ -12,19 +12,15 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.MoreObjects; -import com.google.common.collect.Collections2; -import com.google.common.collect.Range; import com.google.common.collect.RangeSet; -import com.google.common.primitives.UnsignedLong; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.util.Collection; import java.util.Collections; import java.util.NavigableSet; import java.util.TreeSet; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.concepts.Mutable; +import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.concepts.WritableObjects; /** @@ -40,41 +36,29 @@ import org.opendaylight.yangtools.concepts.WritableObjects; abstract class UnsignedLongSet { @Beta @VisibleForTesting - public static final class Entry implements Comparable, Mutable { - // Note: mutable to allow efficient merges. - long lowerBits; - long upperBits; + public static final class Entry implements Comparable, Immutable { + public final long lowerBits; + public final long upperBits; private Entry(final long lowerBits, final long upperBits) { this.lowerBits = lowerBits; this.upperBits = upperBits; } - static Entry of(final long longBits) { + static @NonNull Entry of(final long longBits) { return of(longBits, longBits); } - static Entry of(final long lowerBits, final long upperBits) { + static @NonNull Entry of(final long lowerBits, final long upperBits) { return new Entry(lowerBits, upperBits); } - @VisibleForTesting - public UnsignedLong lower() { - return UnsignedLong.fromLongBits(lowerBits); + @NonNull Entry withLower(final long newLowerBits) { + return of(newLowerBits, upperBits); } - @VisibleForTesting - public UnsignedLong upper() { - return UnsignedLong.fromLongBits(upperBits); - } - - Entry copy() { - return new Entry(lowerBits, upperBits); - } - - // Provides compatibility with RangeSet using [lower, upper + 1) - Range toUnsigned() { - return Range.closedOpen(UnsignedLong.fromLongBits(lowerBits), UnsignedLong.fromLongBits(upperBits + 1)); + @NonNull Entry withUpper(final long newUpperBits) { + return of(lowerBits, newUpperBits); } // These two methods provide the same serialization format as the one we've used to serialize @@ -145,14 +129,14 @@ abstract class UnsignedLongSet { return ranges.isEmpty(); } - public final int size() { + public final int rangeSize() { return ranges.size(); } public abstract @NonNull ImmutableUnsignedLongSet immutableCopy(); public final @NonNull MutableUnsignedLongSet mutableCopy() { - return new MutableUnsignedLongSet(new TreeSet<>(copiedRanges())); + return new MutableUnsignedLongSet(new TreeSet<>(ranges)); } public final @NonNull NavigableSet ranges() { @@ -163,10 +147,6 @@ abstract class UnsignedLongSet { return ranges; } - final @NonNull Collection copiedRanges() { - return Collections2.transform(ranges, Entry::copy); - } - @Override public final int hashCode() { return ranges.hashCode();