From a87adf35fa5edababea5fe989dcddf28fe951c68 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 19 Oct 2016 08:39:22 +0000 Subject: [PATCH] CCM NG/ccm-cms: AttachmentList and ItemAttachment now implement the Comparable interface git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4391 8810af33-2d31-482b-a856-94f89814c4df --- .../librecms/attachments/AttachmentList.java | 18 +++++++++++++++++- .../librecms/attachments/ItemAttachment.java | 15 +++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java b/ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java index e7cc6d739..99f36fc58 100644 --- a/ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java +++ b/ccm-cms/src/main/java/org/librecms/attachments/AttachmentList.java @@ -55,7 +55,9 @@ import static org.librecms.CmsConstants.*; @Entity @Table(name = "ATTACHMENT_LISTS", schema = DB_SCHEMA) @Audited -public class AttachmentList implements Identifiable, Serializable { +public class AttachmentList implements Comparable, + Identifiable, + Serializable { private static final long serialVersionUID = -7931234562247075541L; @@ -201,6 +203,20 @@ public class AttachmentList implements Identifiable, Serializable { attachments.remove(attachment); } + @Override + public int compareTo(final AttachmentList other) { + if (other == null) { + throw new NullPointerException(); + } + + final int nameCompare = name.compareTo(other.getName()); + if (nameCompare == 0) { + return Long.compare(order, other.getOrder()); + } else { + return nameCompare; + } + } + @Override public int hashCode() { int hash = 3; diff --git a/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java b/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java index d3dc9812b..3b19263a2 100644 --- a/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java +++ b/ccm-cms/src/main/java/org/librecms/attachments/ItemAttachment.java @@ -46,8 +46,10 @@ import static org.librecms.CmsConstants.*; @Entity @Table(schema = DB_SCHEMA, name = "ATTACHMENTS") @Audited -public class ItemAttachment implements Identifiable, - Serializable { +public class ItemAttachment + implements Comparable>, + Identifiable, + Serializable { private static final long serialVersionUID = -9005379413315191984L; @@ -127,6 +129,15 @@ public class ItemAttachment implements Identifiable, this.sortKey = sortKey; } + @Override + public int compareTo(final ItemAttachment other) { + if (other == null) { + throw new NullPointerException(); + } + + return Long.compare(sortKey, other.getSortKey()); + } + @Override public int hashCode() { int hash = 3;