aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/main/java/com/wireguard/util/SortedKeyedList.java
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/main/java/com/wireguard/util/SortedKeyedList.java')
-rw-r--r--ui/src/main/java/com/wireguard/util/SortedKeyedList.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/ui/src/main/java/com/wireguard/util/SortedKeyedList.java b/ui/src/main/java/com/wireguard/util/SortedKeyedList.java
new file mode 100644
index 00000000..b144fc85
--- /dev/null
+++ b/ui/src/main/java/com/wireguard/util/SortedKeyedList.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2017-2019 WireGuard LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package com.wireguard.util;
+
+import androidx.annotation.Nullable;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Set;
+
+/**
+ * A keyed list where all elements are sorted by the comparator returned by {@code comparator()}
+ * applied to their keys.
+ */
+
+public interface SortedKeyedList<K, E extends Keyed<? extends K>> extends KeyedList<K, E> {
+ Comparator<? super K> comparator();
+
+ @Nullable
+ K firstKey();
+
+ Set<K> keySet();
+
+ @Nullable
+ K lastKey();
+
+ Collection<E> values();
+}