aboutsummaryrefslogtreecommitdiff
path: root/android/guava/src/com/google/common/collect/ImmutableRangeSet.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/guava/src/com/google/common/collect/ImmutableRangeSet.java')
-rw-r--r--android/guava/src/com/google/common/collect/ImmutableRangeSet.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/android/guava/src/com/google/common/collect/ImmutableRangeSet.java b/android/guava/src/com/google/common/collect/ImmutableRangeSet.java
index 844c1c1dc..7d08c89e3 100644
--- a/android/guava/src/com/google/common/collect/ImmutableRangeSet.java
+++ b/android/guava/src/com/google/common/collect/ImmutableRangeSet.java
@@ -38,6 +38,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
+import java.util.stream.Collector;
import javax.annotation.CheckForNull;
/**
@@ -59,6 +60,18 @@ public final class ImmutableRangeSet<C extends Comparable> extends AbstractRange
new ImmutableRangeSet<>(ImmutableList.of(Range.<Comparable<?>>all()));
/**
+ * Returns a {@code Collector} that accumulates the input elements into a new {@code
+ * ImmutableRangeSet}. As in {@link Builder}, overlapping ranges are not permitted and adjacent
+ * ranges will be merged.
+ */
+ @SuppressWarnings({"AndroidJdkLibsChecker", "Java7ApiChecker"})
+ @IgnoreJRERequirement // Users will use this only if they're already using streams.
+ static <E extends Comparable<? super E>>
+ Collector<Range<E>, ?, ImmutableRangeSet<E>> toImmutableRangeSet() {
+ return CollectCollectors.toImmutableRangeSet();
+ }
+
+ /**
* Returns an empty immutable range set.
*
* <p><b>Performance note:</b> the instance returned is a singleton.
@@ -355,6 +368,14 @@ public final class ImmutableRangeSet<C extends Comparable> extends AbstractRange
boolean isPartialView() {
return true;
}
+
+ // redeclare to help optimizers with b/310253115
+ @SuppressWarnings("RedundantOverride")
+ @Override
+ @J2ktIncompatible // serialization
+ Object writeReplace() {
+ return super.writeReplace();
+ }
}
@Override
@@ -474,6 +495,15 @@ public final class ImmutableRangeSet<C extends Comparable> extends AbstractRange
boolean isPartialView() {
return true;
}
+
+ // redeclare to help optimizers with b/310253115
+ @SuppressWarnings("RedundantOverride")
+ @Override
+ @J2ktIncompatible // serialization
+ @GwtIncompatible // serialization
+ Object writeReplace() {
+ return super.writeReplace();
+ }
};
}
}