You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/03/03 21:20:58 UTC

[isis] branch master updated: ISIS-2877: blob/clob: make comparable

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 4fdb3a2  ISIS-2877: blob/clob: make comparable
4fdb3a2 is described below

commit 4fdb3a2dbdbbf97c4859e1d0b567b3bdd77660ae
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Mar 3 22:20:18 2022 +0100

    ISIS-2877: blob/clob: make comparable
---
 .../java/org/apache/isis/applib/value/Blob.java    |  2 --
 .../isis/applib/value/NamedWithMimeType.java       | 30 +++++++++++++++++++---
 2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/value/Blob.java b/api/applib/src/main/java/org/apache/isis/applib/value/Blob.java
index f7610bf..7b90ade 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/value/Blob.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/value/Blob.java
@@ -327,6 +327,4 @@ public final class Blob implements NamedWithMimeType {
 
     }
 
-
-
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java b/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
index 9c199c5..69f1abf 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/value/NamedWithMimeType.java
@@ -24,17 +24,39 @@ import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.commons.internal.base._Strings;
 
 import lombok.Getter;
 
 /**
  * @since 1.x {@index}
  */
-public interface NamedWithMimeType extends Serializable {
-
-    public String getName();
+public interface NamedWithMimeType
+extends
+    Serializable,
+    Comparable<NamedWithMimeType> {
+
+    String getName();
+
+    MimeType getMimeType();
+
+    @Override
+    default int compareTo(final NamedWithMimeType o) {
+        int c = _Strings.compareNullsFirst(
+                this.getName(),
+                o!=null
+                    ? o.getName()
+                    : null);
+        if(c!=0) {
+            return c;
+        }
 
-    public MimeType getMimeType();
+        return _Strings.compareNullsFirst(
+                this.getMimeType().getBaseType(),
+                o!=null
+                    ? o.getMimeType().getBaseType()
+                    : null);
+    }
 
     /**
      * Subset of MimeTypes most commonly used.