From 2780068b97dd486fe7b5d13ef40d20fdb233e132 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 27 Jun 2026 00:57:26 +0100 Subject: [PATCH 1/2] Sort crossRef by order and url Signed-off-by: Arthit Suriyawongkul --- .../org/spdx/storage/listedlicense/LicenseJson.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java b/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java index c6c7469aa..9136f4add 100644 --- a/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java +++ b/src/main/java/org/spdx/storage/listedlicense/LicenseJson.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -557,4 +558,14 @@ public List getPropertyValueDescriptors() { }); return retval; } + + /** + * Sort the crossRef list by order, with URL as a secondary sort key for + * entries with no order set. + */ + public void sortCrossRef() { + crossRef.sort(Comparator + .comparingInt((CrossRefJson c) -> c.order != null ? c.order : Integer.MAX_VALUE) + .thenComparing(c -> c.url != null ? c.url : "")); + } } From 672d6f3a93cf434b3804ee4f3dcbd42adfbb3163 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 27 Jun 2026 11:19:19 +0100 Subject: [PATCH 2/2] Sort TOC Signed-off-by: Arthit Suriyawongkul --- .../org/spdx/storage/listedlicense/ExceptionJsonTOC.java | 7 +++++++ .../org/spdx/storage/listedlicense/LicenseJsonTOC.java | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java b/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java index c94e3b606..5cb8abd7f 100644 --- a/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java +++ b/src/main/java/org/spdx/storage/listedlicense/ExceptionJsonTOC.java @@ -283,4 +283,11 @@ public void setReleaseDate(String releaseDate) { this.releaseDate = releaseDate; } + /** + * Sort the exceptions list by licenseExceptionId. + */ + public void sort() { + exceptions.sort((e1, e2) -> e1.getLicenseExceptionId().compareToIgnoreCase(e2.getLicenseExceptionId())); + } + } diff --git a/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java b/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java index 0765996d0..01a81f7fe 100644 --- a/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java +++ b/src/main/java/org/spdx/storage/listedlicense/LicenseJsonTOC.java @@ -251,6 +251,13 @@ public void setReleaseDate(String releaseDate) { this.releaseDate = releaseDate; } + /** + * Sort the licenses list by licenseId. + */ + public void sort() { + licenses.sort((l1, l2) -> l1.getLicenseId().compareToIgnoreCase(l2.getLicenseId())); + } + protected static String toAbsoluteURL(String relURL) { String retval = relURL.startsWith("./") ? relURL.substring(2) : relURL; return SpdxConstantsCompatV2.LISTED_LICENSE_URL + retval;