aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/util/SortedKeyedList.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/util/SortedKeyedList.java')
-rw-r--r--app/src/main/java/com/wireguard/util/SortedKeyedList.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/util/SortedKeyedList.java b/app/src/main/java/com/wireguard/util/SortedKeyedList.java
new file mode 100644
index 00000000..85aeecff
--- /dev/null
+++ b/app/src/main/java/com/wireguard/util/SortedKeyedList.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright © 2018 Samuel Holland <samuel@sholland.org>
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+package com.wireguard.util;
+
+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();
+
+ K firstKey();
+
+ Set<K> keySet();
+
+ K lastKey();
+
+ Collection<E> values();
+}