Skip to content

Commit 0d1f357

Browse files
committed
Prioritized: add default behavior for compareTo
1 parent bc0b7c6 commit 0d1f357

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/main/java/org/scijava/Prioritized.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131

3232
package org.scijava;
3333

34+
import org.scijava.util.ClassUtils;
35+
3436
/**
3537
* An object that can be sorted according to priority.
3638
*
@@ -52,4 +54,18 @@ public interface Prioritized extends Comparable<Prioritized> {
5254
*/
5355
void setPriority(double priority);
5456

57+
// -- Comparable methods --
58+
59+
@Override
60+
default int compareTo(final Prioritized that) {
61+
if (that == null) return 1;
62+
63+
// compare priorities
64+
final int priorityCompare = Priority.compare(this, that);
65+
if (priorityCompare != 0) return priorityCompare;
66+
67+
// compare classes
68+
return ClassUtils.compare(getClass(), that.getClass());
69+
}
70+
5571
}

0 commit comments

Comments
 (0)